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.
borja_model.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosConstitutiveModelsApplication $
3 // Created by: $Author: LMonforte $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: April 2017 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_BORJA_MODEL_H_INCLUDED )
11 #define KRATOS_BORJA_MODEL_H_INCLUDED
12 
13 // System includes
14 
15 // External includes
16 
17 // Project includes
19 
20 namespace Kratos
21 {
24 
27 
31 
35 
39 
43 
45 
47  class KRATOS_API(CONSTITUTIVE_MODELS_APPLICATION) BorjaModel : public HenckyHyperElasticModel
48  {
49  public:
50 
53 
56 
60 
62  BorjaModel();
63 
65  BorjaModel(BorjaModel const& rOther);
66 
68  BorjaModel& operator=(BorjaModel const& rOther);
69 
71  ConstitutiveModel::Pointer Clone() const override;
72 
73 
75  ~BorjaModel() override;
76 
77 
81 
82 
86 
87 
91 
92 
96 
97 
101 
103  std::string Info() const override
104  {
105  std::stringstream buffer;
106  buffer << "BorjaModel";
107  return buffer.str();
108  }
109 
111  void PrintInfo(std::ostream& rOStream) const override
112  {
113  rOStream << "BorjaModel";
114  }
115 
117  void PrintData(std::ostream& rOStream) const override
118  {
119  rOStream << "BorjaModel Data";
120  }
121 
122 
126 
127 
129 
130  protected:
133 
134 
138 
139 
143 
144 
148 
152  void CalculateAndAddStressTensor(HyperElasticDataType& rVariables, MatrixType& rStressMatrix) override;
153 
157  void CalculateAndAddConstitutiveTensor(HyperElasticDataType& rVariables, Matrix& rConstitutiveMatrix) override;
158 
162  void SeparateVolumetricAndDeviatoricPart( const MatrixType& rA, double & rVolumetric, MatrixType& rDev, double & devNorm);
163 
167 
168 
172 
173 
177 
178 
180 
181  private:
182 
185 
186 
190 
191 
195 
196 
200 
201 
205 
206 
210  friend class Serializer;
211 
212 
213  void save(Serializer& rSerializer) const override
214  {
216  }
217 
218  void load(Serializer& rSerializer) override
219  {
221  }
222 
226 
227 
231 
233 
234  }; // Class BorjaModel
235 
237 
240 
241 
245 
246 
248 
250 
251 } // namespace Kratos.
252 
253 #endif // KRATOS_BORJA_MODEL_H_INCLUDED defined
254 
255 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: borja_model.hpp:48
std::string Info() const override
Turn back information as a string.
Definition: borja_model.hpp:103
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: borja_model.hpp:111
KRATOS_CLASS_POINTER_DEFINITION(BorjaModel)
Pointer definition of BorjaModel.
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: borja_model.hpp:117
Short class definition.
Definition: hencky_hyper_elastic_model.hpp:48
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Matrix MatrixType
Definition: geometrical_transformation_utilities.h:55
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307