The Transfer Library

mat v2t_strain(const vec &v)

Converts a second order strain tensor written as a vector v in the ‘simcoon’ formalism into a second order strain tensor written as a matrix m.

vec v = randu(6);
mat m = v2t_strain(v);
vec t2v_strain(const mat &strain)

Converts a second order strain tensor written as a matrix m in the ‘simcoon’ formalism into a second order strain tensor written as a vector v.

mat m = randu(6,6);
vec v = t2v_strain(m);
mat v2t_stress(const vec &v)

Converts a second order stress tensor written as a vector v in the ‘simcoon’ formalism into a second order stress tensor written as a matrix m.

vec v = randu(6);
mat m = v2t_stress(v);
vec t2v_stress(const mat &stress)

Converts a second order stress tensor written as a matrix m in the ‘simcoon’ formalism into a second order stress tensor written as a vector v.

mat m = randu(6,6);
vec v = t2v_stress(m);
mat v2t_stress(const vec &v)

Converts a second order stress tensor written as a vector v in the ‘simcoon’ formalism into a second order stress tensor written as a matrix m.

vec v = randu(6);
mat m = v2t_stress(v);
vec t2v_sym(const mat &m)

Converts a 3x3 symmetric matrix into a 6 component vector {11,22,33,12,13,23}

mat m = randu(3,3);
vec v = t2v_sym(m);
mat v2t_sym(const vec &v)

Converts a 6 component vector {11,22,33,12,13,23} into a 3x3 symmetric matrix

vec v = randu(6);
mat m = t2v_sym(m);
mat v2t_skewsym(const vec &v)

Converts a 6 component vector {11,22,33,12,13,23} into a 3x3 antisymmetric matrix, while keeping the diagonal components

\[\begin{split}m = \left( \begin{array}{ccc} v_1 & v_4 & v_5 \\ -v_4 & v_2 & v_6 \\ v_5 & -v_6 & v_3 \end{array} \right)\end{split}\]
vec v = randu(6);
mat m = t2v_sym(m);
mat v2t(const vec &v)

Converts a 9 component vector {11,12,13,21,22,23,31,32,33} into a 3x3 symmetric matrix

vec v = randu(9);
mat m = t2v(m);
Tensor1<double, 3> vec_FTensor1(const vec &v)

Converts an armadillo colvec of size 3 to a FTensor Tensor of the 1st rank

vec v = randu(3);
FTensor::Tensor1<double,3> = vec_FTensor1(v);
Tensor1<double, 3> vec_FTensor1(const vec &v)

Converts an armadillo colvec of size 3 to a FTensor Tensor of the 1st rank

vec v = randu(3);
FTensor::Tensor1<double,3> = vec_FTensor1(v);
Tensor2<double, 3, 3> mat_FTensor2(const mat &m)

Converts an armadillo 3x3 matrix to a FTensor Tensor of the 2nd rank

mat m = randu(3,3);
FTensor::Tensor2<double,3,3> = mat_FTensor2(m);
Tensor2<double, 3, 3> v_FTensor2_strain(const vec &v)

Converts an armadillo column vector (6) that correspond to a strain vector in Voigt notation to a FTensor Tensor of the 2nd rank

mat m = randu(3,3);
vec v = t2v_strain(m);
FTensor::Tensor2<double,3,3> = v_FTensor2_strain(v);
Tensor2<double, 3, 3> v_FTensor2_stress(const vec &v)

Converts an armadillo column vector (6) that correspond to a stress vector in Voigt notation to a FTensor Tensor of the 2nd rank

mat m = randu(3,3);
vec v = t2v_stress(m);
FTensor::Tensor2<double,3,3> = v_FTensor2_stress(v);
mat FTensor4_mat(const Tensor4<double, 3, 3, 3, 3> &C)

Converts a FTensor 4th order tensor with minor symmetries into an armadillo 6x6 matrix

Tensor4<double,3,3,3,3> C;
... fill L_tilde to obtain a stiffness 4th order tensor
mat L = FTensor4_mat(C);
Tensor4<double, 3, 3, 3, 3> mat_FTensor4(const mat &L)

Converts a FTensor 4th order tensor with minor symmetries into an armadillo 6x6 matrix


mat L = L_iso(70000,0.3,’Enu’); Tensor4<double,3,3,3,3> C = mat_FTensor4(L);

mat B_klmn(const vec &b_i, const vec &b_j)