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.
modified_cam_clay_yield_criterion.hpp
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Bodhinanda Chandra
11 //
12 
13 
14 #if !defined(KRATOS_MODIFIED_CAM_CLAY_YIELD_CRITERION_H_INCLUDED )
15 #define KRATOS_MODIFIED_CAM_CLAY_YIELD_CRITERION_H_INCLUDED
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
24 
25 namespace Kratos
26 {
29 
32 
36 
40 
44 
48 
50 
52 class KRATOS_API(PARTICLE_MECHANICS_APPLICATION) ModifiedCamClayYieldCriterion
53  : public ParticleYieldCriterion
54 {
55  public:
58 
61 
65 
68 
71 
74 
77 
78 
81 
82 
86 
87 
91 
92 
93  /*
94  * @brief This function return the Modified cam clay yield criterion at the given principal stress condition
95  * @param[in/out] rStateFunction Mohr coulomb yield criterion
96  * @param[in] rStressVector Principal stresses
97  * @param[in] rAlpha Plastic volumetric strain
98  * @param[in] rOldPreconsolidationPressure The value of Preconsolidation Stress at the previous time step
99  * @return Modified cam clay yield criterion
100  */
101  double& CalculateYieldCondition(double & rStateFunction, const Vector& rStressVector, const double& rAlpha, const double& rOldPreconsolidationPressure, const Properties& rProp) override;
102 
103 
104  /*
105  * @brief This function return the first derivative of modified cam clay yield criterion at the given principal stress condition
106  * @param[in] rStressVector Principal stresses
107  * @param[in/out] rFirstDerivative First stress derivative value of yield function
108  * @param[in] rAlpha Plastic volumetric strain
109  * @param[in] rOldPreconsolidationPressure The value of Preconsolidation Stress at the previous time step
110  */
111  void CalculateYieldFunctionDerivative(const Vector& rStressVector, Vector& rFirstDerivative, const double& rAlpha, const double& rOldPreconsolidationPressure, const Properties& rProp) override;
112 
113 
114  /*
115  * @brief This function return the second derivative of modified cam clay yield criterion at the given principal stress condition
116  * @param[in] rStressVector Principal stresses
117  * @param[in/out] rSecondDerivative Second stress derivative value of yield function
118  */
119  void CalculateYieldFunctionSecondDerivative(const Vector& rStressVector, Vector& rSecondDerivative, const Properties& rProp) override;
120 
124 
125 
129 
130 
134 
135  // /// Turn back information as a string.
136  // std::string Info() const override;
137 
138  // /// Print information about this object.
139  // void PrintInfo(std::ostream& rOStream) const override;
140 
141  // /// Print object's data.
142  // void PrintData(std::ostream& rOStream) const override;
143 
144 
148 
149 
151 
152  protected:
155 
156 
160 
161 
165 
169 
170 
174 
175 
179 
180 
184 
185 
187 
188  private:
191 
192 
196 
197 
201 
202 
206 
210 
211 
215  friend class Serializer;
216 
217  // A private default constructor necessary for serialization
218 
219  void save(Serializer& rSerializer) const override;
220 
221  void load(Serializer& rSerializer) override;
222 
226 
227 
231 
233 
234  }; // Class MisesHuberYieldCriterion
235 
237 
240 
241 
245 
246 
247  // /// input stream function
248  // inline std::istream& operator >> (std::istream& rIStream,
249  // MisesHuberYieldCriterion& rThis);
250 
251  // /// output stream function
252  // inline std::ostream& operator << (std::ostream& rOStream,
253  // const MisesHuberYieldCriterion& rThis)
254  // {
255  // rThis.PrintInfo(rOStream);
256  // rOStream << std::endl;
257  // rThis.PrintData(rOStream);
258 
259  // return rOStream;
260  // }
262 
264 
265 } // namespace Kratos.
266 
267 #endif // KRATOS_MODIFIED_CAM_CLAY_YIELD_CRITERION_H_INCLUDED defined
268 
269 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: modified_cam_clay_yield_criterion.hpp:54
KRATOS_CLASS_POINTER_DEFINITION(ModifiedCamClayYieldCriterion)
Pointer definition of MisesHuberYieldCriterion.
Short class definition.
Definition: particle_yield_criterion.hpp:54
ParticleHardeningLaw::Pointer HardeningLawPointer
Definition: particle_yield_criterion.hpp:83
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
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307