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.
hyper_elastic_isotropic_ogden_1d.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: Klaus B. Sautter
12 //
13 
14 #pragma once
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
22 
23 namespace Kratos
24 {
25 
40 class KRATOS_API(CONSTITUTIVE_LAWS_APPLICATION) HyperElasticIsotropicOgden1D : public ConstitutiveLaw
41 {
42 public:
48  typedef std::size_t SizeType;
54 
63 
64  ConstitutiveLaw::Pointer Clone() const override;
65 
70 
71 
75  ~HyperElasticIsotropicOgden1D() override;
76 
89  void GetLawFeatures(Features& rFeatures) override;
90 
94  SizeType GetStrainSize() const override
95  {
96  return 1;
97  }
98 
108  int Check(
109  const Properties& rMaterialProperties,
110  const GeometryType& rElementGeometry,
111  const ProcessInfo& rCurrentProcessInfo
112  ) const override;
113 
115  array_1d<double, 3 > & rValue) override;
116 
117  double& CalculateValue(ConstitutiveLaw::Parameters& rParameterValues,
118  const Variable<double>& rThisVariable,double& rValue) override;
119 
120  Vector& CalculateValue(ConstitutiveLaw::Parameters& rParameterValues,
121  const Variable<Vector>& rThisVariable,
122  Vector& rValue) override;
123 
124  array_1d<double, 3 > & CalculateValue(ConstitutiveLaw::Parameters& rParameterValues,
125  const Variable<array_1d<double, 3 > >& rVariable,
126  array_1d<double, 3 > & rValue) override;
127 
128  void CalculateMaterialResponsePK2(Parameters& rValues) override;
129 
130 
131  void FinalizeMaterialResponsePK2(Parameters& rValues) override
132  {
133  // plasticity law needs this function, so it is called in the truss element
134  };
135 
136 
137  //this functions calculates the current stress based on an element given (set)
138  //strain
139  double CalculateStressElastic(ConstitutiveLaw::Parameters& rParameterValues) const;
140 
141 protected:
142 
145 
149 
153 
158 
159 private:
160 
163 
170 
175 
176 
181 
185  friend class Serializer;
186 
187  void save(Serializer& rSerializer) const override
188  {
190  }
191 
192  void load(Serializer& rSerializer) override
193  {
195  }
196 
197 
198 }; // Class HyperElasticIsotropicOgden1D
199 } // namespace Kratos.
Definition: constitutive_law.h:47
std::size_t SizeType
Definition: constitutive_law.h:82
Geometry base class.
Definition: geometry.h:71
SizeType GetStrainSize() const override
Definition: hyper_elastic_isotropic_ogden_1d.h:94
ConstitutiveLaw BaseType
Definition: hyper_elastic_isotropic_ogden_1d.h:47
void FinalizeMaterialResponsePK2(Parameters &rValues) override
Definition: hyper_elastic_isotropic_ogden_1d.h:131
ProcessInfo ProcessInfoType
Definition: hyper_elastic_isotropic_ogden_1d.h:46
std::size_t SizeType
Definition: hyper_elastic_isotropic_ogden_1d.h:48
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticIsotropicOgden1D)
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
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
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
This constitutive law represents the hyper-elastic OGDEN 1D law.
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
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
Definition: constitutive_law.h:189