10 #if !defined(KRATOS_SMALL_STRAIN_PLANE_STRESS_2D_LAW_H_INCLUDED )
11 #define KRATOS_SMALL_STRAIN_PLANE_STRESS_2D_LAW_H_INCLUDED
77 ConstitutiveLaw::Pointer
Clone()
const override
79 return Kratos::make_shared<SmallStrainPlaneStress2DLaw>(*
this);
107 GetModelFeatures(rFeatures);
111 rFeatures.
mStrainMeasures.push_back(StrainMeasure_Deformation_Gradient);
142 if( rOptions.Is( ConstitutiveLaw::COMPUTE_STRESS ) ){
146 this->CalculateConstitutiveMatrix( rConstitutiveMatrix, rProperties);
148 this->CalculateStress( rStrainVector, rConstitutiveMatrix, rStressVector );
151 else if( rOptions.Is( ConstitutiveLaw::COMPUTE_CONSTITUTIVE_TENSOR ) ){
154 this->CalculateConstitutiveMatrix(rConstitutiveMatrix, rProperties);
181 std::string
Info()
const override
183 std::stringstream buffer;
184 buffer <<
"SmallStrainPlaneStress2DLaw" ;
189 void PrintInfo(std::ostream& rOStream)
const override {rOStream <<
"SmallStrainPlaneStress2DLaw";}
192 void PrintData(std::ostream& rOStream)
const override {}
230 const double& rYoungModulus = rProperties[YOUNG_MODULUS];
231 const double& rPoissonCoefficient = rProperties[POISSON_RATIO];
234 rConstitutiveMatrix ( 0 , 0 ) = (rYoungModulus)/(1.0-rPoissonCoefficient*rPoissonCoefficient);
235 rConstitutiveMatrix ( 1 , 1 ) = rConstitutiveMatrix ( 0 , 0 );
237 rConstitutiveMatrix ( 2 , 2 ) = rConstitutiveMatrix ( 0 , 0 )*(1.0-rPoissonCoefficient)*0.5;
239 rConstitutiveMatrix ( 0 , 1 ) = rConstitutiveMatrix ( 0 , 0 )*rPoissonCoefficient;
240 rConstitutiveMatrix ( 1 , 0 ) = rConstitutiveMatrix ( 0 , 1 );
242 rConstitutiveMatrix ( 0 , 2 ) = 0.0;
243 rConstitutiveMatrix ( 2 , 0 ) = 0.0;
244 rConstitutiveMatrix ( 1 , 2 ) = 0.0;
245 rConstitutiveMatrix ( 2 , 1 ) = 0.0;
308 void save(
Serializer& rSerializer)
const override
std::size_t SizeType
Definition: constitutive_law.h:82
void Set(const Flags ThisFlag)
Definition: flags.cpp:33
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Definition: small_strain_3D_law.hpp:33
SmallStrain3DLaw & operator=(const SmallStrain3DLaw &rOther)
Assignment operator.
Definition: small_strain_3D_law.cpp:59
ModelType::Pointer ModelTypePointer
Definition: small_strain_3D_law.hpp:40
Short class definition.
Definition: small_strain_plane_stress_2D_law.hpp:48
void CalculateConstitutiveMatrix(Matrix &rConstitutiveMatrix, const Properties &rProperties) override
Definition: small_strain_plane_stress_2D_law.hpp:224
ConstitutiveLaw::Pointer Clone() const override
Clone.
Definition: small_strain_plane_stress_2D_law.hpp:77
~SmallStrainPlaneStress2DLaw() override
Destructor.
Definition: small_strain_plane_stress_2D_law.hpp:83
SizeType GetStrainSize() const override
Law Voigt Strain Size.
Definition: small_strain_plane_stress_2D_law.hpp:94
SmallStrainPlaneStress2DLaw(const SmallStrainPlaneStress2DLaw &rOther)
Copy constructor.
Definition: small_strain_plane_stress_2D_law.hpp:67
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: small_strain_plane_stress_2D_law.hpp:192
SmallStrainPlaneStress2DLaw()
Default constructor.
Definition: small_strain_plane_stress_2D_law.hpp:61
KRATOS_CLASS_POINTER_DEFINITION(SmallStrainPlaneStress2DLaw)
Pointer definition of SmallStrainPlaneStress2DLaw.
std::string Info() const override
Turn back information as a string.
Definition: small_strain_plane_stress_2D_law.hpp:181
SmallStrainPlaneStress2DLaw & operator=(SmallStrainPlaneStress2DLaw const &rOther)
Assignment operator.
Definition: small_strain_plane_stress_2D_law.hpp:70
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: small_strain_plane_stress_2D_law.hpp:189
void GetLawFeatures(Features &rFeatures) override
Law Features.
Definition: small_strain_plane_stress_2D_law.hpp:97
void CalculateMaterialResponseKirchhoff(Parameters &rValues) override
Definition: small_strain_plane_stress_2D_law.hpp:126
SizeType WorkingSpaceDimension() override
Law Dimension.
Definition: small_strain_plane_stress_2D_law.hpp:91
SmallStrainPlaneStress2DLaw(ModelTypePointer pModel)
Constructor.
Definition: small_strain_plane_stress_2D_law.hpp:64
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:137
SizeType mStrainSize
Definition: constitutive_law.h:152
std::vector< StrainMeasure > mStrainMeasures
Definition: constitutive_law.h:154
SizeType mSpaceDimension
Definition: constitutive_law.h:153
Flags mOptions
Definition: constitutive_law.h:151
Definition: constitutive_law.h:189
Flags & GetOptions()
Definition: constitutive_law.h:412
StrainVectorType & GetStrainVector()
Definition: constitutive_law.h:435
const Properties & GetMaterialProperties()
Definition: constitutive_law.h:457
VoigtSizeMatrixType & GetConstitutiveMatrix()
Definition: constitutive_law.h:446
StressVectorType & GetStressVector()
Definition: constitutive_law.h:440