v0.14.0
test_T3dg_34.cpp
Go to the documentation of this file.
1 #include "../../../src/FTensor.hpp"
2 #include "../test_for_zero.hpp"
3 #include <iostream>
4 using namespace FTensor;
5 using namespace std;
6 
8  const Tensor2_symmetric<double, 3> &t2s_2,
9  const Dg<double, 3, 3> &t3dg_2)
10 {
14 
15  Number<0> N0;
16  Number<1> N1;
17  Number<2> N2;
18 
19  /* Dg tests */
20 
21  t1_1(i) = t3dg_2(j, k, i) * t2s_2(j, k);
23  t1_1(0)
24  - (t3dg_2(0, 0, 0) * t2s_2(0, 0) + t3dg_2(0, 1, 0) * t2s_2(0, 1)
25  + t3dg_2(0, 2, 0) * t2s_2(0, 2) + t3dg_2(1, 0, 0) * t2s_2(1, 0)
26  + t3dg_2(1, 1, 0) * t2s_2(1, 1) + t3dg_2(1, 2, 0) * t2s_2(1, 2)
27  + t3dg_2(2, 0, 0) * t2s_2(2, 0) + t3dg_2(2, 1, 0) * t2s_2(2, 1)
28  + t3dg_2(2, 2, 0) * t2s_2(2, 2)),
29  "T3dg(j,k,i)*T2s(j,k)(0)");
31  t1_1(1)
32  - (t3dg_2(0, 0, 1) * t2s_2(0, 0) + t3dg_2(0, 1, 1) * t2s_2(0, 1)
33  + t3dg_2(0, 2, 1) * t2s_2(0, 2) + t3dg_2(1, 0, 1) * t2s_2(1, 0)
34  + t3dg_2(1, 1, 1) * t2s_2(1, 1) + t3dg_2(1, 2, 1) * t2s_2(1, 2)
35  + t3dg_2(2, 0, 1) * t2s_2(2, 0) + t3dg_2(2, 1, 1) * t2s_2(2, 1)
36  + t3dg_2(2, 2, 1) * t2s_2(2, 2)),
37  "T3dg(j,k,i)*T2s(j,k)(1)");
39  t1_1(2)
40  - (t3dg_2(0, 0, 2) * t2s_2(0, 0) + t3dg_2(0, 1, 2) * t2s_2(0, 1)
41  + t3dg_2(0, 2, 2) * t2s_2(0, 2) + t3dg_2(1, 0, 2) * t2s_2(1, 0)
42  + t3dg_2(1, 1, 2) * t2s_2(1, 1) + t3dg_2(1, 2, 2) * t2s_2(1, 2)
43  + t3dg_2(2, 0, 2) * t2s_2(2, 0) + t3dg_2(2, 1, 2) * t2s_2(2, 1)
44  + t3dg_2(2, 2, 2) * t2s_2(2, 2)),
45  "T3dg(j,k,i)*T2s(j,k)(2)");
46 
47  t1_1(i) = t2s_2(j, k) * t3dg_2(j, k, i);
49  t1_1(0)
50  - (t3dg_2(0, 0, 0) * t2s_2(0, 0) + t3dg_2(0, 1, 0) * t2s_2(0, 1)
51  + t3dg_2(0, 2, 0) * t2s_2(0, 2) + t3dg_2(1, 0, 0) * t2s_2(1, 0)
52  + t3dg_2(1, 1, 0) * t2s_2(1, 1) + t3dg_2(1, 2, 0) * t2s_2(1, 2)
53  + t3dg_2(2, 0, 0) * t2s_2(2, 0) + t3dg_2(2, 1, 0) * t2s_2(2, 1)
54  + t3dg_2(2, 2, 0) * t2s_2(2, 2)),
55  "T2s(j,k)*T3dg(j,k,i)(0)");
57  t1_1(1)
58  - (t3dg_2(0, 0, 1) * t2s_2(0, 0) + t3dg_2(0, 1, 1) * t2s_2(0, 1)
59  + t3dg_2(0, 2, 1) * t2s_2(0, 2) + t3dg_2(1, 0, 1) * t2s_2(1, 0)
60  + t3dg_2(1, 1, 1) * t2s_2(1, 1) + t3dg_2(1, 2, 1) * t2s_2(1, 2)
61  + t3dg_2(2, 0, 1) * t2s_2(2, 0) + t3dg_2(2, 1, 1) * t2s_2(2, 1)
62  + t3dg_2(2, 2, 1) * t2s_2(2, 2)),
63  "T2s(j,k)*T3dg(j,k,i)(1)");
65  t1_1(2)
66  - (t3dg_2(0, 0, 2) * t2s_2(0, 0) + t3dg_2(0, 1, 2) * t2s_2(0, 1)
67  + t3dg_2(0, 2, 2) * t2s_2(0, 2) + t3dg_2(1, 0, 2) * t2s_2(1, 0)
68  + t3dg_2(1, 1, 2) * t2s_2(1, 1) + t3dg_2(1, 2, 2) * t2s_2(1, 2)
69  + t3dg_2(2, 0, 2) * t2s_2(2, 0) + t3dg_2(2, 1, 2) * t2s_2(2, 1)
70  + t3dg_2(2, 2, 2) * t2s_2(2, 2)),
71  "T2s(j,k)*T3dg(j,k,i)(2)");
72 }
FTensor
JSON compatible output.
Definition: Christof_constructor.hpp:6
FTensor::Tensor1< double, 3 >
test_T3dg_34
void test_T3dg_34(Tensor1< double, 3 > &t1_1, const Tensor2_symmetric< double, 3 > &t2s_2, const Dg< double, 3, 3 > &t3dg_2)
Definition: test_T3dg_34.cpp:7
FTensor::Tensor2_symmetric
Definition: Tensor2_symmetric_value.hpp:13
FTensor::Number< 0 >
test_for_zero
void test_for_zero(const T &t, const std::string &s)
Definition: test_for_zero.hpp:7
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
FTensor::Index< 'i', 3 >
FTensor::Dg
Definition: Dg_value.hpp:9
std
Definition: enable_if.hpp:5
j
FTensor::Index< 'j', 3 > j
Definition: matrix_function.cpp:19
k
FTensor::Index< 'k', 3 > k
Definition: matrix_function.cpp:20