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.
gens_nova_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: MCiantia $
5 // Date: $Date: July 2018 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_GENS_NOVA_MODEL_H_INCLUDED )
11 #define KRATOS_GENS_NOVA_MODEL_H_INCLUDED
12 
13 // System includes
14 
15 // External includes
16 #include <iostream>
17 #include <fstream>
18 
19 // Project includes
25 
26 
27 
28 //***** the hardening law associated to this Model has ... variables
29 // 0. Plastic multiplier
30 // 1. Plastic Volumetric deformation
31 // 2. Plastic Deviatoric deformation
32 // 3. ps (mechanical)
33 // 4. pt (ageing)
34 // 5. pcSTAR = ps + (1+k) p_t
35 // 6. Plastic Volumetric deformation Absolut Value
36 // 7. NonLocal Plastic Vol Def
37 // 8. NonLocal Plastic Dev Def
38 // 9. NonLocal Plastic Vol Def ABS
39 // ... (the number now is then..., xD)
40 
41 namespace Kratos
42 {
45 
48 
52 
56 
60 
64 
66 
68  class KRATOS_API(CONSTITUTIVE_MODELS_APPLICATION) GensNovaModel : public StructuredSoilModel<TamagniniModel, GensNovaYieldSurface<GensNovaHardeningRule> >
69  {
70  public:
71 
74 
75  //elasticity model
76  //typedef BorjaModel ElasticityModelType;
78  typedef ElasticityModelType::Pointer ElasticityModelPointer;
79 
80  //yield surface
83  typedef YieldSurfaceType::Pointer YieldSurfacePointer;
84 
85  //base type
87 
88  //common types
89  typedef BaseType::Pointer BaseTypePointer;
97 
98 
101 
105 
107  GensNovaModel() : BaseType() { mInitialized = false; }
108 
110  GensNovaModel(GensNovaModel const& rOther) : BaseType(rOther) {}
111 
114  {
115  BaseType::operator=(rOther);
116  return *this;
117  }
118 
120  ConstitutiveModel::Pointer Clone() const override
121  {
122  return ( GensNovaModel::Pointer(new GensNovaModel(*this)) );
123  }
124 
126  virtual ~GensNovaModel() {}
127 
128 
132 
133 
137 
138 
142 
143 
147 
148 
152 
154  virtual std::string Info() const override
155  {
156  std::stringstream buffer;
157  buffer << "GensNovaModel" ;
158  return buffer.str();
159  }
160 
162  virtual void PrintInfo(std::ostream& rOStream) const override
163  {
164  rOStream << "GensNovaModel";
165  }
166 
168  virtual void PrintData(std::ostream& rOStream) const override
169  {
170  rOStream << "GensNovaModel Data";
171  }
172 
173 
177 
178 
180 
181  protected:
184 
185 
189 
190 
194 
195 
199 
203 
204 
208 
209 
213 
214 
216 
217  private:
220 
221 
225 
226 
230 
231 
235 
236 
240 
241 
245 
246 
250  friend class Serializer;
251 
252  virtual void save(Serializer& rSerializer) const override
253  {
255  }
256 
257  virtual void load(Serializer& rSerializer) override
258  {
259  KRATOS_SERIALIZE_LOAD_BASE_CLASS( rSerializer, BaseType )
260  }
261 
265 
266 
268 
269  }; // Class GensNovaModel
270 
272 
275 
276 
280 
281 
285 
286 
288 
290 
291 
292 } // namespace Kratos.
293 
294 #endif // KRATOS_GENS_NOVA_MODEL_H_INCLUDED defined
295 
296 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: gens_nova_hardening_rule.hpp:48
Short class definition.
Definition: gens_nova_model.hpp:69
virtual std::string Info() const override
Turn back information as a string.
Definition: gens_nova_model.hpp:154
KRATOS_CLASS_POINTER_DEFINITION(GensNovaModel)
Pointer definition of GensNovaModel.
YieldSurfaceType::Pointer YieldSurfacePointer
Definition: gens_nova_model.hpp:83
BaseType::VoigtIndexType VoigtIndexType
Definition: gens_nova_model.hpp:91
BaseType::PlasticDataType PlasticDataType
Definition: gens_nova_model.hpp:95
BaseType::Pointer BaseTypePointer
Definition: gens_nova_model.hpp:89
GensNovaModel()
Default constructor.
Definition: gens_nova_model.hpp:107
BaseType::ModelDataType ModelDataType
Definition: gens_nova_model.hpp:93
StructuredSoilModel< ElasticityModelType, YieldSurfaceType > BaseType
Definition: gens_nova_model.hpp:86
TamagniniModel ElasticityModelType
Definition: gens_nova_model.hpp:77
GensNovaYieldSurface< HardeningRuleType > YieldSurfaceType
Definition: gens_nova_model.hpp:82
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: gens_nova_model.hpp:162
ConstitutiveModel::Pointer Clone() const override
Clone.
Definition: gens_nova_model.hpp:120
virtual ~GensNovaModel()
Destructor.
Definition: gens_nova_model.hpp:126
GensNovaHardeningRule HardeningRuleType
Definition: gens_nova_model.hpp:81
GensNovaModel & operator=(GensNovaModel const &rOther)
Assignment operator.
Definition: gens_nova_model.hpp:113
ElasticityModelType::Pointer ElasticityModelPointer
Definition: gens_nova_model.hpp:78
GensNovaModel(GensNovaModel const &rOther)
Copy constructor.
Definition: gens_nova_model.hpp:110
BaseType::SizeType SizeType
Definition: gens_nova_model.hpp:90
BaseType::InternalVariablesType InternalVariablesType
Definition: gens_nova_model.hpp:96
BaseType::MatrixType MatrixType
Definition: gens_nova_model.hpp:92
BaseType::MaterialDataType MaterialDataType
Definition: gens_nova_model.hpp:94
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: gens_nova_model.hpp:168
Short class definition.
Definition: gens_nova_yield_surface.hpp:51
Definition: amatrix_interface.h:41
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: structured_soil_model.hpp:66
BaseType::PlasticDataType PlasticDataType
Definition: structured_soil_model.hpp:93
BaseType::VoigtIndexType VoigtIndexType
Definition: structured_soil_model.hpp:88
BaseType::InternalVariablesType InternalVariablesType
Definition: structured_soil_model.hpp:94
BaseType::SizeType SizeType
Definition: structured_soil_model.hpp:87
Short class definition.
Definition: tamagnini_model.hpp:48
#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
Definition: constitutive_model_data.hpp:92
Definition: constitutive_model_data.hpp:383