v0.14.0
Public Member Functions | Private Attributes | List of all members
FTensor::Riemann< T, 3 > Class Template Reference

#include <src/ftensor/src/FTensor/Riemann.hpp>

Collaboration diagram for FTensor::Riemann< T, 3 >:
[legend]

Public Member Functions

 Riemann ()
 
operator() (const int N1, const int N2, const int N3, const int N4) const
 
eval (const int N1, const int N2, const int N3, const int N4) const
 
T & operator() (const int N1, const int N2, const int N3, const int N4)
 
template<char i, char j, char k, char l>
Riemann_Expr< Riemann< T, 3 >, T, 3, i, j, k, loperator() (const Index< i, 3 >, const Index< j, 3 >, const Index< k, 3 >, const Index< l, 3 >)
 

Private Attributes

zero
 
data0101
 
data0102
 
data0112
 
data0202
 
data0212
 
data1212
 

Detailed Description

template<class T>
class FTensor::Riemann< T, 3 >

Definition at line 13 of file Riemann.hpp.

Constructor & Destructor Documentation

◆ Riemann()

template<class T >
FTensor::Riemann< T, 3 >::Riemann ( )
inline

Definition at line 22 of file Riemann.hpp.

22 : zero(0.0) {}

Member Function Documentation

◆ eval()

template<class T >
T FTensor::Riemann< T, 3 >::eval ( const int  N1,
const int  N2,
const int  N3,
const int  N4 
) const
inline

Definition at line 102 of file Riemann.hpp.

103  {
104  return N1 == 0
105  ? (N2 == 0
106  ? zero
107  : (N2 == 1
108  ? (N3 == 0
109  ? (N4 == 0 ? zero
110  : (N4 == 1 ? data0101 : data0102))
111  : (N3 == 1
112  ? (N4 == 0 ? -data0101
113  : (N4 == 1 ? zero : data0112))
114  : (N4 == 0 ? -data0102
115  : (N4 == 1 ? -data0112 : zero))))
116  : (N3 == 0
117  ? (N4 == 0 ? zero
118  : (N4 == 1 ? data0102 : data0202))
119  : (N3 == 1
120  ? (N4 == 0 ? -data0102
121  : (N4 == 1 ? zero : data0212))
122  : (N4 == 0
123  ? -data0202
124  : (N4 == 1 ? -data0212 : zero))))))
125  : (N1 == 1
126  ? (N2 == 0
127  ? (N3 == 0
128  ? (N4 == 0 ? zero
129  : (N4 == 1 ? -data0101 : -data0102))
130  : (N3 == 1
131  ? (N4 == 0 ? data0101
132  : (N4 == 1 ? zero : -data0112))
133  : (N4 == 0 ? data0102
134  : (N4 == 1 ? data0112 : zero))))
135  : (N2 == 1
136  ? zero
137  : (N3 == 0
138  ? (N4 == 0 ? zero
139  : (N4 == 1 ? data0112 : data0212))
140  : (N3 == 1
141  ? (N4 == 0
142  ? -data0112
143  : (N4 == 1 ? zero : data1212))
144  : (N4 == 0 ? -data0212
145  : (N4 == 1 ? -data1212
146  : zero))))))
147  : (N2 == 0
148  ? (N3 == 0
149  ? (N4 == 0 ? zero
150  : (N4 == 1 ? -data0102 : -data0202))
151  : (N3 == 1
152  ? (N4 == 0 ? data0102
153  : (N4 == 1 ? zero : -data0212))
154  : (N4 == 0 ? data0202
155  : (N4 == 1 ? data0212 : zero))))
156  : (N2 == 1
157  ? (N3 == 0
158  ? (N4 == 0
159  ? zero
160  : (N4 == 1 ? -data0112 : -data0212))
161  : (N3 == 1
162  ? (N4 == 0
163  ? data0112
164  : (N4 == 1 ? zero : -data1212))
165  : (N4 == 0
166  ? data0212
167  : (N4 == 1 ? data1212 : zero))))
168  : zero)));
169  }

◆ operator()() [1/3]

template<class T >
template<char i, char j, char k, char l>
Riemann_Expr<Riemann<T, 3>, T, 3, i, j, k, l> FTensor::Riemann< T, 3 >::operator() ( const Index< i, 3 >  ,
const Index< j, 3 >  ,
const Index< k, 3 >  ,
const Index< l, 3 >   
)
inline

Definition at line 193 of file Riemann.hpp.

195  {
196  return Riemann_Expr<Riemann<T, 3>, T, 3, i, j, k, l>(*this);
197  }

◆ operator()() [2/3]

template<class T >
T& FTensor::Riemann< T, 3 >::operator() ( const int  N1,
const int  N2,
const int  N3,
const int  N4 
)
inline

Definition at line 171 of file Riemann.hpp.

172  {
173  return (N1 == 0 && N2 == 1 && N3 == 0 && N4 == 1)
174  ? data0101
175  : ((N1 == 0 && N2 == 1 && N3 == 0 && N4 == 2)
176  ? data0102
177  : ((N1 == 0 && N2 == 1 && N3 == 1 && N4 == 2)
178  ? data0112
179  : ((N1 == 0 && N2 == 2 && N3 == 1 && N4 == 2)
180  ? data0212
181  : ((N1 == 0 && N2 == 2 && N3 == 0 && N4 == 2)
182  ? data0202
183  : ((N1 == 1 && N2 == 2 && N3 == 1 && N4 == 2)
184  ? data1212
185  : zero)))));
186  }

