v0.14.0
Public Member Functions | Private Attributes | List of all members
FTensor::dd_boundary_Tensor0< T, Dim, i, j > Class Template Reference

#include <src/ftensor/src/FTensor/Tensor0/dd_boundary_Tensor0.hpp>

Collaboration diagram for FTensor::dd_boundary_Tensor0< T, Dim, i, j >:
[legend]

Public Member Functions

promote< T, double >::V operator() (const int N1, const int N2) const
 
 dd_boundary_Tensor0 (const Tensor0< T * > &A, const Tensor1< int, Dim > &D_ijk, const Tensor1< double, Dim > &D_xyz, const Tensor2< bool, Dim, 2 > &Boundary)
 

Private Attributes

const Tensor0< T * > & a
 
const Tensor1< int, Dim > & d_ijk
 
const Tensor1< double, Dim > & d_xyz
 
const Tensor2< bool, Dim, 2 > & boundary
 

Detailed Description

template<class T, int Dim, char i, char j>
class FTensor::dd_boundary_Tensor0< T, Dim, i, j >

Definition at line 9 of file dd_boundary_Tensor0.hpp.

Constructor & Destructor Documentation

◆ dd_boundary_Tensor0()

template<class T , int Dim, char i, char j>
FTensor::dd_boundary_Tensor0< T, Dim, i, j >::dd_boundary_Tensor0 ( const Tensor0< T * > &  A,
const Tensor1< int, Dim > &  D_ijk,
const Tensor1< double, Dim > &  D_xyz,
const Tensor2< bool, Dim, 2 > &  Boundary 
)
inline

Definition at line 71 of file dd_boundary_Tensor0.hpp.

74  : a(A), d_ijk(D_ijk), d_xyz(D_xyz), boundary(Boundary)
75  {}

Member Function Documentation

◆ operator()()

template<class T , int Dim, char i, char j>
promote<T, double>::V FTensor::dd_boundary_Tensor0< T, Dim, i, j >::operator() ( const int  N1,
const int  N2 
) const
inline

Definition at line 17 of file dd_boundary_Tensor0.hpp.

18  {
19  return N1 == N2
20  ? (boundary(N1, 0)
21  ? (*(&a + 2 * d_ijk(N1)) - 2 * *(&a + d_ijk(N1)) + a)
22  : (boundary(N1, 1)
23  ? (a - 2 * *(&a - d_ijk(N1)) + *(&a - 2 * d_ijk(N1)))
24  : (*(&a + d_ijk(N1)) - 2 * a + *(&a - d_ijk(N1)))))
25  * d_xyz(N1) * d_xyz(N1)
26  : (boundary(N1, 0)
27  ? (boundary(N2, 0)
28  ? ((*(&a + d_ijk(N1) + d_ijk(N2)) - *(&a + d_ijk(N2))
29  - *(&a + d_ijk(N1)) + a)
30  * d_xyz(N1) * d_xyz(N2))
31  : (boundary(N2, 1) ? ((*(&a + d_ijk(N1)) - a
32  - *(&a + d_ijk(N1) - d_ijk(N2))
33  + *(&a - d_ijk(N2)))
34  * d_xyz(N1) * d_xyz(N2))
35  : (*(&a + d_ijk(N1) + d_ijk(N2))
36  - *(&a + d_ijk(N2))
37  - *(&a + d_ijk(N1) - d_ijk(N2))
38  + *(&a - d_ijk(N2)))
39  * d_xyz(N1) * d_xyz(N2) * 0.5))
40  : (boundary(N1, 1)
41  ? (boundary(N2, 0)
42  ? ((*(&a + d_ijk(N2))
43  - *(&a - d_ijk(N1) + d_ijk(N2)) - a
44  + *(&a - d_ijk(N1)))
45  * d_xyz(N1) * d_xyz(N2))
46  : (boundary(N2, 1)
47  ? ((a - *(&a - d_ijk(N1)) - *(&a - d_ijk(N2))
48  + *(&a - d_ijk(N1) - d_ijk(N2)))
49  * d_xyz(N1) * d_xyz(N2))
50  : (*(&a + d_ijk(N2))
51  - *(&a - d_ijk(N1) + d_ijk(N2))
52  - *(&a - d_ijk(N2))
53  + *(&a - d_ijk(N1) - d_ijk(N2)))
54  * d_xyz(N1) * d_xyz(N2) * 0.5))
55  : (boundary(N2, 0)
56  ? ((*(&a + d_ijk(N1) + d_ijk(N2))
57  - *(&a - d_ijk(N1) + d_ijk(N2))
58  - *(&a + d_ijk(N1)) + *(&a - d_ijk(N1)))
59  * d_xyz(N1) * d_xyz(N2) * 0.5)
60  : (boundary(N2, 1)
61  ? ((*(&a + d_ijk(N1)) - *(&a - d_ijk(N1))
62  - *(&a + d_ijk(N1) - d_ijk(N2))
63  + *(&a - d_ijk(N1) - d_ijk(N2)))
64  * d_xyz(N1) * d_xyz(N2) * 0.5)
65  : ((*(&a + d_ijk(N1) + d_ijk(N2))
66  - *(&a - d_ijk(N1) + d_ijk(N2))
67  - *(&a + d_ijk(N1) - d_ijk(N2))
68  + *(&a - d_ijk(N1) - d_ijk(N2)))
69  * d_xyz(N1) * d_xyz(N2) * 0.25)))));
70  }

Member Data Documentation

◆ a

template<class T , int Dim, char i, char j>
const Tensor0<T *>& FTensor::dd_boundary_Tensor0< T, Dim, i, j >::a
private

Definition at line 11 of file dd_boundary_Tensor0.hpp.

◆ boundary

template<class T , int Dim, char i, char j>
const Tensor2<bool, Dim, 2>& FTensor::dd_boundary_Tensor0< T, Dim, i, j >::boundary
private

Definition at line 14 of file dd_boundary_Tensor0.hpp.

◆ d_ijk

template<class T , int Dim, char i, char j>
const Tensor1<int, Dim>& FTensor::dd_boundary_Tensor0< T, Dim, i, j >::d_ijk
private

Definition at line 12 of file dd_boundary_Tensor0.hpp.

◆ d_xyz

template<class T , int Dim, char i, char j>
const Tensor1<double, Dim>& FTensor::dd_boundary_Tensor0< T, Dim, i, j >::d_xyz
private

Definition at line 13 of file dd_boundary_Tensor0.hpp.


The documentation for this class was generated from the following file:
A
constexpr AssemblyType A
Definition: operators_tests.cpp:30
FTensor::dd_boundary_Tensor0::a
const Tensor0< T * > & a
Definition: dd_boundary_Tensor0.hpp:11
FTensor::dd_boundary_Tensor0::boundary
const Tensor2< bool, Dim, 2 > & boundary
Definition: dd_boundary_Tensor0.hpp:14
FTensor::dd_boundary_Tensor0::d_ijk
const Tensor1< int, Dim > & d_ijk
Definition: dd_boundary_Tensor0.hpp:12
FTensor::dd_boundary_Tensor0::d_xyz
const Tensor1< double, Dim > & d_xyz
Definition: dd_boundary_Tensor0.hpp:13