8 {
14
18
21
22
23 {
25 t_4(
j,
k,
l, N0) = t3_2(
j,
k,
l);
26 t_4(
j,
k,
l, N1) = t32(
j,
k,
l);
27 t_4(
j,
k,
l, N2) = t32(
j,
k,
l);
28 for (int ii = 0; ii != 2; ++ii)
29 for (int jj = 0; jj != 3; ++jj)
30 for (int kk = 0; kk != 4; ++kk) {
32 "T4(i,j,k,N0)(" + to_string(ii) + "," + to_string(jj) +
33 "," + to_string(kk) + ")");
34 for (int ll : {1, 2}) {
35 test_for_zero(t_4(ii, jj, kk, ll),
"T4(i,j,k,ll)(" + to_string(ii) +
36 "," + to_string(jj) + "," +
37 to_string(kk) + "," +
38 to_string(ll) + ")");
39 }
40 }
41 }
42 {
44 t_4(
j,
k,
l, N0) = t32(
j,
k,
l);
45 t_4(
j,
k,
l, N1) = t3_2(
j,
k,
l);
46 t_4(
j,
k,
l, N2) = t32(
j,
k,
l);
47 for (int ii = 0; ii != 2; ++ii)
48 for (int jj = 0; jj != 3; ++jj)
49 for (int kk = 0; kk != 4; ++kk) {
51 "T4(i,j,k,N1)(" + to_string(ii) + "," + to_string(jj) +
52 "," + to_string(kk) + ")");
53 for (int ll : {0, 2}) {
54 test_for_zero(t_4(ii, jj, kk, ll),
"T4(i,j,k,ll)(" + to_string(ii) +
55 "," + to_string(jj) + "," +
56 to_string(kk) + "," +
57 to_string(ll) + ")");
58 }
59 }
60 }
61 {
63 t_4(
j,
k,
l, N0) = t32(
j,
k,
l);
64 t_4(
j,
k,
l, N1) = t32(
j,
k,
l);
65 t_4(
j,
k,
l, N2) = t3_2(
j,
k,
l);
66 for (int ii = 0; ii != 2; ++ii)
67 for (int jj = 0; jj != 3; ++jj)
68 for (int kk = 0; kk != 4; ++kk) {
70 "T4(i,j,k,N2)(" + to_string(ii) + "," + to_string(jj) +
71 "," + to_string(kk) + ")");
72 for (int ll : {0, 1}) {
73 test_for_zero(t_4(ii, jj, kk, ll),
"T4(i,j,k,ll)(" + to_string(ii) +
74 "," + to_string(jj) + "," +
75 to_string(kk) + "," +
76 to_string(ll) + ")");
77 }
78 }
79 }
80
81
82 {
84 t_4(
j,
k, N0,
l) = t3_2(
j,
k,
l);
85 t_4(
j,
k, N1,
l) = t32(
j,
k,
l);
86 t_4(
j,
k, N2,
l) = t32(
j,
k,
l);
87 for (int ii = 0; ii != 2; ++ii)
88 for (int jj = 0; jj != 3; ++jj)
89 for (int kk = 0; kk != 4; ++kk) {
91 "T4(i,j,N0,k)(" + to_string(ii) + "," + to_string(jj) +
92 "," + to_string(kk) + ")");
93 for (int ll : {1, 2}) {
94 test_for_zero(t_4(ii, jj, ll, kk),
"T4(i,j,l, k)(" + to_string(ii) +
95 "," + to_string(jj) + "," +
96 to_string(ll) + "," +
97 to_string(kk) + ")");
98 }
99 }
100 }
101 {
103 t_4(
j,
k, N0,
l) = t32(
j,
k,
l);
104 t_4(
j,
k, N1,
l) = t3_2(
j,
k,
l);
105 t_4(
j,
k, N2,
l) = t32(
j,
k,
l);
106 for (int ii = 0; ii != 2; ++ii)
107 for (int jj = 0; jj != 3; ++jj)
108 for (int kk = 0; kk != 4; ++kk) {
110 "T4(i,j,N1,k)(" + to_string(ii) + "," + to_string(jj) +
111 "," + to_string(kk) + ")");
112 for (int ll : {0, 2}) {
113 test_for_zero(t_4(ii, jj, ll, kk),
"T4(i,j,k,ll)(" + to_string(ii) +
114 "," + to_string(jj) + "," +
115 to_string(ll) + "," +
116 to_string(kk) + ")");
117 }
118 }
119 }
120 {
122 t_4(
j,
k, N0,
l) = t32(
j,
k,
l);
123 t_4(
j,
k, N1,
l) = t32(
j,
k,
l);
124 t_4(
j,
k, N2,
l) = t3_2(
j,
k,
l);
125 for (int ii = 0; ii != 2; ++ii)
126 for (int jj = 0; jj != 3; ++jj)
127 for (int kk = 0; kk != 4; ++kk) {
129 "T4(i,j,N2,k)(" + to_string(ii) + "," + to_string(jj) +
130 "," + to_string(kk) + ")");
131 for (int ll : {0, 1}) {
132 test_for_zero(t_4(ii, jj, ll, kk),
"T4(i,j,k,ll)(" + to_string(ii) +
133 "," + to_string(jj) + "," +
134 to_string(ll) + "," +
135 to_string(kk) + ")");
136 }
137 }
138 }
139
140
141 {
148 for (int ii = 0; ii != 3; ++ii)
149 for (int jj = 0; jj != 3; ++jj)
150 for (int kk = 0; kk != 2; ++kk)
151 for (int ll = 0; ll != 2; ++ll) {
152 t_4(ii, jj, kk, ll) = 1 + ii + 10. * jj + 100 * kk + 1000 * ll;
153 }
155 for (int ii = 0; ii != 3; ++ii)
156 for (int jj = 0; jj != 3; ++jj)
157 for (int kk = 0; kk != 2; ++kk)
158 for (int ll = 0; ll != 2; ++ll) {
160 t_4(jj, ii, ll, kk),
161 "T4(i,j,k,l)||T4(j,i,l,k)(" + to_string(ii) + "," +
162 to_string(jj) + "," + to_string(ll) + "," +
163 to_string(kk) + ")");
164 }
165 }
166
167
168 {
172 for (int ii = 0; ii != 1; ++ii)
173 for (int jj = 0; jj != 2; ++jj) {
174 t_2_1(ii, jj) = 1 + ii + 10. * jj;
175 }
176 for (int kk = 0; kk != 3; ++kk)
177 for (int ll = 0; ll != 4; ++ll) {
178 t_2_2(kk, ll) = 1 + 100 * kk + 1000 * ll;
179 }
180 t_4(
i,
j,
k,
l) = t_2_1(
i,
j) * t_2_2(
k,
l);
182 for (int kk = 0; kk != 3; ++kk)
183 for (int ll = 0; ll != 4; ++ll)
184 for (int mm = 0; mm != 3; ++mm) {
185 t_3_1(kk, ll, mm) = 1 + 100 * kk + 1000 * ll + 10000 * mm;
186 }
189 t_3_2(
i,
j,
m) = t_4(
i,
j,
k,
l) * t_3_1(
k,
l,
m) -
190 t_2_1(
i,
j) * (t_3_1(
k,
l,
m) * t_2_2(
k,
l));
191 for (int ii = 0; ii != 1; ++ii)
192 for (int jj = 0; jj != 2; ++jj)
193 for (int mm = 0; mm != 3; ++mm) {
195 "T4(i,j,k,l)*T3(k,l,m)(" + to_string(ii) + "," +
196 to_string(jj) + "," + to_string(mm) + ")");
197 }
198 }
199
200
201 {
205 for (int ii = 0; ii != 1; ++ii)
206 for (int ll = 0; ll != 4; ++ll) {
207 t_2_1(ii, ll) = 1 + ii + 10. * ll;
208 }
209 for (int jj = 0; jj != 2; ++jj)
210 for (int kk = 0; kk != 3; ++kk) {
211 t_2_2(jj, kk) = 1 + 100 * jj + 1000 * kk;
212 }
213 t_4(
i,
j,
k,
l) = t_2_1(
i,
l) * t_2_2(
j,
k);
215 for (int mm = 0; mm != 3; ++mm)
216 for (int kk = 0; kk != 3; ++kk)
217 for (int jj = 0; jj != 2; ++jj) {
218 t_3_1(mm, kk, jj) = 1 + 100 * mm + 1000 * kk + 10000 * jj;
219 }
222 t_3_2(
i,
l,
m) = t_4(
i,
j,
k,
l) * t_3_1(
m,
k,
j) -
223 t_2_1(
i,
l) * (t_3_1(
m,
k,
j) * t_2_2(
j,
k));
224 for (int ii = 0; ii != 1; ++ii)
225 for (int ll = 0; ll != 4; ++ll)
226 for (int mm = 0; mm != 3; ++mm) {
228 "T4(i,j,k,l)*T3(m,k,j)(" + to_string(ii) + "," +
229 to_string(ll) + "," + to_string(mm) + ")");
230 }
231 }
232
233}
FTensor::Index< 'i', SPACE_DIM > i
const double n
refractive index of diffusive medium
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
FTensor::Index< 'm', 3 > m
void test_for_zero(const T &t, const std::string &s)