funcy  1.6.0
Classes | Functions
Invariants

Matrix Invariants (principal and mixed, modified (isochoric) invariants and deviatoric invariants). More...

Classes

class  funcy::linalg::SecondPrincipalInvariant< Mat >
 

Functions

template<Matrix M>
auto funcy::linalg::j2 (const M &A) requires(!Function< M >)
 Second deviatoric invariant \( j_2(\sigma)=\sqrt{\bar\sigma\negthinspace:\negthinspace\bar\sigma} \) with \(\bar\sigma = \sigma - \frac{\mathrm{tr}(\sigma)}{n}I\) and \(\sigma\in\mathbb{R}^{n,n}\).
 
template<Matrix Mat>
auto funcy::linalg::i4 (const Mat &A, const Mat &M) requires(!Function< Mat >)
 Generate first mixed invariant \( \iota_4=\iota_1(AM) \) of a matrix \(A\in\mathbb{R}^{n,n}\) with respect to the structural tensor \(M\in\mathbb{R}^{n,n}\). More...
 
template<Function F, class Matrix >
auto funcy::linalg::i4 (const F &f, const Matrix &M)
 Generate first mixed invariant \( \iota_4\circ f \) with \(f\mapsto\mathbb{R}^{n,n}\) and structural tensor \(M\in\mathbb{R}^{n,n}\). More...
 
template<Matrix Mat>
auto funcy::linalg::i5 (const Mat &A, const Mat &M) requires(!Function< Mat >)
 Generate second mixed invariant \( \iota_5=\iota_1(A^2M) \) of a matrix \(A\in\mathbb{R}^{n,n}\) with respect to the structural tensor \(M\in\mathbb{R}^{n,n}\). More...
 
template<Function F, class Matrix >
auto funcy::linalg::i5 (const F &f, const Matrix &M)
 Generate second mixed invariant \( \iota_5\circ f \) with \(f\mapsto\mathbb{R}^{n,n}\) and structural tensor \(M\in\mathbb{R}^{n,n}\). More...
 
template<Matrix Mat>
auto funcy::linalg::i6 (const Mat &A, const Mat &M) requires(!Function< Mat >)
 Generate third mixed invariant \( \iota_6=\iota_1(AM^2) \) of a matrix \(A\in\mathbb{R}^{n,n}\) with respect to the structural tensor \(M\in\mathbb{R}^{n,n}\). More...
 
template<Function F, class Matrix >
auto funcy::linalg::i6 (const F &f, const Matrix &M)
 Generate third mixed invariant \( \iota_6\circ f \) with \(f\mapsto\mathbb{R}^{n,n}\) and structural tensor \(M\in\mathbb{R}^{n,n}\). More...
 
template<class Arg , class Matrix , int n = dim< Matrix >()>
auto funcy::linalg::mi4 (const Arg &x, const Matrix &M)
 Isochoric (volume-preserving), first modified mixed invariant \( \bar\iota_4(A)=\iota_4\iota_3^{-1/3} \), where \(\iota_4\) is the first mixed and \(\iota_3\) is the third principal invariant. More...
 
template<class Arg , class Matrix , int n = dim< Matrix >()>
auto funcy::linalg::mi5 (const Arg &x, const Matrix &M)
 Isochoric (volume-preserving), second modified principal invariant \( \bar\iota_5(A)=\iota_5\iota_3^{-2/3} \), where \(\iota_5\) is the second mixed and \(\iota_3\) is the third principal invariant. More...
 
template<class Arg , class Matrix , int n = dim< Matrix >()>
auto funcy::linalg::mi6 (const Arg &x, const Matrix &M)
 Isochoric (volume-preserving), second modified principal invariant \( \bar\iota_6(A)=\iota_6\iota_3^{-1/3} \), where \(\iota_6\) is the third mixed and \(\iota_3\) is the third principal invariant. More...
 
template<class Arg >
auto funcy::linalg::i1 (Arg &&x)
 Generate first principal invariant. More...
 
