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.
modified_exponential_damage_hardening_rule.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosConstitutiveModelsApplication $
3 // Created by: $Author: IPouplana $
4 // Last modified by: $Co-Author: JMCarbonell $
5 // Date: $Date: April 2017 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_MODIFIED_EXPONENTIAL_DAMAGE_HARDENING_RULE_H_INCLUDED )
11 #define KRATOS_MODIFIED_EXPONENTIAL_DAMAGE_HARDENING_RULE_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) ModifiedExponentialDamageHardeningRule
48  : public HardeningRule
49  {
50  protected:
51 
52  //warning::this variable is going to be shadowed by they derived classes
53  //if any problem is detected an alternative method must be used instead
54  constexpr static std::size_t VarSize = 2;
55 
56 
57  public:
60 
63 
66 
70 
73 
74 
77 
80 
82  HardeningRule::Pointer Clone() const override;
83 
86 
90 
91 
95 
100  virtual double& CalculateHardening(const PlasticDataType& rVariables, double& rHardening); //do not override -> it must hide the method
101 
106  virtual double& CalculateDeltaHardening(const PlasticDataType& rVariables, double& rDeltaHardening); //do not override -> it must hide the method
107 
108 
112 
113 
117 
118 
122 
124  std::string Info() const override
125  {
126  std::stringstream buffer;
127  buffer << "ModifiedExponentialDamageHardeningRule" ;
128  return buffer.str();
129  }
130 
132  void PrintInfo(std::ostream& rOStream) const override
133  {
134  rOStream << "ModifiedExponentialDamageHardeningRule";
135  }
136 
138  void PrintData(std::ostream& rOStream) const override
139  {
140  rOStream << "ModifiedExponentialDamageHardeningRule Data";
141  }
142 
146 
147 
149 
150  protected:
153 
154 
158 
159 
163 
164 
168 
169 
173 
174 
178 
179 
183 
184 
186 
187  private:
190 
191 
195 
199 
200 
204 
207 
211 
215  friend class Serializer;
216 
217 
218  void save(Serializer& rSerializer) const override
219  {
221  }
222 
223  void load(Serializer& rSerializer) override
224  {
226  }
227 
231 
232 
236 
237 
239 
240  }; // Class ModifiedExponentialDamageHardeningRule
241 
243 
246 
247 
251 
252 
254 
256 
258 
259 } // namespace Kratos.
260 
261 #endif // KRATOS_MODIFIED_EXPONENTIAL_DAMAGE_HARDENING_RULE_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: hardening_rule.hpp:55
virtual double & CalculateDeltaHardening(const PlasticDataType &rVariables, double &rDeltaHardening)
Definition: hardening_rule.hpp:213
virtual double & CalculateHardening(const PlasticDataType &rVariables, double &rHardening)
Definition: hardening_rule.hpp:197
Short class definition.
Definition: modified_exponential_damage_hardening_rule.hpp:49
PlasticModelData< VarSize > PlasticDataType
Definition: modified_exponential_damage_hardening_rule.hpp:62
InternalVariables< VarSize > InternalVariablesType
Definition: modified_exponential_damage_hardening_rule.hpp:61
std::string Info() const override
Turn back information as a string.
Definition: modified_exponential_damage_hardening_rule.hpp:124
KRATOS_CLASS_POINTER_DEFINITION(ModifiedExponentialDamageHardeningRule)
Pointer definition of ModifiedExponentialDamageHardeningRule.
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: modified_exponential_damage_hardening_rule.hpp:132
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: modified_exponential_damage_hardening_rule.hpp:138
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
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: hardening_rule.hpp:74
Definition: hardening_rule.hpp:104