3 #include <funcy/concepts.h> 4 #include <funcy/linalg/concepts.h> 5 #include <funcy/linalg/transpose.h> 6 #include <funcy/util/chainer.h> 7 #include <funcy/util/mathop_traits.h> 20 template <
class Mat >
38 FTF = multiply_via_traits( FT, F );
42 const Mat&
d0() const noexcept
48 Mat
d1(
const Mat& dF1 )
const 50 Mat FTdF1 = multiply_via_traits( FT, dF1 );
51 return detail::add_transposed( FTdF1 );
55 Mat
d2(
const Mat& dF1,
const Mat& dF2 )
const 58 return detail::add_transposed( dF2TdF1 );
71 template <
class Mat >
89 FFT = multiply_via_traits( F, FT );
93 const Mat&
d0() const noexcept
99 Mat
d1(
const Mat& dF1 )
const 101 Mat FTdF1 = multiply_via_traits( dF1, FT );
102 return detail::add_transposed( FTdF1 );
106 Mat
d2(
const Mat& dF1,
const Mat& dF2 )
const 109 return detail::add_transposed( dF1dF2T );
121 template <
class Mat >
133 template < Function F >
144 template <
class Mat >
156 template < Function F >
RightCauchyGreenStrainTensor(const Mat &F)
Constructor.
Definition: strain_tensor.h:29
Mat d1(const Mat &dF1) const
First directional derivative .
Definition: strain_tensor.h:99
auto strain_tensor(const Mat &A)
Generate the right Cauchy-Green strain tensor .
Definition: strain_tensor.h:122
LeftCauchyGreenStrainTensor(const Mat &F)
Constructor.
Definition: strain_tensor.h:80
const Mat & d0() const noexcept
Function value .
Definition: strain_tensor.h:93
Left Cauchy-Green strain tensor for a symmetric matrix .
Definition: strain_tensor.h:72
auto left_strain_tensor(const Mat &A)
Generate the left Cauchy-Green strain tensor .
Definition: strain_tensor.h:145
void update(const Mat &F)
Reset point of evaluation.
Definition: strain_tensor.h:35
Functionality from linear algebra such as (modified) principal and mixed matrix invariants.
Mat d1(const Mat &dF1) const
First directional derivative .
Definition: strain_tensor.h:48
Mat d2(const Mat &dF1, const Mat &dF2) const
Second directional derivative .
Definition: strain_tensor.h:106
auto transpose(const Mat &A)
Generate .
Definition: transpose.h:151
Right Cauchy-Green strain tensor for a symmetric matrix .
Definition: strain_tensor.h:21
Mat d2(const Mat &dF1, const Mat &dF2) const
Second directional derivative .
Definition: strain_tensor.h:55
const Mat & d0() const noexcept
Function value .
Definition: strain_tensor.h:42
void update(const Mat &F)
Reset point of evaluation.
Definition: strain_tensor.h:86