template<Matrix M>
auto funcy::linalg::i2 (M &&A)
 Convenient generation of second principal invariant \( \iota_2(A)=\mathrm{tr}(\mathrm{cof}(A)) \) for \(A\in\mathbb{R}^{n,n}\). More...
 
template<Function F>
auto funcy::linalg::i2 (const F &f)
 Convenient generation of second principal invariant \( \iota_2\circ f \) for \(f:\cdot\mapsto\mathbb{R}^{n,n}\). More...
 
template<class Arg >
auto funcy::linalg::i3 (const Arg &x)
 Generate third principal invariant. More...
 
template<class Arg , int n = dim< Arg >()>
auto funcy::linalg::mi1 (const Arg &x)
 Isochoric (volume-preserving), first modified principal invariant \( \bar\iota_1(A)=\iota_1\iota_3^{-1/3} \), where \(\iota_1\) is the first and \(\iota_3\) is the third principal invariant. More...
 
template<class Arg , int n = dim< Arg >()>
auto funcy::linalg::mi2 (const Arg &x)
 Isochoric (volume-preserving), second modified principal invariant \( \bar\iota_2(A)=\iota_2\iota_3^{-2/3} \), where \(\iota_2\) is the second and \(\iota_3\) is the third principal invariant. More...
 

Detailed Description

Matrix Invariants (principal and mixed, modified (isochoric) invariants and deviatoric invariants).

Function Documentation

§ i1()

template<class Arg >
auto funcy::linalg::i1 ( Arg &&  x)

Generate first principal invariant.

Depending on the argument either generates \(\mathrm{tr}(A)\) or \(\mathrm{tr}\circ f\).

Returns
if x is a matrix then the this functions returns Trace<Arg>(x), if x is a function, then it returns Trace< std::decay_t<decltype(x())> >( x() )( x );

§ i2() [1/2]

template<Matrix M>
auto funcy::linalg::i2 ( M &&  A)

Convenient generation of second principal invariant \( \iota_2(A)=\mathrm{tr}(\mathrm{cof}(A)) \) for \(A\in\mathbb{R}^{n,n}\).

Returns
SecondPrincipalInvariant<Matrix>(A)

§ i2() [2/2]

template<Function F>
auto funcy::linalg::i2 ( const F &  f)

Convenient generation of second principal invariant \( \iota_2\circ f \) for \(f:\cdot\mapsto\mathbb{R}^{n,n}\).

Returns
SecondPrincipalInvariant( f() )( f )

§ i3()

template<class Arg >
auto funcy::linalg::i3 ( const Arg &  x)

Generate third principal invariant.

Depending on the argument either generates \(\det(A)\) or \(\det\circ f\).

Returns
if x is a matrix then the this functions returns Determinant<Arg>(x), if x is a function, then it returns Determinant< std::decay_t<decltype(x())> >( x() )( x );

§ i4() [1/2]

template<Matrix Mat>
auto funcy::linalg::i4 ( const Mat &  A,
const Mat &  M 
)

Generate first mixed invariant \( \iota_4=\iota_1(AM) \) of a matrix \(A\in\mathbb{R}^{n,n}\) with respect to the structural tensor \(M\in\mathbb{R}^{n,n}\).

Parameters
Asquare matrix
Mstructural tensor describing principal (fiber) direction

§ i4() [2/2]

template<Function F, class Matrix >
auto funcy::linalg::i4 ( const F &  f,
const Matrix M 
)

Generate first mixed invariant \( \iota_4\circ f \) with \(f\mapsto\mathbb{R}^{n,n}\) and structural tensor \(M\in\mathbb{R}^{n,n}\).

Parameters
ffunction returning a square matrix
Mstructural tensor describing principal (fiber) direction

§ i5() [1/2]

template<Matrix Mat>
auto funcy::linalg::i5 ( const Mat &  A,
const Mat &  M 
)

Generate second mixed invariant \( \iota_5=\iota_1(A^2M) \) of a matrix \(A\in\mathbb{R}^{n,n}\) with respect to the structural tensor \(M\in\mathbb{R}^{n,n}\).

