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.
simo_ju_modified_exponential_damage_model.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosConstitutiveModelsApplication $
3 // Created by: $Author: JMCarbonell $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: April 2017 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_SIMO_JU_MODIFIED_EXPONENTIAL_DAMAGE_MODEL_H_INCLUDED )
11 #define KRATOS_SIMO_JU_MODIFIED_EXPONENTIAL_DAMAGE_MODEL_H_INCLUDED
12 
13 // System includes
14 
15 // External includes
16 
17 // Project includes
22 
23 namespace Kratos
24 {
27 
30 
34 
38 
42 
46 
48 
50  class SimoJuModifiedExponentialDamageModel : public DamageModel<LinearElasticModel, SimoJuYieldSurface<ModifiedExponentialDamageHardeningRule> >
51  {
52  public:
53 
56 
57  //elasticity model
59  typedef ElasticityModelType::Pointer ElasticityModelPointer;
60 
61  //yield surface
64  typedef YieldSurfaceType::Pointer YieldSurfacePointer;
65 
66  //base type
68 
69  //common types
70  typedef BaseType::Pointer BaseTypePointer;
78 
79 
82 
86 
89 
92  :BaseType(rOther) {}
93 
96  {
97  BaseType::operator=(rOther);
98  return *this;
99  }
100 
102  ConstitutiveModel::Pointer Clone() const override
103  {
104  return Kratos::make_shared<SimoJuModifiedExponentialDamageModel>(*this);
105  }
106 
109 
110 
114 
115 
119 
120 
124 
128  bool Has(const Variable<double>& rThisVariable) override
129  {
130  return false;
131  }
132 
133 
137  double& GetValue(const Variable<double>& rThisVariable, double& rValue) override
138  {
139 
140  rValue=0;
141 
142  return rValue;
143  }
144 
148 
149 
153 
155  std::string Info() const override
156  {
157  std::stringstream buffer;
158  buffer << "SimoJuModifiedExponentialDamageModel" ;
159  return buffer.str();
160  }
161 
163  void PrintInfo(std::ostream& rOStream) const override
164  {
165  rOStream << "SimoJuModifiedExponentialDamageModel";
166  }
167 
169  void PrintData(std::ostream& rOStream) const override
170  {
171  rOStream << "SimoJuModifiedExponentialDamageModel Data";
172  }
173 
177 
178 
180 
181  protected:
184 
185 
189 
190 
194 
195 
199 
200 
204 
205 
209 
210 
214 
215 
217 
218  private:
221 
222 
226 
227 
231 
232 
236 
237 
241 
242 
246 
247 
251  friend class Serializer;
252 
253  void save(Serializer& rSerializer) const override
254  {
256  }
257 
258  void load(Serializer& rSerializer) override
259  {
261  }
262 
266 
267 
269 
270  }; // Class SimoJuModifiedExponentialDamageModel
271 
273 
276 
277 
281 
282 
286 
287 
289 
291 
292 
293 } // namespace Kratos.
294 
295 #endif // KRATOS_SIMO_JU_MODIFIED_EXPONENTIAL_DAMAGE_MODEL_H_INCLUDED defined
Short class definition.
Definition: damage_model.hpp:50
DamageModel & operator=(DamageModel const &rOther)
Assignment operator.
Definition: damage_model.hpp:94
BaseType::PlasticDataType PlasticDataType
Definition: damage_model.hpp:73
BaseType::InternalVariablesType InternalVariablesType
Definition: damage_model.hpp:74
BaseType::SizeType SizeType
Definition: damage_model.hpp:67
BaseType::VoigtIndexType VoigtIndexType
Definition: damage_model.hpp:68
Definition: amatrix_interface.h:41
Short class definition.
Definition: linear_elastic_model.hpp:50
Short class definition.
Definition: modified_exponential_damage_hardening_rule.hpp:49
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: simo_ju_modified_exponential_damage_model.hpp:51
bool Has(const Variable< double > &rThisVariable) override
Definition: simo_ju_modified_exponential_damage_model.hpp:128
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: simo_ju_modified_exponential_damage_model.hpp:163
BaseType::MaterialDataType MaterialDataType
Definition: simo_ju_modified_exponential_damage_model.hpp:75
BaseType::ModelDataType ModelDataType
Definition: simo_ju_modified_exponential_damage_model.hpp:74
ModifiedExponentialDamageHardeningRule HardeningRuleType
Definition: simo_ju_modified_exponential_damage_model.hpp:62
SimoJuModifiedExponentialDamageModel(SimoJuModifiedExponentialDamageModel const &rOther)
Copy constructor.
Definition: simo_ju_modified_exponential_damage_model.hpp:91
ElasticityModelType::Pointer ElasticityModelPointer
Definition: simo_ju_modified_exponential_damage_model.hpp:59
BaseType::PlasticDataType PlasticDataType
Definition: simo_ju_modified_exponential_damage_model.hpp:76
std::string Info() const override
Turn back information as a string.
Definition: simo_ju_modified_exponential_damage_model.hpp:155
BaseType::InternalVariablesType InternalVariablesType
Definition: simo_ju_modified_exponential_damage_model.hpp:77
SimoJuModifiedExponentialDamageModel & operator=(SimoJuModifiedExponentialDamageModel const &rOther)
Assignment operator.
Definition: simo_ju_modified_exponential_damage_model.hpp:95
YieldSurfaceType::Pointer YieldSurfacePointer
Definition: simo_ju_modified_exponential_damage_model.hpp:64
SimoJuModifiedExponentialDamageModel()
Default constructor.
Definition: simo_ju_modified_exponential_damage_model.hpp:88
DamageModel< ElasticityModelType, YieldSurfaceType > BaseType
Definition: simo_ju_modified_exponential_damage_model.hpp:67
~SimoJuModifiedExponentialDamageModel() override
Destructor.
Definition: simo_ju_modified_exponential_damage_model.hpp:108
BaseType::SizeType SizeType
Definition: simo_ju_modified_exponential_damage_model.hpp:71
SimoJuYieldSurface< HardeningRuleType > YieldSurfaceType
Definition: simo_ju_modified_exponential_damage_model.hpp:63
LinearElasticModel ElasticityModelType
Definition: simo_ju_modified_exponential_damage_model.hpp:58
double & GetValue(const Variable< double > &rThisVariable, double &rValue) override
Definition: simo_ju_modified_exponential_damage_model.hpp:137
BaseType::VoigtIndexType VoigtIndexType
Definition: simo_ju_modified_exponential_damage_model.hpp:72
BaseType::Pointer BaseTypePointer
Definition: simo_ju_modified_exponential_damage_model.hpp:70
KRATOS_CLASS_POINTER_DEFINITION(SimoJuModifiedExponentialDamageModel)
Pointer definition of SimoJuModifiedExponentialDamageModel.
ConstitutiveModel::Pointer Clone() const override
Clone.
Definition: simo_ju_modified_exponential_damage_model.hpp:102
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: simo_ju_modified_exponential_damage_model.hpp:169
BaseType::MatrixType MatrixType
Definition: simo_ju_modified_exponential_damage_model.hpp:73
Short class definition.
Definition: simo_ju_yield_surface.h:56
#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