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.
thermal_local_damage_3D_law.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosDamApplication $
3 // Last Modified by: $Author: Ignasi de Pouplana $
4 // Date: $Date: February 2017 $
5 // Revision: $Revision: 1.0 $
6 //
7 
8 #if !defined (KRATOS_THERMAL_LOCAL_DAMAGE_3D_LAW_H_INCLUDED)
9 #define KRATOS_THERMAL_LOCAL_DAMAGE_3D_LAW_H_INCLUDED
10 
11 // Project includes
12 #include "includes/serializer.h"
13 
14 // Application includes
17 
18 namespace Kratos
19 {
20 
21 class KRATOS_API(DAM_APPLICATION) ThermalLocalDamage3DLaw : public LocalDamage3DLaw
22 {
23 
24 public:
25 
27 
28  typedef FlowRule::Pointer FlowRulePointer;
29  typedef YieldCriterion::Pointer YieldCriterionPointer;
30  typedef HardeningLaw::Pointer HardeningLawPointer;
31 
33 
36 
38  ThermalLocalDamage3DLaw(FlowRulePointer pFlowRule, YieldCriterionPointer pYieldCriterion, HardeningLawPointer pHardeningLaw);
39 
42 
44  virtual ~ThermalLocalDamage3DLaw();
45 
47 
48  int Check(const Properties& rMaterialProperties, const GeometryType& rElementGeometry, const ProcessInfo& rCurrentProcessInfo) const override;
49 
50  ConstitutiveLaw::Pointer Clone() const override;
51 
53 
54  void CalculateMaterialResponseCauchy (Parameters & rValues) override;
55 
56  void FinalizeMaterialResponseCauchy (Parameters & rValues) override;
57 
59 
60 protected:
61 
63 
65 
66  double& CalculateNodalReferenceTemperature ( const MaterialResponseVariables & rElasticVariables, double & rNodalReferenceTemperature);
67 
68  virtual void CalculateThermalStrain(Vector& rThermalStrainVector, const MaterialResponseVariables& ElasticVariables, double & rNodalReferenceTemperature);
69 
71 
72 private:
73 
75 
76  friend class Serializer;
77 
78  void save(Serializer& rSerializer) const override
79  {
81  }
82 
83  void load(Serializer& rSerializer) override
84  {
86  }
87 
88 }; // Class ThermalLocalDamage3DLaw
89 } // namespace Kratos.
90 #endif // KRATOS_THERMAL_LOCAL_DAMAGE_3D_LAW_H_INCLUDED defined
Definition: constitutive_law.h:47
Geometry base class.
Definition: geometry.h:71
Definition: local_damage_3D_law.hpp:22
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Definition: thermal_local_damage_3D_law.hpp:22
KRATOS_CLASS_POINTER_DEFINITION(ThermalLocalDamage3DLaw)
FlowRule::Pointer FlowRulePointer
Definition: thermal_local_damage_3D_law.hpp:28
YieldCriterion::Pointer YieldCriterionPointer
Definition: thermal_local_damage_3D_law.hpp:29
HardeningLaw::Pointer HardeningLawPointer
Definition: thermal_local_damage_3D_law.hpp:30
#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_law.h:189
Definition: hyperelastic_3D_law.hpp:43