| FEDEM Solver
    R8.0
    Source code of the dynamics solver | 
Various tensor transformation utilities. More...
| Functions | |
| double | vonMises (int N, const double *S) | 
| Returns the von Mises value of a symmetric stress/strain tensor.  More... | |
| double | vonMises (double s11, double s22, double s12) | 
| Returns the von Mises value of a 2D stress/strain tensor.  More... | |
| double | vonMises (double s11, double s22, double s33, double s12, double s13, double s23) | 
| Returns the von Mises value of a 3D stress/strain tensor.  More... | |
| int | principalDirs (int N, const double *S, double *pVals, double *pDirs) | 
| Calculates the principal directions and values of a tensor.  More... | |
| int | principalDirs (const double *S, double *pVal, double *p1Dir, double *p2Dir) | 
| Calculates the principal directions and values of a 2D tensor.  More... | |
| int | principalDirs (const double *S, double *pVal, double *p1Dir, double *p2Dir, double *p3Dir) | 
| Calculates the principal directions and values of a 3D tensor.  More... | |
| bool | principalValues (int N, const double *S, double *P) | 
| Calculates the principal values of a tensor.  More... | |
| bool | principalVals2D (double s11, double s22, double s12, double *pVal) | 
| Calculates the principal values of a 2D tensor.  More... | |
| bool | principalVals3D (double s11, double s22, double s33, double s12, double s13, double s23, double *pVal) | 
| Calculates the principal values of a 3D tensor.  More... | |
| bool | principalValues (double s11, double s22, double s12, double &p1, double &p2) | 
| bool | principalValues (double s11, double s22, double s33, double s12, double s13, double s23, double &p1, double &p2, double &p3) | 
| double | maxShearValue (double pMax, double pMin) | 
| Returns the maximum shear value.  More... | |
| void | maxShearDir (int N, const double *pMaxDir, const double *pMinDir, double *maxShearDir) | 
| Returns the direction of maximum shear.  More... | |
| void | rotate2D (const double *inTensor, const double *rotMx, double *outTensor) | 
| Coordinate transformation for a 2D tensor.  More... | |
| void | rotate (const double *inTensor, const double *eX, const double *eY, double *outTensor) | 
| Coordinate transformation for a 2D tensor.  More... | |
| void | rotate3D (const double *inTensor, const double *rotMx, double *outTensor) | 
| Coordinate transformation for a 3D tensor.  More... | |
| void | rotate (const double *inTensor, const double *eX, const double *eY, const double *eZ, double *outTensor) | 
| Coordinate transformation for a 3D tensor.  More... | |
| void | from2Dto3D (const double *tensor2D, double *tensor3D) | 
| Plain 2D-to-3D tensor conversion.  More... | |
| void | from3Dto2D (const double *tensor3D, double *tensor2D) | 
| Plain 3D-to-2D tensor conversion.  More... | |
Various tensor transformation utilities.
| void FFaTensorTransforms::from2Dto3D | ( | const double * | S2D, | 
| double * | S3D | ||
| ) | 
Plain 2D-to-3D tensor conversion.
Padding with zeros to fit the 3D tensor.
| void FFaTensorTransforms::from3Dto2D | ( | const double * | S3D, | 
| double * | S2D | ||
| ) | 
Plain 3D-to-2D tensor conversion.
Just cutting off whats needed to fit the 2D tensor.
| void FFaTensorTransforms::maxShearDir | ( | int | N, | 
| const double * | pMaxDir, | ||
| const double * | pMinDir, | ||
| double * | maxShearDir | ||
| ) | 
Returns the direction of maximum shear.
| [in] | N | Vector dimension (1, 2 or 3) | 
| [in] | pMaxDir | Direction of the max principal value | 
| [in] | pMinDir | Direction of the min principal value | 
| [out] | maxShearDir | Direction of the max shear value, this is 45 degrees on the max and min directions pointing from min to max | 
| double FFaTensorTransforms::maxShearValue | ( | double | pMax, | 
| double | pMin | ||
| ) | 
Returns the maximum shear value.
| [in] | pMax | Max principal value | 
| [in] | pMin | Min principal value | 
| int FFaTensorTransforms::principalDirs | ( | const double * | S, | 
| double * | pVal, | ||
| double * | p1Dir, | ||
| double * | p2Dir | ||
| ) | 
Calculates the principal directions and values of a 2D tensor.
| [in] | S | Tensor values, {s11, s22, s12} | 
| [out] | pVal | Principal values, {pMax,pMin} | 
| [out] | p1Dir | Direction vector for the first principal value | 
| [out] | p2Dir | Direction vector for the second principal value | 
| int FFaTensorTransforms::principalDirs | ( | const double * | S, | 
| double * | pVal, | ||
| double * | p1Dir, | ||
| double * | p2Dir, | ||
| double * | p3Dir | ||
| ) | 
Calculates the principal directions and values of a 3D tensor.
| [in] | S | Tensor values, {s11, s22, s33, s12, s13, s23} | 
| [out] | pVal | Principal values, {pMax,pMid,pMin} | 
| [out] | p1Dir | Direction vector for the first principal value | 
| [out] | p2Dir | Direction vector for the second principal value | 
| [out] | p3Dir | Direction vector for the third principal value | 
| int FFaTensorTransforms::principalDirs | ( | int | N, | 
| const double * | S, | ||
| double * | pVal, | ||
| double * | pDir | ||
| ) | 
Calculates the principal directions and values of a tensor.
| [in] | N | Tensor dimension (1, 2 or 3) | 
| [in] | S | Tensor values, upper triangle of the symmetric tensor | 
| [out] | pVal | Principal values in descending order, i.e., {P1,P2,P3} | 
| [out] | pDir | Associated principal direction vectors, e.g., in 3D: 
 | 
The tensor values are assumed laid out as follows
This function uses the LAPACK eigenvalue solver DSYEV.
| bool FFaTensorTransforms::principalVals2D | ( | double | s11, | 
| double | s22, | ||
| double | s12, | ||
| double * | pVal | ||
| ) | 
Calculates the principal values of a 2D tensor.
| bool FFaTensorTransforms::principalVals3D | ( | double | s11, | 
| double | s22, | ||
| double | s33, | ||
| double | s12, | ||
| double | s13, | ||
| double | s23, | ||
| double * | pVal | ||
| ) | 
Calculates the principal values of a 3D tensor.
| 
 | inline | 
| 
 | inline | 
| bool FFaTensorTransforms::principalValues | ( | int | N, | 
| const double * | S, | ||
| double * | P | ||
| ) | 
Calculates the principal values of a tensor.
| [in] | N | Tensor dimension (1, 2 or 3) | 
| [in] | S | Tensor values, upper triangle of the symmetric tensor | 
| [out] | P | Principal values in descending order, i.e., {P1,P2,P3} | 
The tensor values are assumed laid out as follows
| void FFaTensorTransforms::rotate | ( | const double * | S, | 
| const double * | eX, | ||
| const double * | eY, | ||
| const double * | eZ, | ||
| double * | S_transformed | ||
| ) | 
Coordinate transformation for a 3D tensor.
| [in] | S | Symmetric input tensor, S = {s11, s22, s33, s12, s13, s23} | 
| [in] | eX | Unit X-direction vector | 
| [in] | eY | Unit Y-direction vector | 
| [in] | eZ | Unit Z-direction vector | 
| [out] | S_transformed | The transformed tensor | 
| void FFaTensorTransforms::rotate | ( | const double * | S, | 
| const double * | eX, | ||
| const double * | eY, | ||
| double * | S_transformed | ||
| ) | 
Coordinate transformation for a 2D tensor.
| [in] | S | Symmetric input tensor, S = {s11, s22, s12} | 
| [in] | eX | Unit X-direction vector | 
| [in] | eY | Unit Y-direction vector | 
| [out] | S_transformed | The transformed tensor | 
| void FFaTensorTransforms::rotate2D | ( | const double * | inTensor, | 
| const double * | rotMx, | ||
| double * | outTensor | ||
| ) | 
Coordinate transformation for a 2D tensor.
| [in] | inTensor | Symmetric input tensor, {s11, s22, s12} | 
| [in] | rotMx | Transformation matrix, [eX, eY] | 
| [out] | outTensor | The transformed tensor | 
| void FFaTensorTransforms::rotate3D | ( | const double * | inTensor, | 
| const double * | rotMx, | ||
| double * | outTensor | ||
| ) | 
Coordinate transformation for a 3D tensor.
| [in] | inTensor | Symmetric input tensor, {s11, s22, s33, s12, s13, s23} | 
| [in] | rotMx | Transformation matrix, [eX, eY, eZ] | 
| [out] | outTensor | The transformed tensor | 
| double FFaTensorTransforms::vonMises | ( | double | s11, | 
| double | s22, | ||
| double | s12 | ||
| ) | 
Returns the von Mises value of a 2D stress/strain tensor.
| double FFaTensorTransforms::vonMises | ( | double | s11, | 
| double | s22, | ||
| double | s33, | ||
| double | s12, | ||
| double | s13, | ||
| double | s23 | ||
| ) | 
Returns the von Mises value of a 3D stress/strain tensor.
| double FFaTensorTransforms::vonMises | ( | int | N, | 
| const double * | S | ||
| ) | 
Returns the von Mises value of a symmetric stress/strain tensor.
| [in] | N | Tensor dimension (1, 2 or 3) | 
| [in] | S | Tensor values, upper triangle of the symmetric tensor | 
The tensor values are assumed laid out as follows