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_exponential_hardening_rule.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_EXPONENTIAL_HARDENING_RULE_H_INCLUDED )
11 #define KRATOS_SIMO_EXPONENTIAL_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) SimoExponentialHardeningRule
48  : public HardeningRule
49  {
50  public:
53 
56 
60 
63 
66 
69 
71  HardeningRule::Pointer Clone() const override;
72 
74  ~SimoExponentialHardeningRule() override;
75 
79 
80 
84 
85 
90  double& CalculateHardening(const PlasticDataType& rVariables, double& rHardening) override;
91 
96  double& CalculateDeltaHardening(const PlasticDataType& rVariables, double& rDeltaHardening) override;
97 
98 
102 
103 
107 
108 
112 
114  std::string Info() const override
115  {
116  std::stringstream buffer;
117  buffer << "SimoExponentialHardeningRule" ;
118  return buffer.str();
119  }
120 
122  void PrintInfo(std::ostream& rOStream) const override
123  {
124  rOStream << "SimoExponentialHardeningRule";
125  }
126 
128  void PrintData(std::ostream& rOStream) const override
129  {
130  rOStream << "SimoExponentialHardeningRule Data";
131  }
132 
133 
137 
138 
140 
141  protected:
144 
145 
149 
150 
154  constexpr static const double mTheta = 1.0;
155 
156 
160 
164 
168  virtual double& CalculateAndAddIsotropicHardening(const PlasticDataType& rVariables, double& rIsotropicHardening);
169 
170  virtual double& CalculateAndAddKinematicHardening(const PlasticDataType& rVariables, double& rKinematicHardening);
171 
175  virtual double& CalculateAndAddDeltaIsotropicHardening(const PlasticDataType& rVariables, double& rDeltaIsotropicHardening);
176 
177  virtual double& CalculateAndAddDeltaKinematicHardening(const PlasticDataType& rVariables, double& rDeltaKinematicHardening);
178 
179 
180 
181  virtual double& CalculateThermalReferenceEffect(const PlasticDataType& rVariables, double& rThermalFactor);
182 
183  virtual double& CalculateThermalCurrentEffect(const PlasticDataType& rVariables, double& rThermalFactor);
184 
185 
189 
190 
194 
195 
199 
200 
202 
203  private:
206 
207 
211 
215 
216 
220 
221 
225 
229  friend class Serializer;
230 
231 
232  void save(Serializer& rSerializer) const override
233  {
235  }
236 
237  void load(Serializer& rSerializer) override
238  {
240  }
241 
245 
246 
250 
251 
253 
254  }; // Class SimoExponentialHardeningRule
255 
257 
260 
261 
265 
266 
268 
270 
271 } // namespace Kratos.
272 
273 #endif // KRATOS_SIMO_EXPONENTIAL_HARDENING_RULE_H_INCLUDED defined
274 
275 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: hardening_rule.hpp:55
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_exponential_hardening_rule.hpp:49
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: simo_exponential_hardening_rule.hpp:128
KRATOS_CLASS_POINTER_DEFINITION(SimoExponentialHardeningRule)
Pointer definition of SimoExponentialHardeningRule.
std::string Info() const override
Turn back information as a string.
Definition: simo_exponential_hardening_rule.hpp:114
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: simo_exponential_hardening_rule.hpp:122
#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:104