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.
nonlocal_damage_3D_law.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosPoromechanicsApplication $
3 // Last Modified by: $Author: Ignasi de Pouplana $
4 // Date: $Date: February 2016 $
5 // Revision: $Revision: 1.0 $
6 //
7 
8 #if !defined (KRATOS_NONLOCAL_DAMAGE_3D_LAW_H_INCLUDED)
9 #define KRATOS_NONLOCAL_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(POROMECHANICS_APPLICATION) NonlocalDamage3DLaw : 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  NonlocalDamage3DLaw(FlowRulePointer pFlowRule, YieldCriterionPointer pYieldCriterion, HardeningLawPointer pHardeningLaw);
39 
42 
44  ~NonlocalDamage3DLaw() override;
45 
47 
48  int Check(const Properties& rMaterialProperties, const GeometryType& rElementGeometry, const ProcessInfo& rCurrentProcessInfo) const override;
49 
50  ConstitutiveLaw::Pointer Clone() const override;
51 
52  void InitializeMaterial( const Properties& rMaterialProperties,const GeometryType& rElementGeometry,const Vector& rShapeFunctionsValues ) override;
53 
55 
56  void CalculateMaterialResponseCauchy (Parameters & rValues) override;
57 
58  void FinalizeMaterialResponseCauchy (Parameters & rValues) override;
59 
61 
62  double& GetValue( const Variable<double>& rThisVariable, double& rValue ) override;
63 
64  void SetValue( const Variable<double>& rVariable, const double& rValue, const ProcessInfo& rCurrentProcessInfo ) override;
65 
67 
68 protected:
69 
71 
73 
75 
76  void CalculateLocalReturnMapping( FlowRule::RadialReturnVariables& rReturnMappingVariables, Matrix& rStressMatrix,
77  Vector& rStressVector, const Matrix& LinearElasticMatrix, const Vector& StrainVector );
78 
79 private:
80 
82 
83  friend class Serializer;
84 
85  void save(Serializer& rSerializer) const override
86  {
88  }
89 
90  void load(Serializer& rSerializer) override
91  {
93  }
94 
95 }; // Class NonlocalDamage3DLaw
96 } // namespace Kratos.
97 #endif // KRATOS_NONLOCAL_DAMAGE_3D_LAW_H_INCLUDED defined
Definition: constitutive_law.h:47
Geometry base class.
Definition: geometry.h:71
YieldCriterion::Pointer YieldCriterionPointer
Definition: hyperelastic_plastic_3D_law.hpp:62
FlowRule::Pointer FlowRulePointer
Definition: hyperelastic_plastic_3D_law.hpp:61
HardeningLaw::Pointer HardeningLawPointer
Definition: hyperelastic_plastic_3D_law.hpp:63
Definition: local_damage_3D_law.hpp:22
Definition: nonlocal_damage_3D_law.hpp:22
HardeningLaw::Pointer HardeningLawPointer
Definition: nonlocal_damage_3D_law.hpp:30
double mNonlocalEquivalentStrain
Member Variables.
Definition: nonlocal_damage_3D_law.hpp:72
FlowRule::Pointer FlowRulePointer
Definition: nonlocal_damage_3D_law.hpp:28
YieldCriterion::Pointer YieldCriterionPointer
Definition: nonlocal_damage_3D_law.hpp:29
KRATOS_CLASS_POINTER_DEFINITION(NonlocalDamage3DLaw)
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
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def SetValue(entity, variable, value)
Definition: coupling_interface_data.py:256
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189
Definition: flow_rule.hpp:121