v0.8.13
Public Member Functions | Private Attributes | List of all members
FTensor::ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l > Class Template Reference

#include <src/ftensor/src/FTensor/Tensor2_symmetric/ddTensor2_symmetric.hpp>

Collaboration diagram for FTensor::ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >:
[legend]

Public Member Functions

promote< T, double >::V operator() (const int N1, const int N2, const int N3, const int N4) const
 
 ddTensor2_symmetric (const Tensor2_symmetric< T *, Dim01 > &A, const Tensor1< int, Dim23 > &D_ijk, const Tensor1< double, Dim23 > &D_xyz)
 

Private Attributes

const Tensor2_symmetric< T *, Dim01 > & a
 
const Tensor1< int, Dim23 > & d_ijk
 
const Tensor1< double, Dim23 > & d_xyz
 

Detailed Description

template<class T, int Dim01, int Dim23, char i, char j, char k, char l>
class FTensor::ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >

Definition at line 9 of file ddTensor2_symmetric.hpp.

Constructor & Destructor Documentation

◆ ddTensor2_symmetric()

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
FTensor::ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >::ddTensor2_symmetric ( const Tensor2_symmetric< T *, Dim01 > &  A,
const Tensor1< int, Dim23 > &  D_ijk,
const Tensor1< double, Dim23 > &  D_xyz 
)

Definition at line 28 of file ddTensor2_symmetric.hpp.

31  : a(A), d_ijk(D_ijk), d_xyz(D_xyz)
32  {}
const Tensor1< int, Dim23 > & d_ijk
const Tensor2_symmetric< T *, Dim01 > & a
const Tensor1< double, Dim23 > & d_xyz

Member Function Documentation

◆ operator()()

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
promote<T, double>::V FTensor::ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >::operator() ( const int  N1,
const int  N2,
const int  N3,
const int  N4 
) const

Definition at line 17 of file ddTensor2_symmetric.hpp.

18  {
19  return N3 == N4 ? (*(a.ptr(N1, N2) + d_ijk(N3)) - 2 * a(N1, N2)
20  + *(a.ptr(N1, N2) - d_ijk(N3)))
21  * d_xyz(N3) * d_xyz(N3)
22  : (*(a.ptr(N1, N2) + d_ijk(N3) + d_ijk(N4))
23  - *(a.ptr(N1, N2) - d_ijk(N3) + d_ijk(N4))
24  - *(a.ptr(N1, N2) + d_ijk(N3) - d_ijk(N4))
25  + *(a.ptr(N1, N2) - d_ijk(N3) - d_ijk(N4)))
26  * d_xyz(N3) * d_xyz(N4) * 0.25;
27  }
const Tensor1< int, Dim23 > & d_ijk
const Tensor2_symmetric< T *, Dim01 > & a
const Tensor1< double, Dim23 > & d_xyz

Member Data Documentation

◆ a

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Tensor2_symmetric<T *, Dim01>& FTensor::ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >::a
private

Definition at line 11 of file ddTensor2_symmetric.hpp.

◆ d_ijk

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Tensor1<int, Dim23>& FTensor::ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >::d_ijk
private

Definition at line 12 of file ddTensor2_symmetric.hpp.

◆ d_xyz

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Tensor1<double, Dim23>& FTensor::ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >::d_xyz
private

Definition at line 13 of file ddTensor2_symmetric.hpp.


The documentation for this class was generated from the following file: