#include <math_utilities.hpp>
|
static bool | CardanoFormula (double a, double b, double c, double d, Vector &solution) |
|
static Vector | EigenValues (const Matrix &A, double tolerance, double zero) |
|
static Vector | EigenValuesDirectMethod (const Matrix &A) |
|
static void | QRFactorization (const MatrixType &A, MatrixType &Q, MatrixType &R) |
|
static void | EigenVectors (const MatrixType &A, MatrixType &vectors, VectorType &lambda, double zero_tolerance=1e-9, int max_iterations=10) |
|
static MatrixType | StrainVectorToTensor (const VectorType &Strains) |
|
static Vector | TensorToStrainVector (const Matrix &Tensor) |
|
static double | NormTensor (Matrix &Tensor) |
|
static void | VectorToTensor (const Vector &Stress, Matrix &Tensor) |
|
static void | TensorToVector (const Matrix &Tensor, Vector &Vector) |
|
static void | TensorToMatrix (Fourth_Order_Tensor &Tensor, Matrix &Matrix) |
|
static void | MatrixToTensor (MatrixType &A, std::vector< std::vector< Matrix > > &Tensor) |
|
static void | MatrixToTensor (MatrixType &A, array_1d< double, 81 > &Tensor) |
|
static void | TensorToMatrix (std::vector< std::vector< Matrix > > &Tensor, Matrix &Matrix) |
|
static void | TensorToMatrix (const array_1d< double, 81 > &Tensor, Matrix &Matrix) |
|
static void | DeviatoricUnity (std::vector< std::vector< Matrix > > &Unity) |
|
static void | DeviatoricUnity (array_1d< double, 81 > &Unity) |
|
static bool | Clipping (std::vector< Point * > &clipping_points, std::vector< Point * > &subjected_points, std::vector< Point * > &result_points, double tolerance) |
|
◆ Fourth_Order_Tensor
template<class TDataType >
◆ IndexType
template<class TDataType >
◆ MathUtilsType
template<class TDataType >
◆ Matrix_Second_Tensor
template<class TDataType >
◆ MatrixType
template<class TDataType >
◆ Second_Order_Tensor
template<class TDataType >
◆ SizeType
template<class TDataType >
◆ Third_Order_Tensor
template<class TDataType >
◆ VectorType
template<class TDataType >
◆ CardanoFormula()
template<class TDataType >
calculates the solutions for a given cubic polynomial equation 0= a*x^3+b*x^2+c*x+d
- Parameters
-
a | coefficient |
b | coefficient |
c | coefficient |
d | coefficient |
ZeroTol | number treated as zero |
- Returns
- Vector of solutions WARNING only valid cubic (not quadratic, not linear, not constant) equations with three real (not complex) solutions
◆ Clipping()
template<class TDataType >
Performs clipping on the two polygons clipping_points and subjected_points (the technique used is Sutherland-Hodgman clipping) and returns the overlapping polygon result_points. The method works in 3D. Both polygons have to be convex, but they can be slightly perturbated in 3D space, this allows for performing clipping on two interpolated interfaces
- Parameters
-
clipping_points | vertices of clipping polygon |
subjected_points | vertices of subjected polygon |
result_points | vertices of overlapping polygon |
- Returns
- false= no overlapping polygon, true= overlapping polygon found
◆ DeviatoricUnity() [1/2]
template<class TDataType >
Generates the fourth order deviatoric unity tensor
- Parameters
-
Unity | the deviatoric unity (will be overwritten) |
◆ DeviatoricUnity() [2/2]
template<class TDataType >
Generates the fourth order deviatoric unity tensor
- Parameters
-
Unity | the deviatoric unity (will be overwritten) |
◆ EigenValues()
template<class TDataType >
calculates Eigenvalues of given square matrix A. The QR Algorithm with shifts is used
- Parameters
-
A | the given square matrix the eigenvalues are to be calculated. |
tolerance | convergence criteria |
zero | number treated as zero |
- Returns
- Vector of eigenvalues WARNING only valid for 2*2 and 3*3 Matrices yet
◆ EigenValuesDirectMethod()
template<class TDataType >
calculates the eigenvectiors using a direct method.
- Parameters
-
A | the given square matrix the eigenvalues are to be calculated. WARNING only valid symmetric 3*3 Matrices |
◆ EigenVectors()
template<class TDataType >
calculates the eigenvectors and eigenvalues of given symmetric matrix A. The eigenvectors and eigenvalues are calculated using the iterative Gauss-Seidel-method
- Parameters
-
A | the given symmetric matrix where the eigenvectors have to be calculated. |
vectors | where the eigenvectors will be stored |
lambda | wher the eigenvalues will be stored |
zero_tolerance | the largest value considered to be zero |
max_iterations | allowed |
◆ MatrixToTensor() [1/2]
template<class TDataType >
Transforms a given 6*6 Matrix to a corresponing 4th order tensor
- Parameters
-
Tensor | the given Matrix |
Vector | the Tensor |
◆ MatrixToTensor() [2/2]
template<class TDataType >
Transforms a given 6*6 Matrix to a corresponing 4th order tensor
- Parameters
-
Tensor | the given Matrix |
Vector | the Tensor |
◆ NormTensor()
template<class TDataType >
Builds the norm of a gibven second order tensor
- Parameters
-
Tensor | the given second order tensor |
- Returns
- the norm of the given tensor
◆ QRFactorization()
template<class TDataType >
calculates the QR Factorization of given square matrix A=QR. The Factorization is performed using the householder algorithm
- Parameters
-
A | the given square matrix the factorization is to be calculated. |
Q | the result matrix Q |
R | the result matrix R |
◆ StrainVectorToTensor()
template<class TDataType >
calculates Eigenvectors and the EigenValues of given square matrix A(3x3) The QR Algorithm with shifts is used
- Parameters
-
A | the given symmetric 3x3 real matrix |
V | matrix to store the eigenvectors in rows |
d | matrix to store the eigenvalues converts a strain vector into a matrix. Strains are assumed to be stored in the following way: \( [ e11, e22, e33, 2*e12, 2*e23, 2*e13 ] \) for 3D case and \( [ e11, e22, 2*e12 ] \) fir 2D case. Hence the deviatoric components of the strain vector are divided by 2 while they are stored into the matrix |
Strains | the given strain vector |
- Returns
- the corresponding strain tensor in matrix form
◆ TensorToMatrix() [1/3]
template<class TDataType >
Transforms a given 4th order tensor to a corresponing 6*6 Matrix
- Parameters
-
Tensor | the given Tensor |
Vector | the Matrix |
◆ TensorToMatrix() [2/3]
template<class TDataType >
◆ TensorToMatrix() [3/3]
template<class TDataType >
Transforms a given 4th order tensor to a corresponing 6*6 Matrix
- Parameters
-
Tensor | the given Tensor |
Vector | the Matrix |
◆ TensorToStrainVector()
template<class TDataType >
◆ TensorToVector()
template<class TDataType >
Transforms a given symmetric Tensor of second order (3*3) to a corresponing 6*1 Vector
- Parameters
-
Tensor | the given symmetric second order tensor |
Vector | the vector |
◆ VectorToTensor()
template<class TDataType >
Transforms a given 6*1 Vector to a corresponing symmetric Tensor of second order (3*3)
- Parameters
-
Vector | the given vector |
Tensor | the symmetric second order tensor |
The documentation for this class was generated from the following file:
- /home/runner/work/Documentation/Documentation/master/applications/GeoMechanicsApplication/custom_utilities/math_utilities.hpp