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.
z_strain_driven_2p5_small_displacement.h
Go to the documentation of this file.
1 // KRATOS ___| | | |
2 // \___ \ __| __| | | __| __| | | __| _` | |
3 // | | | | | ( | | | | ( | |
4 // _____/ \__|_| \__,_|\___|\__|\__,_|_| \__,_|_| MECHANICS
5 //
6 // License: BSD License
7 // license: StructuralMechanicsApplication/license.txt
8 //
9 // Main authors: Miguel Angel Celigueta
10 // Ignasi de Pouplana
11 //
12 
13 
14 #pragma once
15 
16 // Project includes
17 #include "includes/checks.h"
18 
19 // Application includes
22 
23 namespace Kratos
24 {
33 
37 
41 
52 class KRATOS_API(STRUCTURAL_MECHANICS_APPLICATION) ZStrainDriven2p5DSmallDisplacement
53  : public SmallDisplacement
54 {
55 public:
61  typedef ConstitutiveLawType::Pointer ConstitutiveLawPointerType;
64 
67 
69  typedef std::size_t IndexType;
70 
72  typedef std::size_t SizeType;
73 
76 
80 
82  ZStrainDriven2p5DSmallDisplacement(IndexType NewId, GeometryType::Pointer pGeometry);
83  ZStrainDriven2p5DSmallDisplacement(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
84 
85  // Copy constructor
87  :BaseType(rOther)
88  {};
89 
92 
99 
104  void Initialize(const ProcessInfo& rCurrentProcessInfo) override;
105 
113  Element::Pointer Create(
114  IndexType NewId,
115  GeometryType::Pointer pGeom,
116  PropertiesType::Pointer pProperties
117  ) const override;
118 
126  Element::Pointer Create(
127  IndexType NewId,
128  NodesArrayType const& ThisNodes,
129  PropertiesType::Pointer pProperties
130  ) const override;
131 
139  Element::Pointer Clone (
140  IndexType NewId,
141  NodesArrayType const& rThisNodes
142  ) const override;
143 
151  int Check(const ProcessInfo& rCurrentProcessInfo) const override;
152 
160  const Variable<double>& rVariable,
161  const std::vector<double>& rValues,
162  const ProcessInfo& rCurrentProcessInfo
163  ) override;
164 
168 
175 
177  std::string Info() const override
178  {
179  std::stringstream buffer;
180  buffer << "Small Displacement Solid Element #" << Id() << "\nConstitutive law: " << BaseType::mConstitutiveLawVector[0]->Info();
181  return buffer.str();
182  }
183 
185  void PrintInfo(std::ostream& rOStream) const override
186  {
187  rOStream << "Small Displacement Solid Element #" << Id() << "\nConstitutive law: " << BaseType::mConstitutiveLawVector[0]->Info();
188  }
189 
191  void PrintData(std::ostream& rOStream) const override
192  {
193  pGetGeometry()->PrintData(rOStream);
194  }
195 
200 
201 protected:
207 
208  std::vector<double> mImposedZStrainVector;
209 
213 
215  {
216  }
217 
226  void SetConstitutiveVariables(
227  KinematicVariables& rThisKinematicVariables,
228  ConstitutiveVariables& rThisConstitutiveVariables,
230  const IndexType PointNumber,
231  const GeometryType::IntegrationPointsArrayType& IntegrationPoints
232  ) override;
233 
247 
248 private:
251 
255 
256 
260 
264 
265 
270 
274  friend class Serializer;
275 
276  // A private default constructor necessary for serialization
277 
278  void save(Serializer& rSerializer) const override;
279 
280  void load(Serializer& rSerializer) override;
281 
285 
286 }; // Class ZStrainDriven2p5DSmallDisplacement
287 
295 
296 } // namespace Kratos.
Definition: constitutive_law.h:47
std::size_t IndexType
Definition: flags.h:74
This defines the geometrical object, base definition of the element and condition entities.
Definition: geometrical_object.h:58
IntegrationMethod
Definition: geometry_data.h:76
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: geometry.h:161
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
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
Small displacement element for 2D and 3D geometries.
Definition: small_displacement.h:54
Small displacement element for 2.5D cases.
Definition: z_strain_driven_2p5_small_displacement.h:54
std::size_t SizeType
The definition of the sizetype.
Definition: z_strain_driven_2p5_small_displacement.h:72
~ZStrainDriven2p5DSmallDisplacement() override=default
Destructor.
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: z_strain_driven_2p5_small_displacement.h:191
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(ZStrainDriven2p5DSmallDisplacement)
Counted pointer of ZStrainDriven2p5DSmallDisplacement.
std::size_t IndexType
The definition of the index type.
Definition: z_strain_driven_2p5_small_displacement.h:69
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: z_strain_driven_2p5_small_displacement.h:185
ConstitutiveLawType::Pointer ConstitutiveLawPointerType
Pointer type for constitutive laws.
Definition: z_strain_driven_2p5_small_displacement.h:61
ZStrainDriven2p5DSmallDisplacement(ZStrainDriven2p5DSmallDisplacement const &rOther)
Definition: z_strain_driven_2p5_small_displacement.h:86
ZStrainDriven2p5DSmallDisplacement()
Definition: z_strain_driven_2p5_small_displacement.h:214
SmallDisplacement BaseType
The base element type.
Definition: z_strain_driven_2p5_small_displacement.h:66
GeometryData::IntegrationMethod IntegrationMethod
Type definition for integration methods.
Definition: z_strain_driven_2p5_small_displacement.h:63
ConstitutiveLaw ConstitutiveLawType
Definition: z_strain_driven_2p5_small_displacement.h:59
std::string Info() const override
Turn back information as a string.
Definition: z_strain_driven_2p5_small_displacement.h:177
std::vector< double > mImposedZStrainVector
Definition: z_strain_driven_2p5_small_displacement.h:208
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
void SetValuesOnIntegrationPoints(TObject &dummy, const Variable< TDataType > &rVariable, const std::vector< TDataType > &values, const ProcessInfo &rCurrentProcessInfo)
Definition: add_mesh_to_python.cpp:185
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:189