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 <plane_stress_d_plus_d_minus_damage_masonry_2d.h>
Classes | |
struct | CalculationData |
Public Member Functions | |
KRATOS_CLASS_POINTER_DEFINITION (DamageDPlusDMinusMasonry2DLaw) | |
DamageDPlusDMinusMasonry2DLaw () | |
~DamageDPlusDMinusMasonry2DLaw () override | |
ConstitutiveLaw::Pointer | Clone () const override |
SizeType | WorkingSpaceDimension () override |
returns the working space dimension of the current constitutive law More... | |
SizeType | GetStrainSize () const override |
returns the size of the strain vector of the current constitutive law More... | |
bool | Has (const Variable< double > &rThisVariable) override |
bool | Has (const Variable< Vector > &rThisVariable) override |
bool | Has (const Variable< Matrix > &rThisVariable) override |
bool | Has (const Variable< array_1d< double, 3 > > &rThisVariable) override |
bool | Has (const Variable< array_1d< double, 6 > > &rThisVariable) override |
double & | GetValue (const Variable< double > &rThisVariable, double &rValue) override |
Vector & | GetValue (const Variable< Vector > &rThisVariable, Vector &rValue) override |
Matrix & | GetValue (const Variable< Matrix > &rThisVariable, Matrix &rValue) override |
array_1d< double, 3 > & | GetValue (const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &rValue) override |
array_1d< double, 6 > & | GetValue (const Variable< array_1d< double, 6 > > &rVariable, array_1d< double, 6 > &rValue) override |
void | SetValue (const Variable< double > &rVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo) override |
void | SetValue (const Variable< Vector > &rVariable, const Vector &rValue, const ProcessInfo &rCurrentProcessInfo) override |
void | SetValue (const Variable< Matrix > &rVariable, const Matrix &rValue, const ProcessInfo &rCurrentProcessInfo) override |
void | SetValue (const Variable< array_1d< double, 3 > > &rVariable, const array_1d< double, 3 > &rValue, const ProcessInfo &rCurrentProcessInfo) override |
void | SetValue (const Variable< array_1d< double, 6 > > &rVariable, const array_1d< double, 6 > &rValue, const ProcessInfo &rCurrentProcessInfo) override |
bool | ValidateInput (const Properties &rMaterialProperties) override |
StrainMeasure | GetStrainMeasure () override |
StressMeasure | GetStressMeasure () override |
bool | IsIncremental () override |
void | InitializeMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues) override |
void | InitializeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override |
void | InitializeSolutionStep (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) override |
void | FinalizeSolutionStep (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override |
void | CalculateMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override |
void | CalculateMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override |
void | CalculateMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override |
void | FinalizeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override |
void | FinalizeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override |
void | FinalizeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override |
void | FinalizeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override |
void | ResetMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues) override |
void | GetLawFeatures (Features &rFeatures) override |
int | Check (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const ProcessInfo &rCurrentProcessInfo) const override |
void | CalculateMaterialResponse (const Vector &StrainVector, const Matrix &DeformationGradient, Vector &StressVector, Matrix &AlgorithmicTangent, const ProcessInfo &rCurrentProcessInfo, const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, bool CalculateStresses=true, int CalculateTangent=true, bool SaveInternalVariables=true) |
Public Member Functions inherited from Kratos::ConstitutiveLaw | |
KRATOS_CLASS_POINTER_DEFINITION (ConstitutiveLaw) | |
KRATOS_DEFINE_LOCAL_FLAG (USE_ELEMENT_PROVIDED_STRAIN) | |
KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_STRESS) | |
KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_CONSTITUTIVE_TENSOR) | |
KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_STRAIN_ENERGY) | |
KRATOS_DEFINE_LOCAL_FLAG (ISOCHORIC_TENSOR_ONLY) | |
KRATOS_DEFINE_LOCAL_FLAG (VOLUMETRIC_TENSOR_ONLY) | |
KRATOS_DEFINE_LOCAL_FLAG (MECHANICAL_RESPONSE_ONLY) | |
KRATOS_DEFINE_LOCAL_FLAG (THERMAL_RESPONSE_ONLY) | |
KRATOS_DEFINE_LOCAL_FLAG (INCREMENTAL_STRAIN_MEASURE) | |
KRATOS_DEFINE_LOCAL_FLAG (INITIALIZE_MATERIAL_RESPONSE) | |
KRATOS_DEFINE_LOCAL_FLAG (FINALIZE_MATERIAL_RESPONSE) | |
KRATOS_DEFINE_LOCAL_FLAG (FINITE_STRAINS) | |
KRATOS_DEFINE_LOCAL_FLAG (INFINITESIMAL_STRAINS) | |
KRATOS_DEFINE_LOCAL_FLAG (THREE_DIMENSIONAL_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (PLANE_STRAIN_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (PLANE_STRESS_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (AXISYMMETRIC_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (U_P_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (ISOTROPIC) | |
KRATOS_DEFINE_LOCAL_FLAG (ANISOTROPIC) | |
ConstitutiveLaw () | |
~ConstitutiveLaw () override | |
virtual Pointer | Create (Kratos::Parameters NewParameters) const |
It creates a new constitutive law pointer. More... | |
virtual Pointer | Create (Kratos::Parameters NewParameters, const Properties &rProperties) const |
It creates a new constitutive law pointer (version with properties) More... | |
void | SetInitialState (InitialState::Pointer pInitialState) |
InitialState::Pointer | pGetInitialState () |
InitialState & | GetInitialState () |
bool | HasInitialState () const |
template<typename TVectorType > | |
void | AddInitialStressVectorContribution (TVectorType &rStressVector) |
Adds the initial stress vector if it is defined in the InitialState. More... | |
template<typename TVectorType > | |
void | AddInitialStrainVectorContribution (TVectorType &rStrainVector) |
Adds the initial strain vector if it is defined in the InitialState. More... | |
template<typename TMatrixType > | |
void | AddInitialDeformationGradientMatrixContribution (TMatrixType &rF) |
Adds the initial strain vector if it is defined in the InitialState. More... | |
virtual bool | Has (const Variable< bool > &rThisVariable) |
Returns whether this constitutive Law has specified variable (boolean) More... | |
virtual bool | Has (const Variable< int > &rThisVariable) |
Returns whether this constitutive Law has specified variable (integer) More... | |
virtual bool & | GetValue (const Variable< bool > &rThisVariable, bool &rValue) |
Returns the value of a specified variable (boolean) More... | |
virtual int & | GetValue (const Variable< int > &rThisVariable, int &rValue) |
virtual void | SetValue (const Variable< bool > &rVariable, const bool &Value, const ProcessInfo &rCurrentProcessInfo) |
Sets the value of a specified variable (boolean) More... | |
virtual void | SetValue (const Variable< int > &rVariable, const int &Value, const ProcessInfo &rCurrentProcessInfo) |
Sets the value of a specified variable (integer) More... | |
virtual bool & | CalculateValue (Parameters &rParameterValues, const Variable< bool > &rThisVariable, bool &rValue) |
Calculates the value of a specified variable (bool) More... | |
virtual int & | CalculateValue (Parameters &rParameterValues, const Variable< int > &rThisVariable, int &rValue) |
Calculates the value of a specified variable (int) More... | |
virtual double & | CalculateValue (Parameters &rParameterValues, const Variable< double > &rThisVariable, double &rValue) |
Calculates the value of a specified variable (double) More... | |
virtual Vector & | CalculateValue (Parameters &rParameterValues, const Variable< Vector > &rThisVariable, Vector &rValue) |
Calculates the value of a specified variable (Vector) More... | |
virtual Matrix & | CalculateValue (Parameters &rParameterValues, const Variable< Matrix > &rThisVariable, Matrix &rValue) |
Calculates the value of a specified variable (Matrix) More... | |
virtual array_1d< double, 3 > & | CalculateValue (Parameters &rParameterValues, const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &rValue) |
Calculates the value of a specified variable (array of 3 components) More... | |
virtual array_1d< double, 6 > & | CalculateValue (Parameters &rParameterValues, const Variable< array_1d< double, 6 > > &rVariable, array_1d< double, 6 > &rValue) |
virtual void | CalculateDerivative (Parameters &rParameterValues, const Variable< double > &rFunctionVariable, const Variable< double > &rDerivativeVariable, double &rOutput) |
Calculates derivatives of a given function. More... | |
virtual void | CalculateDerivative (Parameters &rParameterValues, const Variable< Vector > &rFunctionVariable, const Variable< double > &rDerivativeVariable, Vector &rOutput) |
Calculates derivatives of a given function. More... | |
virtual void | CalculateDerivative (Parameters &rParameterValues, const Variable< Matrix > &rFunctionVariable, const Variable< double > &rDerivativeVariable, Matrix &rOutput) |
Calculates derivatives of a given function. More... | |
virtual void | CalculateDerivative (Parameters &rParameterValues, const Variable< array_1d< double, 3 >> &rFunctionVariable, const Variable< double > &rDerivativeVariable, array_1d< double, 3 > &rOutput) |
Calculates derivatives of a given function. More... | |
virtual void | InitializeNonLinearIteration (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | FinalizeNonLinearIteration (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure) |
virtual bool | RequiresInitializeMaterialResponse () |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More... | |
virtual void | CalculateStressResponse (Parameters &rValues, Vector &rInternalVariables) |
void | InitializeMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure) |
Initialize the material response, called by the element in InitializeSolutionStep. More... | |
virtual void | InitializeMaterialResponsePK1 (Parameters &rValues) |
Initialize the material response in terms of 1st Piola-Kirchhoff stresses. More... | |
virtual void | InitializeMaterialResponseKirchhoff (Parameters &rValues) |
Initialize the material response in terms of Kirchhoff stresses. More... | |
virtual void | InitializeMaterialResponseCauchy (Parameters &rValues) |
Initialize the material response in terms of Cauchy stresses. More... | |
virtual bool | RequiresFinalizeMaterialResponse () |
If the CL requires to finalize the material response, called by the element in FinalizeSolutionStep. More... | |
void | FinalizeMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure) |
Finalize the material response, called by the element in FinalizeSolutionStep. More... | |
virtual Vector & | TransformStrains (Vector &rStrainVector, const Matrix &rF, StrainMeasure rStrainInitial, StrainMeasure rStrainFinal) |
virtual Matrix & | TransformStresses (Matrix &rStressMatrix, const Matrix &rF, const double &rdetF, StressMeasure rStressInitial, StressMeasure rStressFinal) |
virtual Vector & | TransformStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressInitial, StressMeasure rStressFinal) |
Vector & | TransformPK1Stresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal) |
Vector & | TransformPK2Stresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal) |
Vector & | TransformKirchhoffStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal) |
Vector & | TransformCauchyStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal) |
void | PullBackConstitutiveMatrix (Matrix &rConstitutiveMatrix, const Matrix &rF) |
void | PushForwardConstitutiveMatrix (Matrix &rConstitutiveMatrix, const Matrix &rF) |
virtual void | CalculateCauchyStresses (Vector &Cauchy_StressVector, const Matrix &F, const Vector &PK2_StressVector, const Vector &GreenLagrangeStrainVector) |
std::string | Info () const override |
Turn back information as a string. More... | |
void | PrintInfo (std::ostream &rOStream) const override |
Print information about this object. More... | |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. More... | |
Public Member Functions inherited from Kratos::Flags | |
Flags & | operator= (Flags const &rOther) |
Assignment operator. More... | |
operator bool () const | |
Flags | operator~ () const |
bool | operator! () const |
void | AssignFlags (Flags const &rOther) |
void | Set (const Flags ThisFlag) |
void | Set (const Flags ThisFlag, bool Value) |
void | Reset (const Flags ThisFlag) |
void | Flip (const Flags ThisFlag) |
void | SetPosition (IndexType Position, bool Value=true) |
bool | GetPosition (IndexType Position) const |
void | FlipPosition (IndexType Position) |
void | ClearPosition (IndexType Position) |
void | Clear () |
Flags | AsFalse () const |
bool | Is (Flags const &rOther) const |
bool | IsDefined (Flags const &rOther) const |
bool | IsNot (Flags const &rOther) const |
bool | IsNotDefined (Flags const &rOther) const |
KRATOS_CLASS_POINTER_DEFINITION (Flags) | |
Pointer definition of Flags. More... | |
const Flags & | operator|= (const Flags &Other) |
const Flags & | operator&= (const Flags &Other) |
Flags () | |
Default constructor. More... | |
Flags (Flags const &rOther) | |
Copy constructor. More... | |
virtual | ~Flags () |
Destructor. More... | |
Static Public Attributes | |
Type Definitions | |
static constexpr SizeType | Dimension = 2 |
We define the working dimension size, already defined in the integrator. More... | |
static constexpr SizeType | VoigtSize = 3 |
We 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... | |
Protected Member Functions | |
Protected Operators | |
void | InitializeCalculationData (const Properties &props, const GeometryType &geom, const ProcessInfo &pinfo, CalculationData &data) |
Initializes the CalculationData at the beginning of each SolutionStep. More... | |
void | CalculateElasticityMatrix (CalculationData &data) |
Constructs the Linear Elasticity Matrix and stores it in the CalculationData. More... | |
void | TensionCompressionSplit (CalculationData &data) |
Splits the Effective Stress Vector into a positive (tension) and negative (compression) part. More... | |
void | ConstructProjectionTensors (CalculationData &data) |
This method computes the positive (tension) and negative (compression) parts of the ProjectionMatrix. More... | |
void | CalculateEquivalentStressTension (CalculationData &data, double &UniaxialStressTension) |
This method computes the equivalent stress in Tension. More... | |
void | CalculateEquivalentStressCompression (CalculationData &data, double &UniaxialStressCompression) |
This method computes the equivalent stress in Compression. More... | |
void | CalculateDamageTension (CalculationData &data, double internal_variable, double &rDamageTension) |
This method computes the damage variable d+ of the tension law by considering an exponential softening behavior. More... | |
void | CalculateDamageCompression (CalculationData &data, double internal_variable, double &rDamage) |
This method computes the damage variable d- of the compression law by considering the above explained bezier curved uniaxial behavior. More... | |
void | ComputeBezierEnergy (double &rBezierEnergy, double &rBezierEnergy1, double s_p, double s_k, double s_r, double e_p, double e_j, double e_k, double e_r, double e_u) |
This method computes the energy of the uniaxial damage law before regularization. More... | |
double | EvaluateBezierArea (double x1, double x2, double x3, double y1, double y2, double y3) |
This method evaluates the area below the bezier curves. More... | |
void | ApplyBezierStretcherToStrains (double stretcher, double e_p, double &e_j, double &e_k, double &e_r, double &e_u) |
This method applies the stretcher to the strains, to regularize the fracture energy. More... | |
void | EvaluateBezierCurve (double &rDamageParameter, double xi, double x1, double x2, double x3, double y1, double y2, double y3) |
This method evaluates the damage parameter by considering the Bezier law explained above. More... | |
void | ComputeCharacteristicLength (const GeometryType &geom, double &rCharacteristicLength) |
This method computes the Charcteristic element length. More... | |
void | CalculateMaterialResponseInternal (const Vector &strain_vector, Vector &stress_vector, CalculationData &data, const Properties props) |
This method computes the internal material response strain to stress by applying cl. More... | |
void | CheckDamageLoadingUnloading (bool &is_damaging_tension, bool &is_damaging_compression) |
This method checks whether we are in loading/unloading/damage state. More... | |
void | CalculateTangentTensor (Parameters &rValues, Vector strain_vector, Vector stress_vector, CalculationData &data, const Properties &props) |
This method computes the tangent tensor. More... | |
void | CalculateSecantTensor (Parameters &rValues, CalculationData &data) |
This method computes the secant tensor. More... | |
Protected Member Functions inherited from Kratos::ConstitutiveLaw | |
void | ContraVariantPushForward (Matrix &rMatrix, const Matrix &rF) |
void | ContraVariantPullBack (Matrix &rMatrix, const Matrix &rF) |
void | CoVariantPushForward (Matrix &rMatrix, const Matrix &rF) |
void | CoVariantPullBack (Matrix &rMatrix, const Matrix &rF) |
void | ConstitutiveMatrixTransformation (Matrix &rConstitutiveMatrix, const Matrix &rOriginalConstitutiveMatrix, const Matrix &rF) |
double & | TransformConstitutiveComponent (double &rCabcd, const Matrix &rConstitutiveMatrix, const Matrix &rF, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d) |
double & | GetConstitutiveComponent (double &rCabcd, const Matrix &rConstitutiveMatrix, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d) |
Protected Attributes | |
Protected member Variables | |
bool | InitializeDamageLaw = false |
double | PreviousThresholdTension = 0.0 |
double | PreviousThresholdCompression = 0.0 |
double | CurrentThresholdTension = 0.0 |
double | CurrentThresholdCompression = 0.0 |
double | ThresholdTension = 0.0 |
double | ThresholdCompression = 0.0 |
double | DamageParameterTension = 0.0 |
double | DamageParameterCompression = 0.0 |
double | UniaxialStressTension = 0.0 |
double | UniaxialStressCompression = 0.0 |
double | InitialCharacteristicLength = 0.0 |
double | CurrentDeltaTime = 0.0 |
double | PreviousDeltaTime = 0.0 |
double | TemporaryImplicitThresholdTension = 0.0 |
double | TemporaryImplicitThresholdTCompression = 0.0 |
Serialization | |
class | Serializer |
Additional Inherited Members | |
Public Types inherited from Kratos::ConstitutiveLaw | |
enum | StrainMeasure { StrainMeasure_Infinitesimal , StrainMeasure_GreenLagrange , StrainMeasure_Almansi , StrainMeasure_Hencky_Material , StrainMeasure_Hencky_Spatial , StrainMeasure_Deformation_Gradient , StrainMeasure_Right_CauchyGreen , StrainMeasure_Left_CauchyGreen , StrainMeasure_Velocity_Gradient } |
enum | StressMeasure { StressMeasure_PK1 , StressMeasure_PK2 , StressMeasure_Kirchhoff , StressMeasure_Cauchy } |
typedef ProcessInfo | ProcessInfoType |
typedef std::size_t | SizeType |
typedef Geometry< Node > | GeometryType |
typedef Vector | StrainVectorType |
typedef Vector | StressVectorType |
typedef Matrix | VoigtSizeMatrixType |
typedef Matrix | DeformationGradientMatrixType |
Public Types inherited from Kratos::Flags | |
enum | FlagsList { Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 , Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 , Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 , Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 , Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 , Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 , Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 , Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30 } |
typedef int64_t | BlockType |
typedef int64_t | FlagType |
typedef std::size_t | IndexType |
Static Public Member Functions inherited from Kratos::ConstitutiveLaw | |
static bool | HasSameType (const ConstitutiveLaw &rLHS, const ConstitutiveLaw &rRHS) |
This method is used to check that two Constitutive Laws are the same type (references) More... | |
static bool | HasSameType (const ConstitutiveLaw *rLHS, const ConstitutiveLaw *rRHS) |
This method is used to check that two Constitutive Laws are the same type (pointers) More... | |
Static Public Member Functions inherited from Kratos::Flags | |
static const Flags | AllDefined () |
static const Flags | AllTrue () |
static Flags | Create (IndexType ThisPosition, bool Value=true) |
Static Protected Attributes inherited from Kratos::ConstitutiveLaw | |
static const unsigned int | msIndexVoigt3D6C [6][2] = { {0, 0}, {1, 1}, {2, 2}, {0, 1}, {1, 2}, {0, 2} } |
static const unsigned int | msIndexVoigt2D4C [4][2] = { {0, 0}, {1, 1}, {2, 2}, {0, 1} } |
static const unsigned int | msIndexVoigt2D3C [3][2] = { {0, 0}, {1, 1}, {0, 1} } |
Kratos::DamageDPlusDMinusMasonry2DLaw::DamageDPlusDMinusMasonry2DLaw | ( | ) |
Default Constructor.
|
inlineoverride |
Destructor.
|
protected |
This method applies the stretcher to the strains, to regularize the fracture energy.
stretcher | The stretch factor e_p The reference strain from which on the stretching is applied e_j, e_k, e_r, e_u The strains that have to be modified by the stretcher |
|
protected |
This method computes the damage variable d- of the compression law by considering the above explained bezier curved uniaxial behavior.
BRIEF DOCUMENTATION OF THE USED UNIAXIAL SOFTENING BEHAVIOR IN COMPRESSION Entire documentation can be found in the the Phd Thesis of Massimo Petracca << Computational Multiscale Analysis of Masonry Structures>>
UNIAXIAL BEZIER COMPRESSION DAMAGE {I} Linear Elastic {II} Hardening Quadratic Bezier Curve Control nodes: 0=(e_0,s_0); I=(e_i,s_p); P=(e_p,s_p) {III} Softening Quadratic Bezier Curve Control nodes: P=(e_p,s_p); J=(e_j,s_j); K=(e_k,s_k) {IV} Softening Quadratic Bezier Curve Control nodes: K=(e_k,s_k); R=(e_r,s_r); U=(e_u,s_u) {V} Residual Strength
STRESS ^ /|\ | (P) s_p = |---------—(I)+-—#####–+(J) s_i = | ' ### ' #### s_j | ### ' ### | ###' ' ' ## s_k |--------—##–+---—+-—+–## (K) s_0 |------—##(0) ' ' ' ### | ## ' ' ' ' '### | ## ' ' ' ' ' #### | ## ' ' ' ' ' ##### | ## ' ' ' ' ' ##### | ## ' ' ' ' ' (R) ######## (U) s_r = |—##---—+—+---—'-—+-—+--—+--------------—###################### s_u | ## ' ' ' ' ' ' ' |_##________+___+______+____+____+_____+_________________+______________________________\ e_0 e_i e_p e_j e_k e_r e_u / STRAIN ' ' ' ' ' ' {I} ' {II} ' {III} ' {IV} ' {V} ' ' ' ' '
CalculationData | Calculation Data for the CL internal_variable The internal variable that considers the considers the state of damage rDamage The final damage variable to be filled by this method |
|
protected |
This method computes the damage variable d+ of the tension law by considering an exponential softening behavior.
CalculationData | internal_variable The internal variable that considers the considers the state of damage rDamage The final damage variable to be filled by this method |
|
protected |
Constructs the Linear Elasticity Matrix and stores it in the CalculationData.
CalculationData |
|
protected |
This method computes the equivalent stress in Compression.
CalculationData | UniaxialStressCompression The variable to be filled with the resulting value |
|
protected |
This method computes the equivalent stress in Tension.
CalculationData | UniaxialStressTension The variable to be filled with the resulting value |
void Kratos::DamageDPlusDMinusMasonry2DLaw::CalculateMaterialResponse | ( | const Vector & | StrainVector, |
const Matrix & | DeformationGradient, | ||
Vector & | StressVector, | ||
Matrix & | AlgorithmicTangent, | ||
const ProcessInfo & | rCurrentProcessInfo, | ||
const Properties & | rMaterialProperties, | ||
const GeometryType & | rElementGeometry, | ||
const Vector & | rShapeFunctionsValues, | ||
bool | CalculateStresses = true , |
||
int | CalculateTangent = true , |
||
bool | SaveInternalVariables = true |
||
) |
|
overridevirtual |
Computes the material response in terms of Cauchy stresses and constitutive tensor
Reimplemented from Kratos::ConstitutiveLaw.
|
protected |
This method computes the internal material response strain to stress by applying cl.
strain_vector | The strain vector stress_vector The stress vector CalculationData Calculation Data for the CL |
|
overridevirtual |
Computes the material response in terms of Kirchhoff stresses and constitutive tensor
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Computes the material response in terms of 1st Piola-Kirchhoff stresses and constitutive tensor
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Computes the material response in terms of 2nd Piola-Kirchhoff stresses and constitutive tensor
Reimplemented from Kratos::ConstitutiveLaw.
|
protected |
This method computes the secant tensor.
rValues | The constitutive law parameters and flags CalculationData Calculation Data for the CL |
|
protected |
This method computes the tangent tensor.
rValues | The constitutive law parameters and flags strain_vector The strain vector stress_vector The stress vector CalculationData Calculation Data for the CL |
|
overridevirtual |
This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors.
rMaterialProperties | |
rElementGeometry | |
rCurrentProcessInfo |
Reimplemented from Kratos::ConstitutiveLaw.
|
protected |
This method checks whether we are in loading/unloading/damage state.
is_damaging_tension | The damage tension bool is_damaging_tension The damage compression bool |
|
overridevirtual |
Clone.
Reimplemented from Kratos::ConstitutiveLaw.
|
protected |
This method computes the energy of the uniaxial damage law before regularization.
rBezierEnergy | rBezierEnergy1 double s_p, double s_k, double s_r, double e_p, double e_j, double e_k, double e_r, double e_u As inputs for the energy calculation |
|
protected |
This method computes the Charcteristic element length.
GeometryType& | geom The element geometry data from rValues rCharacteristicLength The characteristic Length |
|
protected |
This method computes the positive (tension) and negative (compression) parts of the ProjectionMatrix.
CalculationData |
|
protected |
This method evaluates the area below the bezier curves.
x1,x2,x3 | x-coordinates of the Bezier control points y1, y2, y3 y-coordinates of the Bezier control points |
|
protected |
This method evaluates the damage parameter by considering the Bezier law explained above.
rDamageParameter | The parameter to obtain the damage d- xi The strain like counterpart x1, x2, x3 x-coordinates of the Bezier control points y1, y2, y3 y-coordinates of the Bezier control points |
|
overridevirtual |
Updates the material response in terms of Cauchy stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Updates the material response in terms of Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Updates the material response in terms of 1st Piola-Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Updates the material response in terms of 2nd Piola-Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
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 |
the | current ProcessInfo instance |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
This function is designed to be called once to check compatibility with element
rFeatures |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns the expected strain measure of this constitutive law (by default linear strains)
Reimplemented from Kratos::ConstitutiveLaw.
|
inlineoverridevirtual |
returns the size of the strain vector of the current constitutive law
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns the stress measure of this constitutive law (by default 1st Piola-Kirchhoff stress in voigt notation)
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns the value of a specified variable
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns the value of a specified variable
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns the value of a specified variable
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns the value of a specified variable
rThisVariable | the variable to be returned |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns the value of a specified variable
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns whether this constitutive Law has specified variable
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns whether this constitutive Law has specified variable
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns whether this constitutive Law has specified variable
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns whether this constitutive Law has specified variable
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns whether this constitutive Law has specified variable
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
protected |
Initializes the CalculationData at the beginning of each SolutionStep.
Properties& | props The Material Properties of the constitutive law from rValues GeometryType& geom The Element Geometry from rValues ProcessInfo& pinfo The ProcessInfo from rValues CalculationData |
|
overridevirtual |
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 |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Initialize the material response in terms of 2nd Piola-Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
to be called at the beginning of each solution step (e.g. from Element::InitializeSolutionStep)
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 |
the | current ProcessInfo instance |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
returns whether this constitutive model is formulated in incremental strains/stresses NOTE: by default, all constitutive models should be formulated in total strains
Reimplemented from Kratos::ConstitutiveLaw.
Kratos::DamageDPlusDMinusMasonry2DLaw::KRATOS_CLASS_POINTER_DEFINITION | ( | DamageDPlusDMinusMasonry2DLaw | ) |
|
overridevirtual |
This can be used in order to reset all internal variables of the constitutive law (e.g. if a model should be reset to its reference state)
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 |
the | current ProcessInfo instance |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
sets the value of a specified variable
rVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
sets the value of a specified variable
rVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
sets the value of a specified variable
rVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
sets the value of a specified variable
rVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
sets the value of a specified variable
rVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
Reimplemented from Kratos::ConstitutiveLaw.
|
protected |
Splits the Effective Stress Vector into a positive (tension) and negative (compression) part.
CalculationData |
|
overridevirtual |
Is called to check whether the provided material parameters in the Properties match the requirements of current constitutive model.
rMaterialProperties | the current Properties to be validated against. |
Reimplemented from Kratos::ConstitutiveLaw.
|
inlineoverridevirtual |
returns the working space dimension of the current constitutive law
Reimplemented from Kratos::ConstitutiveLaw.
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticconstexpr |
We define the working dimension size, already defined in the integrator.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticconstexpr |
Definition of the machine precision tolerance.
|
protected |
|
protected |
|
staticconstexpr |
We define the Voigt size, already defined in the integrator.