BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::tensor Namespace Reference

Functions

template<typename T>
void contract42 (const T *A, const T *B, T *C)
 tensor contraction A_ijkl * B_kl = C_ij
template<typename T>
void contract42 (const T *A, const Matrix< T > &B, Matrix< T > &C)
 tensor contraction A_ijkl * B_kl = C_ij
template<typename T>
void kelvin_christoffel (const T *A, const T *B, T *C)
 C_ik = A_ijkl * B_j * B_l.
template<typename T>
void kelvin_christoffel (const T *A, const Vector< T > &B, Matrix< T > &C)
template<typename T>
void rotate42 (const T *B, const T *R, T *A)
 tensor rotation A_mnop = B_ijkl * R_im * R_jn * R_ko * R_lp
template<typename T>
void rotate42 (const T *B, const Matrix< T > &R, T *A)
 tensor rotation A_mnop = B_ijkl * R_im * R_jn * R_ko * R_lp
template<typename T>
void identity (Tensor< T > &aTensor)
 populate the symmetric identity tensor
template<typename T>
void invert_symmetric (Tensor< T > &aTensor, Vector< T > &aWork, Vector< int_t > &aPivot)
template<typename T>
void contract44 (const T *A, const T *B, T *C)
 tensor contraction A_ijmn * B_mnkl = C_ijkl
template<typename T>
bool equal_equal (const T *A, const T *B, const index_t aCapacity)
template<typename T>
void fill (T *A, const T a, const T b)
template<typename T>
void mat_to_ten (const T *C, T *A)
 elasticity matrix conversion elasticity matrix C => tensor A
template<typename T>
void mat_to_ten (const Matrix< T > &C, T *A)
template<typename T>
void ten_to_mat (const T *A, T *C)
 elasticity matrix conversion Elasticity tensor A => elasticity matrix C
template<typename T>
void ten_to_mat (const T *A, Matrix< T > &C)

Function Documentation

◆ contract42() [1/2]

template<typename T>
void belfem::tensor::contract42 ( const T * A,
const Matrix< T > & B,
Matrix< T > & C )
inline

tensor contraction A_ijkl * B_kl = C_ij

◆ contract42() [2/2]

template<typename T>
void belfem::tensor::contract42 ( const T * A,
const T * B,
T * C )

tensor contraction A_ijkl * B_kl = C_ij

◆ contract44()

template<typename T>
void belfem::tensor::contract44 ( const T * A,
const T * B,
T * C )

tensor contraction A_ijmn * B_mnkl = C_ijkl

◆ equal_equal()

template<typename T>
bool belfem::tensor::equal_equal ( const T * A,
const T * B,
const index_t aCapacity )
inline

◆ fill()

template<typename T>
void belfem::tensor::fill ( T * A,
const T a,
const T b )

◆ identity()

template<typename T>
void belfem::tensor::identity ( Tensor< T > & aTensor)

populate the symmetric identity tensor

I_ijkl = 0.5 * ( d_ik * d_jl + d_il * d_jk )

Parameters
aTensor

◆ invert_symmetric()

template<typename T>
void belfem::tensor::invert_symmetric ( Tensor< T > & aTensor,
Vector< T > & aWork,
Vector< int_t > & aPivot )

◆ kelvin_christoffel() [1/2]

template<typename T>
void belfem::tensor::kelvin_christoffel ( const T * A,
const T * B,
T * C )

C_ik = A_ijkl * B_j * B_l.

◆ kelvin_christoffel() [2/2]

template<typename T>
void belfem::tensor::kelvin_christoffel ( const T * A,
const Vector< T > & B,
Matrix< T > & C )

◆ mat_to_ten() [1/2]

template<typename T>
void belfem::tensor::mat_to_ten ( const Matrix< T > & C,
T * A )

◆ mat_to_ten() [2/2]

template<typename T>
void belfem::tensor::mat_to_ten ( const T * C,
T * A )

elasticity matrix conversion elasticity matrix C => tensor A

◆ rotate42() [1/2]

template<typename T>
void belfem::tensor::rotate42 ( const T * B,
const Matrix< T > & R,
T * A )

tensor rotation A_mnop = B_ijkl * R_im * R_jn * R_ko * R_lp

◆ rotate42() [2/2]

template<typename T>
void belfem::tensor::rotate42 ( const T * B,
const T * R,
T * A )

tensor rotation A_mnop = B_ijkl * R_im * R_jn * R_ko * R_lp

◆ ten_to_mat() [1/2]

template<typename T>
void belfem::tensor::ten_to_mat ( const T * A,
Matrix< T > & C )

◆ ten_to_mat() [2/2]

template<typename T>
void belfem::tensor::ten_to_mat ( const T * A,
T * C )

elasticity matrix conversion Elasticity tensor A => elasticity matrix C