KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
#include <mpm_stress_principal_invariants_utility.h>
Public Types | |
typedef Matrix | MatrixType |
typedef Vector | VectorType |
typedef unsigned int | IndexType |
typedef unsigned int | SizeType |
Static Public Member Functions | |
static void | SortPrincipalStress (Vector &rPrincipalStress, Vector &rMainStrain, Matrix &rMainDirections) |
Sort Principal Stresses, Strains, and Directions to magnitude order. More... | |
static void | CalculateTensorInvariants (const Vector &rVector, double &rI1, double &rJ2) |
Calculate invariants I1 and J2 of a tensor. More... | |
static void | CalculateTensorInvariants (const Vector &rVector, double &rI1, double &rJ2, double &rJ3) |
Calculate invariants I1, J2, and J3 of a tensor. More... | |
static void | CalculateTensorInvariantsDerivatives (const Vector &rVector, Vector &rDI1, Vector &rDJ2, Vector &rDJ3) |
Calculate derivatives of invariants dI1/dtensor, dJ2/dtensor, and dJ3/dtensor. More... | |
static void | CalculateTensorInvariantsSecondDerivatives (const Vector &rVector, Matrix &rD2I1, Matrix &rD2J2, Matrix &rD2J3) |
Calculate second derivatives of invariants d2I1/d2tensor, d2J2/d2tensor, and d2J3/d2tensor. More... | |
static void | CalculateStressInvariants (const Vector &rStress, double &rMeanStressP, double &rDeviatoricQ) |
Calculate stress invariants p (volumetric equivalent) and q (deviatoric equivalent). More... | |
static void | CalculateThirdStressInvariant (const Vector &rStress, double &rLodeAngle) |
Calculate the third stress invariants lode angle (we are using positive sine definition). More... | |
static void | CalculateStressInvariants (const Vector &rStress, double &rMeanStressP, double &rDeviatoricQ, double &rLodeAngle) |
Calculate stress invariants p, q, and lode angle. More... | |
static void | CalculateDerivativeVectors (const Vector rStress, Vector &rC1, Vector &rC2) |
Calculate stress invariant derivatives dp/dsigma (volumetric) and dq/dsigma (deviatoric). More... | |
static void | CalculateDerivativeVectors (const Vector rStress, Vector &rC1, Vector &rC2, Vector &rC3) |
Calculate stress invariant derivatives dp/dsigma (volumetric), dq/dsigma (deviatoric), and dlodeangle/dsigma. More... | |
static void | CalculateSecondDerivativeMatrices (const Vector rStress, Matrix &r2C1, Matrix &r2C2) |
Calculate second stress invariant derivatives d2p/d2sigma (volumetric) and d2q/d2sigma (deviatoric). More... | |
static void | CalculateSecondDerivativeMatrices (const Vector rStress, Matrix &r2C1, Matrix &r2C2, Matrix &r2C3) |
Calculate second stress invariant derivatives d2p/d2sigma (volumetric), d2q/d2sigma (deviatoric), and d2lodeangle/d2sigma. More... | |
static Matrix | PrincipalVectorToMatrix (const Vector &rVector, const unsigned int &rSize) |
Transform Stress or Principal stress tensor to Matrix form (fully assuming 3D space). More... | |
static Vector | PrincipalMatrixtoVector (const Matrix &rMatrix, const unsigned int &rSize) |
Transform Stress or Principal stress tensor to Vector form (fully assuming 3D space). More... | |
static double | CalculateMatrixDoubleContraction (const Matrix &rInput) |
static double | CalculateMatrixTrace (const Matrix &rInput) |
Static Public Attributes | |
static constexpr double | tolerance = 1.0e-9 |
typedef unsigned int Kratos::MPMStressPrincipalInvariantsUtility::IndexType |
typedef unsigned int Kratos::MPMStressPrincipalInvariantsUtility::SizeType |
|
inlinestatic |
Calculate stress invariant derivatives dp/dsigma (volumetric) and dq/dsigma (deviatoric).
[in] | rStress | Input principal stress tensor. |
[out] | rC1 | Hydrostatic mean stress derivative with respect to principal stresses. |
[out] | rC2 | Deviatoric stress derivative with respect to principal stresses. |
|
inlinestatic |
Calculate stress invariant derivatives dp/dsigma (volumetric), dq/dsigma (deviatoric), and dlodeangle/dsigma.
[in] | rStress | Input principal stress tensor. |
[out] | rC1 | Hydrostatic mean stress derivative with respect to principal stresses. |
[out] | rC2 | Deviatoric stress derivative with respect to principal stresses. |
[out] | rC3 | Derivative of lode angle with respect to principal stresses. |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Calculate second stress invariant derivatives d2p/d2sigma (volumetric) and d2q/d2sigma (deviatoric).
[in] | rStress | Input principal stress tensor. |
[out] | r2C1 | Hydrostatic mean stress second derivative with respect to principal stresses. |
[out] | r2C2 | Deviatoric stress second derivative with respect to principal stresses. |
|
inlinestatic |
Calculate second stress invariant derivatives d2p/d2sigma (volumetric), d2q/d2sigma (deviatoric), and d2lodeangle/d2sigma.
[in] | rStress | Input principal stress tensor. |
[out] | r2C1 | Hydrostatic mean stress second derivative with respect to principal stresses. |
[out] | r2C2 | Deviatoric stress second derivative with respect to principal stresses. |
[out] | r2C3 | Second Derivative of lode angle with respect to principal stresses. |
|
inlinestatic |
Calculate stress invariants p (volumetric equivalent) and q (deviatoric equivalent).
[in] | rStress | Input principal stress tensor. |
[out] | rMeanStressP | Hydrostatic mean stress. |
[out] | rDeviatoricQ | Deviatoric stress component. |
|
inlinestatic |
Calculate stress invariants p, q, and lode angle.
[in] | rStress | Input principal stress tensor. |
[out] | rMeanStressP | Hydrostatic mean stress. |
[out] | rDeviatoricQ | Deviatoric stress component. |
[out] | rLodeAngle | Third stress invariant direction used for non-circular octahedral profile yield surface. |
|
inlinestatic |
Calculate invariants I1 and J2 of a tensor.
[in] | rVector | Input principal tensor. |
[out] | rI1 | First stress tensor invariant. |
[out] | rJ2 | Second stress deviator tensor invariant. |
|
inlinestatic |
Calculate invariants I1, J2, and J3 of a tensor.
[in] | rVector | Input principal tensor. |
[out] | rI1 | First stress tensor invariant. |
[out] | rJ2 | Second stress deviator tensor invariant. |
[out] | rJ3 | Third stress deviator tensor invariant. |
|
inlinestatic |
Calculate derivatives of invariants dI1/dtensor, dJ2/dtensor, and dJ3/dtensor.
[in] | rVector | Input principal tensor. |
[out] | rDI1 | First derivative of first stress tensor invariant. |
[out] | rDJ2 | First derivative of second stress deviator tensor invariant. |
[out] | rDJ3 | First derivative of third stress deviator tensor invariant. |
|
inlinestatic |
Calculate second derivatives of invariants d2I1/d2tensor, d2J2/d2tensor, and d2J3/d2tensor.
[in] | rVector | Input principal tensor. |
[out] | rD2I1 | Second derivative of first stress tensor invariant. |
[out] | rD2J2 | Second derivative of second stress deviator tensor invariant. |
[out] | rD2J3 | Second derivative of third stress deviator tensor invariant. |
|
inlinestatic |
Calculate the third stress invariants lode angle (we are using positive sine definition).
[in] | rStress | Input principal tensor. |
[out] | rLodeAngle | Third stress invariant direction used for non-circular octahedral profile yield surface. |
|
inlinestatic |
Transform Stress or Principal stress tensor to Vector form (fully assuming 3D space).
[in] | rMatrix | Matrix tensor to be transformed. |
[in] | rSize | Matrix size, 3 for only principal stresses, 6 for normal stresses. |
|
inlinestatic |
Transform Stress or Principal stress tensor to Matrix form (fully assuming 3D space).
[in] | rVector | Vector tensor to be transformed. |
[in] | rSize | Matrix size, 3 for only principal stresses, 6 for normal stresses. |
|
inlinestatic |
Sort Principal Stresses, Strains, and Directions to magnitude order.
[in/out] | rPrincipalStress The principal stresses to be sorted in descending magnitude order. |
[in/out] | rMainStrain The principal strain corresponding to the stresses. |
[in/out] | rMainDirections The eigen directions corresponding to the stresses. |
|
staticconstexpr |