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.
|
This class is the base class which define all the constitutive laws for damage in small deformation. More...
#include <generic_small_strain_d_plus_d_minus_damage.h>
Classes | |
struct | DamageParameters |
Public Member Functions | |
Life Cycle | |
GenericSmallStrainDplusDminusDamage () | |
ConstitutiveLaw::Pointer | Clone () const override |
GenericSmallStrainDplusDminusDamage (const GenericSmallStrainDplusDminusDamage &rOther) | |
~GenericSmallStrainDplusDminusDamage () override | |
Operations | |
void | CalculateMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override |
Computes the material response in terms of 1st Piola-Kirchhoff stresses and constitutive tensor. More... | |
void | CalculateMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override |
Computes the material response in terms of 2nd Piola-Kirchhoff stresses and constitutive tensor. More... | |
void | CalculateMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override |
Computes the material response in terms of Kirchhoff stresses and constitutive tensor. More... | |
void | CalculateMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override |
Computes the material response in terms of Cauchy stresses and constitutive tensor. More... | |
bool | IntegrateStressTensionIfNecessary (const double F_tension, DamageParameters &Parameters, array_1d< double, VoigtSize > &IntegratedStressVectorTension, ConstitutiveLaw::Parameters &rValues) |
Integrates the predictive tension stress vector if necessary. More... | |
bool | IntegrateStressCompressionIfNecessary (const double F_compression, DamageParameters &Parameters, array_1d< double, VoigtSize > &IntegratedStressVectorCompression, ConstitutiveLaw::Parameters &rValues) |
Integrates the predictive tension stress vector if necessary. More... | |
void | CalculateIntegratedStressVector (Vector &IntegratedStressVectorTension, const DamageParameters &Parameters, ConstitutiveLaw::Parameters &rValues) |
Computes the inetgarted stress vector S = A:D0:A:E. More... | |
void | InitializeMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues) override |
This is to be called at the very beginning of the calculation. More... | |
void | FinalizeSolutionStep (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) override |
To be called at the end of each solution step. More... | |
void | FinalizeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override |
Finalize the material response in terms of 1st Piola-Kirchhoff stresses. More... | |
void | FinalizeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override |
Finalize the material response in terms of 2nd Piola-Kirchhoff stresses. More... | |
void | FinalizeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override |
Finalize the material response in terms of Kirchhoff stresses. More... | |
void | FinalizeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override |
bool | Has (const Variable< double > &rThisVariable) override |
Returns whether this constitutive Law has specified variable (double) More... | |
bool | Has (const Variable< Vector > &rThisVariable) override |
Returns whether this constitutive Law has specified variable (Vector) More... | |
bool | Has (const Variable< Matrix > &rThisVariable) override |
Returns whether this constitutive Law has specified variable (Matrix) More... | |
void | SetValue (const Variable< double > &rThisVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo) override |
Sets the value of a specified variable (double) More... | |
double & | GetValue (const Variable< double > &rThisVariable, double &rValue) override |
Returns the value of a specified variable (double) More... | |
Vector & | GetValue (const Variable< Vector > &rThisVariable, Vector &rValue) override |
Returns the value of a specified variable (Vector) More... | |
Matrix & | GetValue (const Variable< Matrix > &rThisVariable, Matrix &rValue) override |
Returns the value of a specified variable (matrix) More... | |
bool | RequiresFinalizeMaterialResponse () override |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More... | |
bool | RequiresInitializeMaterialResponse () override |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More... | |
double & | CalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< double > &rThisVariable, double &rValue) override |
Returns the value of a specified variable (double) More... | |
Vector & | CalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< Vector > &rThisVariable, Vector &rValue) override |
Returns the value of a specified variable (vector) More... | |
Matrix & | CalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< Matrix > &rThisVariable, Matrix &rValue) override |
Returns the value of a specified variable (matrix) More... | |
int | Check (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const ProcessInfo &rCurrentProcessInfo) const override |
This function provides the place to perform checks on the completeness of the input. More... | |
Protected Member Functions | |
Protected Operations | |
double & | GetTensionThreshold () |
double & | GetTensionDamage () |
double & | GetNonConvTensionThreshold () |
double & | GetNonConvTensionDamage () |
void | SetTensionThreshold (const double toThreshold) |
void | SetTensionDamage (const double toDamage) |
void | SetNonConvTensionThreshold (const double toThreshold) |
void | SetNonConvTensionDamage (const double toDamage) |
double & | GetCompressionThreshold () |
double & | GetCompressionDamage () |
double & | GetNonConvCompressionThreshold () |
double & | GetNonConvCompressionDamage () |
void | SetCompressionThreshold (const double toThreshold) |
void | SetCompressionDamage (const double toDamage) |
void | SetNonConvCompressionThreshold (const double toThreshold) |
void | SetNonConvCompressionDamage (const double toDamage) |
void | SetTensionStress (const double toS) |
void | SetCompressionStress (const double toS) |
Type Definitions | |
typedef std::conditional< VoigtSize==6, ElasticIsotropic3D, LinearPlaneStrain >::type | BaseType |
Definition of the base class. More... | |
typedef Node | NodeType |
The node definition. More... | |
typedef Geometry< NodeType > | GeometryType |
The geometry definition. More... | |
static constexpr SizeType | Dimension = TConstLawIntegratorTensionType::Dimension |
The define the working dimension size, already defined in the integrator. More... | |
static constexpr SizeType | VoigtSize = TConstLawIntegratorTensionType::VoigtSize |
The define the Voigt size, already defined in the integrator. More... | |
static constexpr double | tolerance = std::numeric_limits<double>::epsilon() |
Definition of the machine precision tolerance. More... | |
KRATOS_CLASS_POINTER_DEFINITION (GenericSmallStrainDplusDminusDamage) | |
Counted pointer of GenericYieldSurface. More... | |
Un accessible methods | |
class | Serializer |
This class is the base class which define all the constitutive laws for damage in small deformation.
This class considers a constitutive law integrator as an intermediate utility to compute the damage
TConstLawIntegratorType | The constitutive law integrator considered |
typedef std::conditional<VoigtSize == 6, ElasticIsotropic3D, LinearPlaneStrain >::type Kratos::GenericSmallStrainDplusDminusDamage< TConstLawIntegratorTensionType, TConstLawIntegratorCompressionType >::BaseType |
Definition of the base class.
typedef Geometry<NodeType> Kratos::GenericSmallStrainDplusDminusDamage< TConstLawIntegratorTensionType, TConstLawIntegratorCompressionType >::GeometryType |
The geometry definition.
typedef Node Kratos::GenericSmallStrainDplusDminusDamage< TConstLawIntegratorTensionType, TConstLawIntegratorCompressionType >::NodeType |
The node definition.
|
inline |
Default constructor.
|
inline |
Copy constructor.
|
inlineoverride |
Destructor.
void Kratos::GenericSmallStrainDplusDminusDamage< TConstLawIntegratorTensionType, TConstLawIntegratorCompressionType >::CalculateIntegratedStressVector | ( | Vector & | IntegratedStressVectorTension, |
const DamageParameters & | Parameters, | ||
ConstitutiveLaw::Parameters & | rValues | ||
) |
Computes the inetgarted stress vector S = A:D0:A:E.
|
override |
Computes the material response in terms of Cauchy stresses and constitutive tensor.
|
override |
Computes the material response in terms of Kirchhoff stresses and constitutive tensor.
|
override |
Computes the material response in terms of 1st Piola-Kirchhoff stresses and constitutive tensor.
|
override |
Computes the material response in terms of 2nd Piola-Kirchhoff stresses and constitutive tensor.
|
override |
Returns the value of a specified variable (double)
rParameterValues | the needed parameters for the CL calculation |
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
|
override |
Returns the value of a specified variable (matrix)
rParameterValues | the needed parameters for the CL calculation |
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
|
override |
Returns the value of a specified variable (vector)
rParameterValues | the needed parameters for the CL calculation |
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
|
override |
This function provides the place to perform checks on the completeness of the input.
It is designed to be called only once (or anyway, not often) typically at the beginning of the calculations, so to verify that nothing is missing from the input or that no common error is found.
rMaterialProperties | The properties of the material |
rElementGeometry | The geometry of the element |
rCurrentProcessInfo | The current process info instance |
|
inlineoverride |
Clone.
|
override |
Finalize the material response in terms of Cauchy stresses
|
override |
Finalize the material response in terms of Kirchhoff stresses.
|
override |
Finalize the material response in terms of 1st Piola-Kirchhoff stresses.
|
override |
Finalize the material response in terms of 2nd Piola-Kirchhoff stresses.
|
override |
To be called at the end of each solution step.
(e.g. from Element::FinalizeSolutionStep)
rMaterialProperties | the Properties instance of the current element |
rElementGeometry | the geometry of the current element |
rShapeFunctionsValues | the shape functions values in the current integration point |
rCurrentProcessInfo | the current ProcessInfo instance |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
override |
Returns the value of a specified variable (double)
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
|
override |
Returns the value of a specified variable (matrix)
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
|
override |
Returns the value of a specified variable (Vector)
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
|
override |
Returns whether this constitutive Law has specified variable (double)
rThisVariable | the variable to be checked for |
|
override |
Returns whether this constitutive Law has specified variable (Matrix)
rThisVariable | the variable to be checked for |
|
override |
Returns whether this constitutive Law has specified variable (Vector)
rThisVariable | the variable to be checked for |
|
override |
This is to be called at the very beginning of the calculation.
(e.g. from InitializeElement) in order to initialize all relevant attributes of the constitutive law
rMaterialProperties | the Properties instance of the current element |
rElementGeometry | the geometry of the current element |
rShapeFunctionsValues | the shape functions values in the current integration point |
bool Kratos::GenericSmallStrainDplusDminusDamage< TConstLawIntegratorTensionType, TConstLawIntegratorCompressionType >::IntegrateStressCompressionIfNecessary | ( | const double | F_compression, |
DamageParameters & | Parameters, | ||
array_1d< double, VoigtSize > & | IntegratedStressVectorCompression, | ||
ConstitutiveLaw::Parameters & | rValues | ||
) |
Integrates the predictive tension stress vector if necessary.
F_compression | = uniaxial_stress_compression - threshold |
bool Kratos::GenericSmallStrainDplusDminusDamage< TConstLawIntegratorTensionType, TConstLawIntegratorCompressionType >::IntegrateStressTensionIfNecessary | ( | const double | F_tension, |
DamageParameters & | Parameters, | ||
array_1d< double, VoigtSize > & | IntegratedStressVectorTension, | ||
ConstitutiveLaw::Parameters & | rValues | ||
) |
Integrates the predictive tension stress vector if necessary.
F_compression | = uniaxial_stress_tension - threshold |
Kratos::GenericSmallStrainDplusDminusDamage< TConstLawIntegratorTensionType, TConstLawIntegratorCompressionType >::KRATOS_CLASS_POINTER_DEFINITION | ( | GenericSmallStrainDplusDminusDamage< TConstLawIntegratorTensionType, TConstLawIntegratorCompressionType > | ) |
Counted pointer of GenericYieldSurface.
|
inlineoverride |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep.
|
inlineoverride |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
override |
Sets the value of a specified variable (double)
rVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
|
friend |
|
staticconstexpr |
The define the working dimension size, already defined in the integrator.
|
staticconstexpr |
Definition of the machine precision tolerance.
|
staticconstexpr |
The define the Voigt size, already defined in the integrator.