Implementation of a linear elastic material for 3D stress states.
More...
#include <LinearElastic.h>
|
| LinearElastic (const double *materialProperties, int nMaterialProperties, int materialNumber) |
|
void | setCharacteristicElementLength (double length) |
|
virtual void | computeStress (double *stress, double *dStressDDStrain, const double *FOld, const double *FNew, const double *timeOld, const double dT, double &pNewDT) override |
|
virtual void | computePlaneStress (double *stress2D, double *dStress_dStrain2D, const double *dStrain2D, const double *timeOld, const double dT, double &pNewDT) |
|
virtual void | computeUniaxialStress (double *stress1D, double *dStress_dStrain1D, const double *dStrain, const double *timeOld, const double dT, double &pNewDT) |
|
virtual void | computePlaneStress (double *stress2D, double *dStress_dF2DNew, const double *FOld2D, const double *FNew2D, const double *timeOld, const double dT, double &pNewDT) |
|
virtual void | computeUniaxialStress (double *stress1D, double *dStress1D_dF1DNew, const double *F1DOld, const double *F1DNew, const double *timeOld, const double dT, double &pNewDT) |
|
virtual void | computePlaneStress (double *stress2D, double *dStress_dF2DNew, const double *FOld2D, const double *FNew2D, const double *timeOld, const double dT, double &pNewDT) |
|
virtual void | computeUniaxialStress (double *stress1D, double *dStress1D_dF1DNew, const double *F1DOld, const double *F1DNew, const double *timeOld, const double dT, double &pNewDT) |
|
| MarmotMaterial (const double *materialProperties, int nMaterialProperties, int materialNumber) |
|
| MarmotMaterial (const double *materialProperties, int nMaterialProperties, int materialNumber) |
|
virtual | ~MarmotMaterial () |
|
virtual void | assignStateVars (double *stateVars, int nStateVars) |
|
double * | getAssignedStateVars () |
|
int | getNumberOfAssignedStateVars () |
|
virtual void | initializeYourself () |
|
Implementation of a linear elastic material for 3D stress states.
For further information see Linear Elastic.
◆ Type
Type of anisotropic behavior.
Type is an enum class which involves the following case:
Enumerator |
---|
Isotropic | Number of materialProperties equals 2.
|
TransverseIsotropic | Number of materialProperties equals 8. 5 to describe the material behavior and 3 components of a normal vector. The latter corresponds to the x1 - axis of the principal material directions and defines the materials plane of isotropy (directions x2 and x3).
|
Orthotropic | Number of materialProperties equals 12. 9 to describe material behavior and 3 components of a normal vector. The latter corresponds to the x1 - axis of the principal material directions.
|
◆ LinearElastic()
Marmot::Materials::LinearElastic::LinearElastic |
( |
const double * |
materialProperties, |
|
|
int |
nMaterialProperties, |
|
|
int |
materialNumber |
|
) |
| |
◆ computeStress()
void Marmot::Materials::LinearElastic::computeStress |
( |
double * |
stress, |
|
|
double * |
dStressDDStrain, |
|
|
const double * |
dStrain, |
|
|
const double * |
timeOld, |
|
|
const double |
dT, |
|
|
double & |
pNewDT |
|
) |
| |
|
protectedvirtual |
For a given linearized strain increment \(\Delta\boldsymbol{\varepsilon}\) at the old and the current time, compute the Cauchy stress and the algorithmic tangent \(\frac{\partial\boldsymbol{\sigma}^{(n+1)}}{\partial\boldsymbol{\varepsilon}^{(n+1)}}\).
- Parameters
-
[in,out] | stress | Cauchy stress |
[in,out] | dStressDDstrain | Algorithmic tangent representing the derivative of the Cauchy stress tensor with respect to the linearized strain |
[in] | dStrain | linearized strain increment |
[in] | timeOld | Old (pseudo-)time |
[in] | dt | (Pseudo-)time increment from the old (pseudo-)time to the current (pseudo-)time |
[in,out] | pNewDT | Suggestion for a new time increment |
Implements MarmotMaterialHypoElastic.
◆ getStateView()
StateView Marmot::Materials::LinearElastic::getStateView |
( |
const std::string & |
result | ) |
|
|
inlineprotectedvirtual |
◆ getNumberOfRequiredStateVars()
int Marmot::Materials::LinearElastic::getNumberOfRequiredStateVars |
( |
| ) |
|
|
inlineprotectedvirtual |
◆ anisotropicType
anisotropicType represents the directional dependence of the material behavior. It is a representative of the enum class Type.
◆ E1
const double& Marmot::Materials::LinearElastic::E1 |
|
protected |
Young's modulus in x1 - direction.
E1 represents the Young's modulus effective in the direction of the x1 - axis of the user defined local coordinate system. It is a reference variable to materialProperties[0].
◆ E2
const double& Marmot::Materials::LinearElastic::E2 |
|
protected |
Young's modulus in x2 - direction.
E2 represents the Young's modulus effective in the direction of the x2 - axis of a user defined local coordinate system. In case of isotropic behavior it is set to E1 and does not need to be specified. Otherwise it is a reference variable to materialProperties[1].
◆ E3
const double& Marmot::Materials::LinearElastic::E3 |
|
protected |
Young's modulus in x3 - direction.
E3 represents the Young's modulus effective in the direction of the x3 - axis of a user defined local coordinate system. In case of orthotropic behavior it needs to be specified and is a reference variable to materialProperties[2].
In case of transverse isotropic and isotropic behavior it is automatically set to E2 and does not need to be specified.
◆ nu12
const double& Marmot::Materials::LinearElastic::nu12 |
|
protected |
Poisson's ratio between axis x1 and x2.
nu12 represents the Poisson's ratio effective between the x1 and x2 - axis of the user defined local coordinate system. Depending on the anisotropic type it is a reference variable to:
◆ nu23
const double& Marmot::Materials::LinearElastic::nu23 |
|
protected |
Poisson's ratio between axis x2 and x3.
nu23 represents the Poisson's ratio effective between the x2 and x3 - axis of the user defined local coordinate system. Depending on the anisotropic type it is a reference variable to:
In case of isotropic behavior it is set to nu12 and does not need to be specified.
◆ nu13
const double& Marmot::Materials::LinearElastic::nu13 |
|
protected |
Poisson's ratio between axis x1 and x3.
nu13 represents the Poisson's ratio effective between the x1 and x3 - axis of the user defined local coordinate system. In case of orthotropic behavior it needs to be specified and is a reference variable to materialProperties[5].
In case of transverse isotropic and isotropic behavior it is set to nu23 and does not need to be specified.
◆ G12
const double Marmot::Materials::LinearElastic::G12 |
|
protected |
Shear modulus between axis x1 and x2.
G12 represents the Shear modulus effective between the x1 and x2 - axis of the user defined local coordinate system. In case of isotropic behavior, it does not need to be specified and is set to \( \frac{E_1}{2 \cdot ( 1 + \nu_{12})}\). Otherwise, depending on the anisotropic type it is a reference variable to:
◆ G23
const double Marmot::Materials::LinearElastic::G23 |
|
protected |
Shear modulus between axis x2 and x3.
G23 represents the Shear modulus effective between the x2 and x3 - axis of the user defined local coordinate system. Neither isotropic nor transversal isotropic behavior needs to be specified. In case of isotropic behavior it is set to G12 and in case of transverse isotropic behavior it is set to \( \frac{E_2}{2 \cdot ( 1 + \nu_{23})}\) In case of orthotropic behavior it is a reference variable to materialProperties[7].
◆ G13
const double& Marmot::Materials::LinearElastic::G13 |
|
protected |
Shear modulus between axis x1 and x3.
G13 represents the Shear modulus effective between the x1 and x3 - axis of the user defined local coordinate system. Neither isotropic nor transversal isotropic behavior needs to be specified and it is set in both cases to G12. In case of orthotropic behavior it is a reference variable to materialProperties[8].
Matrix6d Marmot::Materials::LinearElastic::C |
|
protected |
Material stiffness tensor.
C represents the materials stiffness tensor in voigt notation. It is calculated by the functions implemented in MarmotElasticity.h .
The documentation for this class was generated from the following files: