31 #ifndef MUMECH_MATRIX_OPERATIONS_H 32 #define MUMECH_MATRIX_OPERATIONS_H 82 namespace MatrixOperations
179 void printField(
double ** field,
int n,
int m,
const char * notice );
182 void printField(
double ** field,
int n,
int m,
int lineBreak,
const char * notice );
185 void printAnisoField(
double ** field,
int n,
int * m,
int lineBreak,
const char * notice );
188 void printAnisoField(
int ** field,
int n,
int * m,
int lineBreak,
const char * notice );
void convert2Dtensor_TRtoVR_notation(double *t)
Function convert the symmetric double 2D tensor 't'.
void copy2DeshelbyTensor_reduced2full(const double *a, double **b)
Function copies and converts 2D eshelby/stiffness tensor saved in reduced row-wise vector 'a' to full...
void printField(double **field, int n, int m, const char *notice)
Function prints a field which is saved as 2D array.
double giveTTproduct_1is2x2to3and2x2to3_SS(const double *T1, const double *T2)
Function gives scalar left-right product of tensor and tensor.
void giveUnitSMatrixFull_2d(double *m)
Function sets reduced 2d SMatrix to unit matrix.
void convert3Dtensor_9ROWto6FEEP_notation(double *t)
void convert2Dtensor_4ROWto3FEEP_notation(double *t)
void copy3DeshelbyTensor_reduced2full(const double *a, double **b)
Function copies and converts 3D eshelby/stiffness tensor saved in reduced row-wise vector 'a' to full...
double giveVTVproduct_1is3and3x3to5and3(const double *T, const double *vect)
Function gives scalar left-right product of tensor and vector - 'result = vect^T * T * vect'...
void giveUnitSMatrixReduced_3d(double *m)
Function sets reduced 3d SMatrix to unit matrix.
void giveTVproduct_6is6x6to12and6(double *result, const double *T, const double *vect)
Function gives product of tensor and vector - 'result = T * vect'.
void printAnisoField(double **field, int n, int *m, int lineBreak, const char *notice)
Function prints an anisotropic field of type 'double' which is saved as 2D anisotropic array...
void copy2Dto3Dtensors_FEEPreduced(const double *a, double *b)
Function copy the symmetric double 2D tensor 'a' to 3D tensor 'b'.
Collection of the functions of basic manipulations, some of them can be used instead of their counter...
void copy2DeshelbyTensor_full2reduced(const double *a, double *b)
Function copies and converts 2D eshelby/stiffness tensor saved in full row-wise vector 'a' to reduced...
void giveTTproduct_3x3to5is3x3to5and3x3to5(double *result, const double *T1, const double *T2)
Function gives product of tensor and tensor - 'result = T1 * T2'.
void printSMatrixReduced(const double S[12], const char *notice, unsigned flag)
Function prints an reduced SMatrix in matrix form.
void convert3Dtensor_TRtoVR_notation(double *t)
Function convert the symmetric double 3D tensor 't'.
void convert2Dtensor_TRtoROW_notation(double *t)
Function convert the symmetric double 2D tensor 't'.
void giveIsoTensAndVectorProduct(const double *tens, const double *vec, double *result, int dim)
Function gives the product of the isotropic tensor of seccond order with a vector.
void copy3DeshelbyTensor_full2reduced(const double *a, double *b)
Function copies and converts 3D eshelby/stiffness tensor saved in full row-wise vector 'a' to reduced...
void giveTVproduct_3is3x3to5and3(double *result, const double *T, const double *vect)
Function gives product of tensor and vector - 'result = T * vect'.
void convert3Dtensor_TFEEPtoROW_notation(double *t)
Function convert the symmetric double 3D tensor 't'.
void giveInverseMatrix(double *mtrx, int n)
Function computes inversion of squared matrix mtrx.
void giveUnitSMatrixReduced_2d(double *m)
Function sets reduced 2d SMatrix to unit matrix.
void copy3Dto2Dtensors_FEEPreduced(const double *a, double *b)
Function copy the symmetric double 3D tensor 'a' to 2D tensor 'b'.
void giveInverseMatrix_core(double **answer, double **mtrx, int n, bool vect)
Function gives inversion of squared matrix mtrx.
void giveUnitSMatrixFull_3d(double *m)
Function sets reduced 3d SMatrix to unit matrix.
void CleanVector(double *a, long n)
Functin cleans a 'double' vector, initialize each value being 0-zero.
void CopyTensorAndReduceToFeep(const double *a, double *b)
Function copy two double tensor, 'a' -> 'b', saved as 9 component vectors.