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

Fourth-order differential deviator tensor. More...

#include "src/ftensor/src/FTensor/DiffDeviator.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 Dim01, int Dim23>
std::enable_if<(Dim01==3 &&Dim23==Dim), Ddg_Expr< DiffDeviator< T, Dim >, value_type, Dim01, Dim23, i, j, k, l > >::type operator() (const Index< i, Dim01 > &, const Index< j, Dim01 > &, const Index< k, Dim23 > &, const Index< l, Dim23 > &) const
 

Detailed Description

template<class T = int, int Dim = 3>
class FTensor::DiffDeviator< T, Dim >

Fourth-order differential deviator tensor.

Template Parameters
T
Dim
Examples
mofem/tutorials/adv-0_plasticity/src/PlasticOpsGeneric.hpp.

Definition at line 16 of file DiffDeviator.hpp.

Member Typedef Documentation

◆ value_type

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

Definition at line 18 of file DiffDeviator.hpp.

Member Function Documentation

◆ operator()() [1/2]

template<class T = int, int Dim = 3>
template<char i, char j, char k, char l, int Dim01, int Dim23>
std::enable_if<(Dim01==3 &&Dim23==Dim), Ddg_Expr< DiffDeviator< T, Dim >, value_type, Dim01, Dim23, i, j, k, l > >::type FTensor::DiffDeviator< T, Dim >::operator() ( const Index< i, Dim01 > &  ,
const Index< j, Dim01 > &  ,
const Index< k, Dim23 > &  ,
const Index< l, Dim23 > &   
) const
inline

Definition at line 33 of file DiffDeviator.hpp.

34 {
35 return Ddg_Expr<DiffDeviator<T, Dim>, value_type, Dim01, Dim23, i, j, k,
36 l>(*this);
37 };
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, int Dim = 3>
constexpr value_type FTensor::DiffDeviator< T, Dim >::operator() ( const int  N0,
const int  N1,
const int  N2,
const int  N3 
) const
inlineconstexpr

Definition at line 20 of file DiffDeviator.hpp.

21 {
22 const auto diff = DiffTensor<T>()(N0, N1, N2, N3);
23 const auto delta_ij = (N0 == N1) ? value_type(1) : value_type(0);
24 const auto delta_kl = (N2 == N3) ? value_type(1) : value_type(0);
25 return diff - (delta_ij * delta_kl) / value_type(3);
26 }

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