RFFGen
 All Classes Namespaces Files Functions Typedefs Enumerations Groups
Public Member Functions | List of all members
RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset > Class Template Reference

Possibly scaled, shifted invariant $scaling (invariant - offset)$, where $offset = dim$ for the first two (principal,modified) invariants and $offset = 1$ for the third (principal,modified) and mixed invariants. More...

#include <shiftedInvariant.hh>

Inheritance diagram for RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset >:
RFFGen::Base

Public Member Functions

template<class Matrix >
 ShiftedInvariant (Matrix const &A)
 
template<class Matrix >
 ShiftedInvariant (const Matrix &A, const Constant< Matrix > &M)
 
template<class Matrix >
 ShiftedInvariant (const Matrix &A, const Matrix &M)
 
template<class Matrix >
void update (Matrix const &A)
 Reset matrix to compute shifted invariant from.
 
auto d0 () const noexcept
 Value of the shifted invariant.
 
template<int id, class Arg , class IndexedArg = IndexedType<Arg,id>, class = std::enable_if_t<EvaluateIfPresent< D1<Invariant,IndexedArg> >::present>>
auto d1 (const Arg &dA1) const
 First directional derivative of the (scaled) shifted invariant. More...
 
template<int idx, int idy, class ArgX , class ArgY , class IndexedArgX = IndexedType<ArgX,idx>, class IndexedArgY = IndexedType<ArgY,idx>, class = std::enable_if_t<EvaluateIfPresent< D2<Invariant,IndexedArgX,IndexedArgY> >::present>>
auto d2 (const ArgX &dA1, const ArgY &dA2) const
 Second directional derivative of the (scaled) shifted invariant. More...
 
template<int idx, int idy, int idz, class ArgX , class ArgY , class ArgZ , class IndexedArgX = IndexedType<ArgX,idx>, class IndexedArgY = IndexedType<ArgY,idy>, class IndexedArgZ = IndexedType<ArgZ,idz>, class = std::enable_if_t< EvaluateIfPresent< D3<Invariant,IndexedArgX,IndexedArgY,IndexedArgZ> >::present >>
auto d3 (ArgX const &dA1, ArgY const &dA2, ArgZ const &dA3) const
 Third directional derivative of the (scaled) shifted invariant. More...
 

Detailed Description

template<class Invariant, int offset>
class RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset >

Possibly scaled, shifted invariant $scaling (invariant - offset)$, where $offset = dim$ for the first two (principal,modified) invariants and $offset = 1$ for the third (principal,modified) and mixed invariants.

Constructor & Destructor Documentation

template<class Invariant , int offset>
template<class Matrix >
RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset >::ShiftedInvariant ( Matrix const &  A)
inline
Parameters
Amatrix to compute invariant from.
template<class Invariant , int offset>
template<class Matrix >
RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset >::ShiftedInvariant ( const Matrix &  A,
const Constant< Matrix > &  M 
)
inline
Parameters
Amatrix to compute invariant from.
Mstructural tensor for incorporation of anisotropic information.
template<class Invariant , int offset>
template<class Matrix >
RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset >::ShiftedInvariant ( const Matrix &  A,
const Matrix &  M 
)
inline
Parameters
Amatrix to compute invariant from.
Mstructural tensor for incorporation of anisotropic information.

Member Function Documentation

template<class Invariant , int offset>
template<int id, class Arg , class IndexedArg = IndexedType<Arg,id>, class = std::enable_if_t<EvaluateIfPresent< D1<Invariant,IndexedArg> >::present>>
auto RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset >::d1 ( const Arg &  dA1) const
inline

First directional derivative of the (scaled) shifted invariant.

Parameters
dA1direction for which the derivative is computed
Returns
derivative in direction dA1
template<class Invariant , int offset>
template<int idx, int idy, class ArgX , class ArgY , class IndexedArgX = IndexedType<ArgX,idx>, class IndexedArgY = IndexedType<ArgY,idx>, class = std::enable_if_t<EvaluateIfPresent< D2<Invariant,IndexedArgX,IndexedArgY> >::present>>
auto RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset >::d2 ( const ArgX &  dA1,
const ArgY &  dA2 
) const
inline

Second directional derivative of the (scaled) shifted invariant.

Parameters
dA1direction for which the derivative is computed
dA2direction for which the derivative is computed
Returns
second derivative in the directions dA1 and dA2
template<class Invariant , int offset>
template<int idx, int idy, int idz, class ArgX , class ArgY , class ArgZ , class IndexedArgX = IndexedType<ArgX,idx>, class IndexedArgY = IndexedType<ArgY,idy>, class IndexedArgZ = IndexedType<ArgZ,idz>, class = std::enable_if_t< EvaluateIfPresent< D3<Invariant,IndexedArgX,IndexedArgY,IndexedArgZ> >::present >>
auto RFFGen::LinearAlgebra::ShiftedInvariant< Invariant, offset >::d3 ( ArgX const &  dA1,
ArgY const &  dA2,
ArgZ const &  dA3 
) const
inline

Third directional derivative of the (scaled) shifted invariant.

Parameters
dA1direction for which the derivative is computed
dA2direction for which the derivative is computed
dA3direction for which the derivative is computed
Returns
second derivative in the directions dA1, dA2 and dA3

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