Parameters
Asquare matrix
Mstructural tensor describing principal (fiber) direction

§ i5() [2/2]

template<Function F, class Matrix >
auto funcy::linalg::i5 ( const F &  f,
const Matrix M 
)

Generate second mixed invariant \( \iota_5\circ f \) with \(f\mapsto\mathbb{R}^{n,n}\) and structural tensor \(M\in\mathbb{R}^{n,n}\).

Parameters
ffunction returning a square matrix
Mstructural tensor describing principal (fiber) direction

§ i6() [1/2]

template<Matrix Mat>
auto funcy::linalg::i6 ( const Mat &  A,
const Mat &  M 
)

Generate third mixed invariant \( \iota_6=\iota_1(AM^2) \) of a matrix \(A\in\mathbb{R}^{n,n}\) with respect to the structural tensor \(M\in\mathbb{R}^{n,n}\).

Parameters
Asquare matrix
Mstructural tensor describing principal (fiber) direction

§ i6() [2/2]

template<Function F, class Matrix >
auto funcy::linalg::i6 ( const F &  f,
const Matrix M 
)

Generate third mixed invariant \( \iota_6\circ f \) with \(f\mapsto\mathbb{R}^{n,n}\) and structural tensor \(M\in\mathbb{R}^{n,n}\).

Parameters
ffunction returning a square matrix
Mstructural tensor describing principal (fiber) direction

§ mi1()

template<class Arg , int n = dim< Arg >()>
auto funcy::linalg::mi1 ( const Arg &  x)

Isochoric (volume-preserving), first modified principal invariant \( \bar\iota_1(A)=\iota_1\iota_3^{-1/3} \), where \(\iota_1\) is the first and \(\iota_3\) is the third principal invariant.

Parameters
xeither a square matrix or a function returning a square matrix

§ mi2()

template<class Arg , int n = dim< Arg >()>
auto funcy::linalg::mi2 ( const Arg &  x)

Isochoric (volume-preserving), second modified principal invariant \( \bar\iota_2(A)=\iota_2\iota_3^{-2/3} \), where \(\iota_2\) is the second and \(\iota_3\) is the third principal invariant.

Parameters
xeither a square matrix or a function returning a square matrix

§ mi4()

template<class Arg , class Matrix , int n = dim< Matrix >()>
auto funcy::linalg::mi4 ( const Arg &  x,
const Matrix M 
)

Isochoric (volume-preserving), first modified mixed invariant \( \bar\iota_4(A)=\iota_4\iota_3^{-1/3} \), where \(\iota_4\) is the first mixed and \(\iota_3\) is the third principal invariant.

Parameters
xeither a square matrix or a function returning a square matrix
Mstructural tensor describing principal (fiber) direction
Returns
\(\bar\iota_4(x)\) if x is a matrix, else \(\bar\iota_4 \circ x\)

§ mi5()

template<class Arg , class Matrix , int n = dim< Matrix >()>
auto funcy::linalg::mi5 ( const Arg &  x,
const Matrix M 
)

Isochoric (volume-preserving), second modified principal invariant \( \bar\iota_5(A)=\iota_5\iota_3^{-2/3} \), where \(\iota_5\) is the second mixed and \(\iota_3\) is the third principal invariant.

Parameters
xeither a square matrix or a function returning a square matrix.
Mstructural tensor describing principal (fiber) direction
Returns
\(\bar\iota_5(x)\) if x is a matrix, else \(\bar\iota_5 \circ x\)

§ mi6()

template<class Arg , class Matrix , int n = dim< Matrix >()>
auto funcy::linalg::mi6 ( const Arg &  x,
const Matrix M 
)

Isochoric (volume-preserving), second modified principal invariant \( \bar\iota_6(A)=\iota_6\iota_3^{-1/3} \), where \(\iota_6\) is the third mixed and \(\iota_3\) is the third principal invariant.

Parameters
xeither a square matrix or a function returning a square matrix.
Mstructural tensor describing principal (fiber) direction
Returns
\(\bar\iota_6(x)\) if x is a matrix, else \(\bar\iota_6 \circ x\)