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.
small_strain_isotropic_damage_plane_strain_2d.h
Go to the documentation of this file.
1 // KRATOS ___ _ _ _ _ _ __ _
2 // / __\___ _ __ ___| |_(_) |_ _ _| |_(_)_ _____ / / __ ___ _____ /_\ _ __ _ __
3 // / / / _ \| '_ \/ __| __| | __| | | | __| \ \ / / _ \/ / / _` \ \ /\ / / __| //_\\| '_ \| '_ |
4 // / /__| (_) | | | \__ \ |_| | |_| |_| | |_| |\ V / __/ /__| (_| |\ V V /\__ \/ _ \ |_) | |_) |
5 // \____/\___/|_| |_|___/\__|_|\__|\__,_|\__|_| \_/ \___\____/\__,_| \_/\_/ |___/\_/ \_/ .__/| .__/
6 // |_| |_|
7 //
8 // License: BSD License
9 // license: structural_mechanics_application/license.txt
10 //
11 // Main authors: Marcelo Raschi
12 
13 #pragma once
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
21 
22 namespace Kratos
23 {
26 
30 
34 
38 
42 
57 class KRATOS_API(CONSTITUTIVE_LAWS_APPLICATION) SmallStrainIsotropicDamagePlaneStrain2D
59 
60 {
61 public:
62 
65 
68  typedef std::size_t SizeType;
69 
70  // Counted pointer of LinearIsotropicDamagePlaneStrain2DLaw
72 
77 
82 
87 
92  ConstitutiveLaw::Pointer Clone() const override;
93 
98  void GetLawFeatures(Features& rFeatures) override;
99 
104  {
105  return 2;
106  };
107 
111  SizeType GetStrainSize() const override
112  {
113  return 3;
114  };
115 
117  void PrintData(std::ostream& rOStream) const override {
118  rOStream << "Linear Isotropic Damage Plane Strain 2D constitutive law\n";
119  };
120 
121 protected:
125 
129 
132  void CalculateElasticMatrix(Matrix &rElasticMatrix, Parameters &rMaterialProperties) override;
134 
137 
139 
140 private:
144 
148 
152 
156 
160 
163 
164  friend class Serializer;
165 
166  void save(Serializer& rSerializer) const override;
167 
168  void load(Serializer& rSerializer) override;
169 
171 
172 }; // class LinearIsotropicDamagePlaneStrain2DLaw
173 } // namespace Kratos
std::size_t SizeType
Definition: constitutive_law.h:82
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Defines a damage with hardening constitutive law in 3D.
Definition: small_strain_isotropic_damage_3d.h:61
Definition: small_strain_isotropic_damage_plane_strain_2d.h:60
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: small_strain_isotropic_damage_plane_strain_2d.h:111
SmallStrainIsotropicDamagePlaneStrain2D(const SmallStrainIsotropicDamagePlaneStrain2D &rOther)
Copy constructor.
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: small_strain_isotropic_damage_plane_strain_2d.h:117
KRATOS_CLASS_POINTER_DEFINITION(SmallStrainIsotropicDamagePlaneStrain2D)
SmallStrainIsotropicDamage3D BaseType
Definition: small_strain_isotropic_damage_plane_strain_2d.h:67
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: small_strain_isotropic_damage_plane_strain_2d.h:103
ProcessInfo ProcessInfoType
Definition: small_strain_isotropic_damage_plane_strain_2d.h:66
std::size_t SizeType
Definition: small_strain_isotropic_damage_plane_strain_2d.h:68
~SmallStrainIsotropicDamagePlaneStrain2D() override
Destructor.
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