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.
borja_cam_clay_explicit_plastic_flow_rule.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosPfemSolidMechanicsApplication $
3 // Created by: $Author: LMonforte $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: July 2015 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_BORJA_CAM_CLAY_PLASTIC_FLOW_RULE_H_INCLUDED )
11 #define KRATOS_BORJA_CAM_CLAY_PLASTIC_FLOW_RULE_H_INCLUDED
12 
13 
14 // System includes
15 
16 // External includes
17 
18 // Project includes
19 //#include "custom_constitutive/custom_flow_rules/cam_clay_explicit_plastic_flow_rule.hpp"
21 
22 namespace Kratos
23 {
26 
29 
33 
37 
41 
45 
47 
49  class KRATOS_API(PFEM_SOLID_MECHANICS_APPLICATION) BorjaCamClayExplicitFlowRule
51  {
52 
53 
54 
55  public:
58 
61 
65 
68 
71 
74 
77 
78  // CLONE
79  FlowRule::Pointer Clone() const override;
80 
83 
84 
88 
89 
93 
94  virtual void EvaluateMeanStress(const double& rVolumetricStrain, const Vector& rDeviatoricStrainVector, double& rMeanStress);
95 
96  virtual void EvaluateDeviatoricStress(const double& rVolumetricStrain, const Vector& rDeviatoricStrainVector, Vector& rDeviatoricStress);
97 
98  void ComputeElasticMatrix(const Vector& rElasticStrainVector, Matrix& rElasticMatrix) override;
99 
103 
104 
108 
109 
113 
114  // /// Turn back information as a string.
115  // std::string Info() const override;
116 
117  // /// Print information about this object.
118  // void PrintInfo(std::ostream& rOStream) const override;
119 
120  // /// Print object's data.
121  // void PrintData(std::ostream& rOStream) const override;
122 
123 
127 
128 
130 
131  protected:
134 
135 
139 
140 
144 
145 
149 
150  void CalculateKirchhoffStressVector(const Vector& rHencyStrainVector, Vector& rKirchhoffStressVector) override;
151 
152 
153  void EvaluateMeanStress(const Vector& rHenckyStrainVector, double& rMeanStress);
154 
155 
156  void ComputePlasticHardeningParameter(const Vector& rHenckyStrainVector, const double& rAlpha, double& rH) override;
157 
158 // bool CalculateConsistencyCondition( RadialReturnVariables& rReturnMappingVariables, InternalVariables& rPlasticVariables );
159 
160 
161  //void UpdateConfiguration( ExponentialReturnVariables& rReturnMappingVariables, Matrix & rIsoStressMatrix );
162 
163  void CalculatePlasticPotentialDerivatives(const Vector& rStressVector, Vector& rFirstDerivative, Matrix& rSecondDerivative) override;
164 
165 // void CalculateInvariantsAndDerivatives(const Vector& rStressVector, InvariantsStructure& rInv);
166 
170 
171 
175 
176 
180 
181 
183 
184  private:
187 
188 
192 
193 
197 
198 
202 
203 
207 
208 
212  friend class Serializer;
213 
214  // A private default constructor necessary for serialization
215 
216  void save(Serializer& rSerializer) const override;
217 
218  void load(Serializer& rSerializer) override;
219 
223 
224 
228 
230 
231  }; // Class NonLinearAssociativePlasticFlowRule
232 
234 
237 
238 
242 
243 
245  // inline std::istream& operator >> (std::istream& rIStream,
246  // NonLinearAssociativePlasticFlowRule& rThis);
247 
248  // /// output stream function
249  // inline std::ostream& operator << (std::ostream& rOStream,
250  // const NonLinearAssociativePlasticFlowRule& rThis)
251  // {
252  // rThis.PrintInfo(rOStream);
253  // rOStream << std::endl;
254  // rThis.PrintData(rOStream);
255 
256  // return rOStream;
257  // }
259 
261 
262 
263 
267 
268 
270 
271 
272 } // namespace Kratos.
273 
274 #endif // KRATOS_MATSUOKA_NAKAI_PLASTIC_FLOW_RULE_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: borja_cam_clay_explicit_plastic_flow_rule.hpp:51
KRATOS_CLASS_POINTER_DEFINITION(BorjaCamClayExplicitFlowRule)
Pointer definition of NonLinearAssociativePlasticFlowRule.
YieldCriterion::Pointer YieldCriterionPointer
Definition: flow_rule.hpp:56
Short class definition.
Definition: non_associative_explicit_flow_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
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307