Alamo
Matrix4.H
Go to the documentation of this file.
1#include "Set/Set.H"
2namespace Test
3{
4namespace Set
5{
6template <int dim, ::Set::Sym sym>
7class Matrix4
8{
9public:
10 int SymmetryTest(int /*verbose*/)
11 {
13
14 //Util::Message(INFO,matrix);
15 //std::cout << matrix << std::endl;
16 if (sym == ::Set::Sym::None)
17 return 0;
18 if (sym == ::Set::Sym::MajorMinor)
19 {
20 for (int i = 0; i < dim; i++)
21 for (int j = 0; j < dim; j++)
22 for (int k = 0; k < dim; k++)
23 for (int l = 0; l < dim; l++)
24 {
25 if (matrix(i,j,k,l) != matrix(k,l,i,j)) return 1; // breaks major symmetry
26 if (matrix(i,j,k,l) != matrix(i,j,l,k)) return 1; // breaks minor symmetry
27 if (matrix(i,j,k,l) != matrix(j,i,k,l)) return 1; // breaks minor symmetry
28 }
29 return 0;
30 }
31 if (sym == ::Set::Sym::Full)
32 {
33 for (int i = 0; i < dim; i++)
34 for (int j = 0; j < dim; j++)
35 for (int k = 0; k < dim; k++)
36 for (int l = 0; l < dim; l++)
37 {
38 if (matrix(i,j,k,l) != matrix(i,j,l,k)) return 1;
39 if (matrix(i,j,k,l) != matrix(i,k,j,l)) return 1;
40 if (matrix(i,j,k,l) != matrix(i,k,l,j)) return 1;
41 if (matrix(i,j,k,l) != matrix(i,l,j,k)) return 1;
42 if (matrix(i,j,k,l) != matrix(i,l,k,j)) return 1;
43 if (matrix(i,j,k,l) != matrix(j,i,k,l)) return 1;
44 if (matrix(i,j,k,l) != matrix(j,i,l,k)) return 1;
45 if (matrix(i,j,k,l) != matrix(j,k,i,l)) return 1;
46 if (matrix(i,j,k,l) != matrix(j,k,l,i)) return 1;
47 if (matrix(i,j,k,l) != matrix(j,l,i,k)) return 1;
48 if (matrix(i,j,k,l) != matrix(j,l,k,i)) return 1;
49 if (matrix(i,j,k,l) != matrix(k,i,j,l)) return 1;
50 if (matrix(i,j,k,l) != matrix(k,i,l,j)) return 1;
51 if (matrix(i,j,k,l) != matrix(k,j,i,l)) return 1;
52 if (matrix(i,j,k,l) != matrix(k,j,l,i)) return 1;
53 if (matrix(i,j,k,l) != matrix(k,l,i,j)) return 1;
54 if (matrix(i,j,k,l) != matrix(k,l,j,i)) return 1;
55 if (matrix(i,j,k,l) != matrix(l,i,j,k)) return 1;
56 if (matrix(i,j,k,l) != matrix(l,i,k,j)) return 1;
57 if (matrix(i,j,k,l) != matrix(l,j,i,k)) return 1;
58 if (matrix(i,j,k,l) != matrix(l,j,k,i)) return 1;
59 if (matrix(i,j,k,l) != matrix(l,k,i,j)) return 1;
60 if (matrix(i,j,k,l) != matrix(l,k,j,i)) return 1;
61 }
62 return 0;
63 }
64
65
66 return 1;
67 }
68};
69}
70}
int SymmetryTest(int)
Definition Matrix4.H:10
A collection of data types and symmetry-reduced data structures.
Definition Base.H:18
@ None
Definition Base.H:197
@ MajorMinor
Definition Base.H:197
@ Full
Definition Base.H:197
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
Definition Base.H:20
Definition GB.H:8