v0.14.0
Public Types | Public Member Functions | Public Attributes | List of all members
EigenMatrix::d2MCoefficients< E, C > Struct Template Reference

#include <src/ftensor/src/MatrixFunctionTemplate.hpp>

Collaboration diagram for EigenMatrix::d2MCoefficients< E, C >:
[legend]

Public Types

using Val = typename E::Val
 
using Vec = typename E::Vec
 
using Fun = typename E::Fun
 
using NumberNb = typename E::NumberNb
 
using NumberDim = typename E::NumberDim
 
template<int N>
using Number = FTensor::Number< N >
 

Public Member Functions

 d2MCoefficients (E &e)
 
template<int a, int b>
auto get (const Number< a > &, const Number< b > &, const int i, const int j, const int k, const int l, const Number< 3 > &) const
 
template<int a, int b>
auto get (const Number< a > &, const Number< b > &, const int i, const int j, const int k, const int l, const Number< 2 > &) const
 
template<int a, int b>
auto get (const Number< a > &, const Number< b > &, const int i, const int j, const int k, const int l, const Number< 1 >) const
 

Public Attributes

Ee
 

Detailed Description

template<typename E, typename C>
struct EigenMatrix::d2MCoefficients< E, C >

Definition at line 90 of file MatrixFunctionTemplate.hpp.

Member Typedef Documentation

◆ Fun

template<typename E , typename C >
using EigenMatrix::d2MCoefficients< E, C >::Fun = typename E::Fun

Definition at line 93 of file MatrixFunctionTemplate.hpp.

◆ Number

template<typename E , typename C >
template<int N>
using EigenMatrix::d2MCoefficients< E, C >::Number = FTensor::Number<N>

Definition at line 98 of file MatrixFunctionTemplate.hpp.

◆ NumberDim

template<typename E , typename C >
using EigenMatrix::d2MCoefficients< E, C >::NumberDim = typename E::NumberDim

Definition at line 96 of file MatrixFunctionTemplate.hpp.

◆ NumberNb

template<typename E , typename C >
using EigenMatrix::d2MCoefficients< E, C >::NumberNb = typename E::NumberNb

Definition at line 95 of file MatrixFunctionTemplate.hpp.

◆ Val

template<typename E , typename C >
using EigenMatrix::d2MCoefficients< E, C >::Val = typename E::Val

Definition at line 91 of file MatrixFunctionTemplate.hpp.

◆ Vec

template<typename E , typename C >
using EigenMatrix::d2MCoefficients< E, C >::Vec = typename E::Vec

Definition at line 92 of file MatrixFunctionTemplate.hpp.

Constructor & Destructor Documentation

◆ d2MCoefficients()

template<typename E , typename C >
EigenMatrix::d2MCoefficients< E, C >::d2MCoefficients ( E e)
inline

Definition at line 100 of file MatrixFunctionTemplate.hpp.

100 : e(e) {}

Member Function Documentation

◆ get() [1/3]

template<typename E , typename C >
template<int a, int b>
auto EigenMatrix::d2MCoefficients< E, C >::get ( const Number< a > &  ,
const Number< b > &  ,
const int  i,
const int  j,
const int  k,
const int  l,
const Number< 1 >   
) const
inline

Definition at line 123 of file MatrixFunctionTemplate.hpp.

125  {
126  return e.aS[get_sym_index(Number<a>(), Number<b>(), NumberDim())](i, j, k,
127  l) *
128  e.dfVal(a) / static_cast<C>(2);
129  }

◆ get() [2/3]

template<typename E , typename C >
template<int a, int b>
auto EigenMatrix::d2MCoefficients< E, C >::get ( const Number< a > &  ,
const Number< b > &  ,
const int  i,
const int  j,
const int  k,
const int  l,
const Number< 2 > &   
) const
inline

Definition at line 113 of file MatrixFunctionTemplate.hpp.

115  {
116  if constexpr (a == 1 || b == 1)
117  return get(Number<a>(), Number<b>(), i, j, k, l, Number<3>());
118  else
119  return get(Number<a>(), Number<b>(), i, j, k, l, Number<1>());
120  }

◆ get() [3/3]

template<typename E , typename C >
template<int a, int b>
auto EigenMatrix::d2MCoefficients< E, C >::get ( const Number< a > &  ,
const Number< b > &  ,
const int  i,
const int  j,
const int  k,
const int  l,
const Number< 3 > &   
) const
inline

Definition at line 104 of file MatrixFunctionTemplate.hpp.

106  {
107  return e.aS[get_sym_index(Number<a>(), Number<b>(), NumberDim())](i, j, k,
108  l) *
109  e.fVal(a) * e.aF(a, b);
110  }

Member Data Documentation

◆ e

template<typename E , typename C >
E& EigenMatrix::d2MCoefficients< E, C >::e

Definition at line 101 of file MatrixFunctionTemplate.hpp.


The documentation for this struct was generated from the following file:
EigenMatrix::get_sym_index
auto get_sym_index(const Number< N1 > &, const Number< N2 > &, const Number< Dim > &)
Definition: MatrixFunctionTemplate.hpp:58
EigenMatrix::d2MCoefficients::Number
FTensor::Number< N > Number
Definition: MatrixFunctionTemplate.hpp:98
a
constexpr double a
Definition: approx_sphere.cpp:30
EigenMatrix::d2MCoefficients::get
auto get(const Number< a > &, const Number< b > &, const int i, const int j, const int k, const int l, const Number< 3 > &) const
Definition: MatrixFunctionTemplate.hpp:104
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
j
FTensor::Index< 'j', 3 > j
Definition: matrix_function.cpp:19
EigenMatrix::d2MCoefficients::e
E & e
Definition: MatrixFunctionTemplate.hpp:101
EigenMatrix::d2MCoefficients::NumberDim
typename E::NumberDim NumberDim
Definition: MatrixFunctionTemplate.hpp:96
k
FTensor::Index< 'k', 3 > k
Definition: matrix_function.cpp:20
l
FTensor::Index< 'l', 3 > l
Definition: matrix_function.cpp:21