◆ operator()() [3/3]

template<class T >
T FTensor::Riemann< T, 3 >::operator() ( const int  N1,
const int  N2,
const int  N3,
const int  N4 
) const
inline

Definition at line 33 of file Riemann.hpp.

34  {
35  return N1 == 0
36  ? (N2 == 0
37  ? zero
38  : (N2 == 1
39  ? (N3 == 0
40  ? (N4 == 0 ? zero
41  : (N4 == 1 ? data0101 : data0102))
42  : (N3 == 1
43  ? (N4 == 0 ? -data0101
44  : (N4 == 1 ? zero : data0112))
45  : (N4 == 0 ? -data0102
46  : (N4 == 1 ? -data0112 : zero))))
47  : (N3 == 0
48  ? (N4 == 0 ? zero
49  : (N4 == 1 ? data0102 : data0202))
50  : (N3 == 1
51  ? (N4 == 0 ? -data0102
52  : (N4 == 1 ? zero : data0212))
53  : (N4 == 0
54  ? -data0202
55  : (N4 == 1 ? -data0212 : zero))))))
56  : (N1 == 1
57  ? (N2 == 0
58  ? (N3 == 0
59  ? (N4 == 0 ? zero
60  : (N4 == 1 ? -data0101 : -data0102))
61  : (N3 == 1
62  ? (N4 == 0 ? data0101
63  : (N4 == 1 ? zero : -data0112))
64  : (N4 == 0 ? data0102
65  : (N4 == 1 ? data0112 : zero))))
66  : (N2 == 1
67  ? zero
68  : (N3 == 0
69  ? (N4 == 0 ? zero
70  : (N4 == 1 ? data0112 : data0212))
71  : (N3 == 1
72  ? (N4 == 0
73  ? -data0112
74  : (N4 == 1 ? zero : data1212))
75  : (N4 == 0 ? -data0212
76  : (N4 == 1 ? -data1212
77  : zero))))))
78  : (N2 == 0
79  ? (N3 == 0
80  ? (N4 == 0 ? zero
81  : (N4 == 1 ? -data0102 : -data0202))
82  : (N3 == 1
83  ? (N4 == 0 ? data0102
84  : (N4 == 1 ? zero : -data0212))
85  : (N4 == 0 ? data0202
86  : (N4 == 1 ? data0212 : zero))))
87  : (N2 == 1
88  ? (N3 == 0
89  ? (N4 == 0
90  ? zero
91  : (N4 == 1 ? -data0112 : -data0212))
92  : (N3 == 1
93  ? (N4 == 0
94  ? data0112
95  : (N4 == 1 ? zero : -data1212))
96  : (N4 == 0
97  ? data0212
98  : (N4 == 1 ? data1212 : zero))))
99  : zero)));
100  }

Member Data Documentation

◆ data0101

template<class T >
T FTensor::Riemann< T, 3 >::data0101
private

Definition at line 19 of file Riemann.hpp.

◆ data0102

template<class T >
T FTensor::Riemann< T, 3 >::data0102
private

Definition at line 19 of file Riemann.hpp.

◆ data0112

template<class T >
T FTensor::Riemann< T, 3 >::data0112
private

Definition at line 19 of file Riemann.hpp.

◆ data0202

template<class T >
T FTensor::Riemann< T, 3 >::data0202
private

Definition at line 19 of file Riemann.hpp.

◆ data0212

template<class T >
T FTensor::Riemann< T, 3 >::data0212
private

Definition at line 19 of file Riemann.hpp.

◆ data1212

template<class T >
T FTensor::Riemann< T, 3 >::data1212
private

Definition at line 19 of file Riemann.hpp.

◆ zero

template<class T >
T FTensor::Riemann< T, 3 >::zero
private

Definition at line 18 of file Riemann.hpp.


The documentation for this class was generated from the following file:
FTensor::Riemann< T, 3 >::data0101
T data0101
Definition: Riemann.hpp:19
FTensor::Riemann< T, 3 >::data1212
T data1212
Definition: Riemann.hpp:19
FTensor::Riemann< T, 3 >::zero
T zero
Definition: Riemann.hpp:18
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
FTensor::Riemann< T, 3 >::data0112
T data0112
Definition: Riemann.hpp:19
FTensor::Riemann< T, 3 >::data0202
T data0202
Definition: Riemann.hpp:19
j
FTensor::Index< 'j', 3 > j
Definition: matrix_function.cpp:19
FTensor::Riemann< T, 3 >::data0102
T data0102
Definition: Riemann.hpp:19
k
FTensor::Index< 'k', 3 > k
Definition: matrix_function.cpp:20
FTensor::Riemann< T, 3 >::data0212
T data0212
Definition: Riemann.hpp:19
l
FTensor::Index< 'l', 3 > l
Definition: matrix_function.cpp:21