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.
hypoplastic_umat_small_strain_model.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosUmatApplication $
3 // Created by: $Author: LMonforte $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: October 2017 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_HYPOPLASTIC_SMALL_STRAIN_UMAT_MODEL_H_INCLUDED )
11 #define KRATOS_HYPOPLASTIC_SMALL_STRAIN_UMAT_MODEL_H_INCLUDED
12 
13 // System includes
14 #include <string>
15 #include <iostream>
16 
17 // External includes
18 
19 // Project includes
21 
22 namespace Kratos
23 {
26 
29 
33 
37 
41 
45 
47 
49  class KRATOS_API(UMAT_APPLICATION) HypoplasticSmallStrainUmatModel : public SmallStrainUmatModel
50  {
51 
52 
53  public:
54 
57 
60 
64 
67 
70 
72  virtual ConstitutiveModel::Pointer Clone() const override;
73 
76 
79 
80 
84 
85 
89 
90 
94 
95 
99 
101  virtual std::string Info() const override
102  {
103  std::stringstream buffer;
104  buffer << "HypoplasticSmallStrainUmatModel";
105  return buffer.str();
106  }
107 
109  virtual void PrintInfo(std::ostream& rOStream) const override
110  {
111  rOStream << "HypoplasticSmallStrainUmatModel";
112  }
113 
115  virtual void PrintData(std::ostream& rOStream) const override
116  {
117  rOStream << "HypoplasticSmallStrainUmatModel Data";
118  }
119 
120 
124 
125 
127 
128  protected:
131 
132 
136 
137 
141 
142 
146 
147  /*
148  Get the dimension of StateVariables
149  */
150 
151  virtual unsigned int GetNumberOfStateVariables() override {
152  return 13;
153  };
154 
155 
156  /*
157  Create the vector with constitutive parameters value
158  */
159  virtual void CreateConstitutiveParametersVector(double* & pVector, int & rNumberParameters, const Properties & rMaterialProperties) override {
160  rNumberParameters = 16;
161  pVector = new double[rNumberParameters];
162  pVector[0] = 30.0; // phi_deg
163  pVector[1] = 1.0; // p_t
164  pVector[2] = 5800.0; // hs
165  pVector[3] = 0.28; // e_n
166  pVector[4] = 0.53; // ed0
167  pVector[5] = 0.84; // ec0
168  pVector[6] = 1.0; // ei0
169  pVector[7] = 0.130; // alpha
170  pVector[8] = 1.00; // beta
171  pVector[9] = 2.0; // m_R
172  pVector[10] = 5.0; // m_T
173  pVector[11] = 1.0e-4; // r_uc
174  pVector[12] = 0.05; // beta_r
175  pVector[13] = 1.0; // chi
176  pVector[14] = 0.0E5; // bulk_w // should be set equal to zero
177  pVector[15] = 10.0+0.5; // ?? line 155 (some sort of void ratio that depends on the number does something)
178  };
179 
180  /*
181  Number of the constitutive equation in the fortran wrapper
182  */
183  virtual int GetConstitutiveEquationNumber() override
184  {
185  return 1;
186  }
190 
191 
195 
196 
200 
201 
203 
204  private:
205 
208 
209 
213 
214 
218 
219 
223 
224 
228 
229 
233  friend class Serializer;
234 
235  virtual void save(Serializer& rSerializer) const override
236  {
238  }
239 
240  virtual void load(Serializer& rSerializer) override
241  {
243  }
244 
248 
249 
253 
255 
256  }; // Class HypoplasticSmallStrainUmatModel
257 
259 
262 
263 
267 
269 
271 
272 } // namespace Kratos.
273 
274 #endif // KRATOS_HYPOPLASTIC_SMALL_STRAIN_UMAT_MODEL_H_INCLUDED defined
275 
276 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: hypoplastic_umat_small_strain_model.hpp:50
virtual int GetConstitutiveEquationNumber() override
Definition: hypoplastic_umat_small_strain_model.hpp:183
virtual unsigned int GetNumberOfStateVariables() override
Definition: hypoplastic_umat_small_strain_model.hpp:151
KRATOS_CLASS_POINTER_DEFINITION(HypoplasticSmallStrainUmatModel)
Pointer definition of HypoplasticSmallStrainUmatModel.
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: hypoplastic_umat_small_strain_model.hpp:109
virtual std::string Info() const override
Turn back information as a string.
Definition: hypoplastic_umat_small_strain_model.hpp:101
virtual void CreateConstitutiveParametersVector(double *&pVector, int &rNumberParameters, const Properties &rMaterialProperties) override
Definition: hypoplastic_umat_small_strain_model.hpp:159
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: hypoplastic_umat_small_strain_model.hpp:115
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
Short class definition.
Definition: small_strain_umat_model.hpp:51
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#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