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.
von_mises_neo_hookean_plasticity_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_VON_MISES_NEO_HOOKEAN_PLASTICITY_MODEL_H_INCLUDED )
11 #define KRATOS_VON_MISES_NEO_HOOKEAN_PLASTICITY_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 KRATOS_API(CONSTITUTIVE_MODELS_APPLICATION) VonMisesNeoHookeanPlasticityModel : public NonLinearAssociativePlasticityModel<IsochoricNeoHookeanModel, MisesHuberYieldSurface<SimoExponentialHardeningRule> >
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 
95  {
96  BaseType::operator=(rOther);
97  return *this;
98  }
99 
101  ConstitutiveModel::Pointer Clone() const override
102  {
103  return Kratos::make_shared<VonMisesNeoHookeanPlasticityModel>(*this);
104  }
105 
108 
109 
113 
114 
118 
119 
123 
127  bool Has(const Variable<double>& rThisVariable) override
128  {
129  if(rThisVariable == PLASTIC_STRAIN || rThisVariable == DELTA_PLASTIC_STRAIN )
130  return true;
131 
132  return false;
133  }
134 
135 
139  double& GetValue(const Variable<double>& rThisVariable, double& rValue) override
140  {
141 
142  rValue=0;
143 
144  if (rThisVariable==PLASTIC_STRAIN)
145  {
146  rValue = this->mInternal.Variables[0];
147  }
148 
149 
150  if (rThisVariable==DELTA_PLASTIC_STRAIN)
151  {
152  rValue = this->mInternal.Variables[0]-mPreviousInternal.Variables[0];
153  }
154 
155 
156  return rValue;
157  }
158 
162  void SetValue(const Variable<double>& rThisVariable,
163  const double& rValue,
164  const ProcessInfo& rCurrentProcessInfo) override
165  {
166  if (rThisVariable==PLASTIC_STRAIN)
167  {
168  this->mInternal.Variables[0] = rValue;
169  }
170  }
171 
175 
176 
180 
182  std::string Info() const override
183  {
184  std::stringstream buffer;
185  buffer << "VonMisesNeoHookeanPlasticityModel" ;
186  return buffer.str();
187  }
188 
190  void PrintInfo(std::ostream& rOStream) const override
191  {
192  rOStream << "VonMisesNeoHookeanPlasticityModel";
193  }
194 
196  void PrintData(std::ostream& rOStream) const override
197  {
198  rOStream << "VonMisesNeoHookeanPlasticityModel Data";
199  }
200 
204 
205 
207 
208  protected:
211 
212 
216 
217 
221 
222 
226 
227 
231 
232 
236 
237 
241 
242 
244 
245  private:
248 
249 
253 
254 
258 
259 
263 
264 
268 
269 
273 
274 
278  friend class Serializer;
279 
280  void save(Serializer& rSerializer) const override
281  {
283  }
284 
285  void load(Serializer& rSerializer) override
286  {
287  KRATOS_SERIALIZE_LOAD_BASE_CLASS( rSerializer, BaseType )
288  }
289 
293 
294 
296 
297  }; // Class VonMisesNeoHookeanPlasticityModel
298 
300 
303 
304 
308 
309 
313 
314 
316 
318 
319 
320 } // namespace Kratos.
321 
322 #endif // KRATOS_VON_MISES_NEO_HOOKEAN_PLASTICITY_MODEL_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: amatrix_interface.h:41
Short class definition.
Definition: isochoric_neo_hookean_model.hpp:48
Short class definition.
Definition: mises_huber_yield_surface.hpp:50
Short class definition.
Definition: non_linear_associative_plasticity_model.hpp:50
BaseType::SizeType SizeType
Definition: non_linear_associative_plasticity_model.hpp:67
BaseType::PlasticDataType PlasticDataType
Definition: non_linear_associative_plasticity_model.hpp:72
BaseType::InternalVariablesType InternalVariablesType
Definition: non_linear_associative_plasticity_model.hpp:73
BaseType::VoigtIndexType VoigtIndexType
Definition: non_linear_associative_plasticity_model.hpp:68
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
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
Short class definition.
Definition: von_mises_neo_hookean_plasticity_model.hpp:51
~VonMisesNeoHookeanPlasticityModel() override
Destructor.
Definition: von_mises_neo_hookean_plasticity_model.hpp:107
SimoExponentialHardeningRule HardeningRuleType
Definition: von_mises_neo_hookean_plasticity_model.hpp:62
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: von_mises_neo_hookean_plasticity_model.hpp:190
IsochoricNeoHookeanModel ElasticityModelType
Definition: von_mises_neo_hookean_plasticity_model.hpp:58
KRATOS_CLASS_POINTER_DEFINITION(VonMisesNeoHookeanPlasticityModel)
Pointer definition of VonMisesNeoHookeanPlasticityModel.
BaseType::PlasticDataType PlasticDataType
Definition: von_mises_neo_hookean_plasticity_model.hpp:76
bool Has(const Variable< double > &rThisVariable) override
Definition: von_mises_neo_hookean_plasticity_model.hpp:127
VonMisesNeoHookeanPlasticityModel()
Default constructor.
Definition: von_mises_neo_hookean_plasticity_model.hpp:88
YieldSurfaceType::Pointer YieldSurfacePointer
Definition: von_mises_neo_hookean_plasticity_model.hpp:64
ConstitutiveModel::Pointer Clone() const override
Clone.
Definition: von_mises_neo_hookean_plasticity_model.hpp:101
BaseType::MaterialDataType MaterialDataType
Definition: von_mises_neo_hookean_plasticity_model.hpp:75
void SetValue(const Variable< double > &rThisVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo) override
Definition: von_mises_neo_hookean_plasticity_model.hpp:162
NonLinearAssociativePlasticityModel< ElasticityModelType, YieldSurfaceType > BaseType
Definition: von_mises_neo_hookean_plasticity_model.hpp:67
BaseType::VoigtIndexType VoigtIndexType
Definition: von_mises_neo_hookean_plasticity_model.hpp:72
ElasticityModelType::Pointer ElasticityModelPointer
Definition: von_mises_neo_hookean_plasticity_model.hpp:59
MisesHuberYieldSurface< HardeningRuleType > YieldSurfaceType
Definition: von_mises_neo_hookean_plasticity_model.hpp:63
VonMisesNeoHookeanPlasticityModel & operator=(VonMisesNeoHookeanPlasticityModel const &rOther)
Assignment operator.
Definition: von_mises_neo_hookean_plasticity_model.hpp:94
BaseType::InternalVariablesType InternalVariablesType
Definition: von_mises_neo_hookean_plasticity_model.hpp:77
double & GetValue(const Variable< double > &rThisVariable, double &rValue) override
Definition: von_mises_neo_hookean_plasticity_model.hpp:139
std::string Info() const override
Turn back information as a string.
Definition: von_mises_neo_hookean_plasticity_model.hpp:182
BaseType::ModelDataType ModelDataType
Definition: von_mises_neo_hookean_plasticity_model.hpp:74
BaseType::Pointer BaseTypePointer
Definition: von_mises_neo_hookean_plasticity_model.hpp:70
VonMisesNeoHookeanPlasticityModel(VonMisesNeoHookeanPlasticityModel const &rOther)
Copy constructor.
Definition: von_mises_neo_hookean_plasticity_model.hpp:91
BaseType::MatrixType MatrixType
Definition: von_mises_neo_hookean_plasticity_model.hpp:73
BaseType::SizeType SizeType
Definition: von_mises_neo_hookean_plasticity_model.hpp:71
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: von_mises_neo_hookean_plasticity_model.hpp:196
#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