v0.16.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
FTensor::DiffSymmetrize< T > Class Template Reference

Fourth-order symmetrization tensor. More...

#include "src/ftensor/src/FTensor/DiffSymmetrize.hpp"

Public Types

using value_type = typename promote< T, double >::V
 

Public Member Functions

constexpr value_type operator() (const int N0, const int N1, const int N2, const int N3) const
 
template<char i, char j, char k, char l, int Dim0, int Dim1, int Dim2, int Dim3>
Tensor4_Expr< DiffSymmetrize< T >, value_type, Dim0, Dim1, Dim2, Dim3, i, j, k, loperator() (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const Index< l, Dim3 > &) const
 

Detailed Description

template<class T = int>
class FTensor::DiffSymmetrize< T >

Fourth-order symmetrization tensor.

Template Parameters
T
Examples
/home/lk58p/mofem_install/vanilla_dev_release/mofem-cephas/mofem/users_modules/eshelbian_plasticity/src/impl/EshelbianOperators.cpp.

Definition at line 15 of file DiffSymmetrize.hpp.

Member Typedef Documentation

◆ value_type

template<class T = int>
using FTensor::DiffSymmetrize< T >::value_type = typename promote<T, double>::V

Definition at line 17 of file DiffSymmetrize.hpp.

Member Function Documentation

◆ operator()() [1/2]

template<class T = int>
template<char i, char j, char k, char l, int Dim0, int Dim1, int Dim2, int Dim3>
Tensor4_Expr< DiffSymmetrize< T >, value_type, Dim0, Dim1, Dim2, Dim3, i, j, k, l > FTensor::DiffSymmetrize< T >::operator() ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
) const
inline

Definition at line 32 of file DiffSymmetrize.hpp.

33 {
34 return Tensor4_Expr<DiffSymmetrize<T>, value_type, Dim0, Dim1, Dim2, Dim3,
35 i, j, k, l>(*this);
36 };
typename promote< T, double >::V value_type
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k

◆ operator()() [2/2]

template<class T = int>
constexpr value_type FTensor::DiffSymmetrize< T >::operator() ( const int  N0,
const int  N1,
const int  N2,
const int  N3 
) const
inlineconstexpr

Definition at line 19 of file DiffSymmetrize.hpp.

20 {
21 const auto first =
22 (N0 == N2 && N1 == N3) ? value_type(1) : value_type(0);
23 const auto second =
24 (N0 == N3 && N1 == N2) ? value_type(1) : value_type(0);
25 return (first + second) / value_type(2);
26 }

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