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.
mc_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: Ilaria Iaconeta, Bodhinanda Chandra
11 //
12 
13 
14 #if !defined(KRATOS_MC_YIELD_CRITERION_H_INCLUDED)
15 #define KRATOS_MC_YIELD_CRITERION_H_INCLUDED
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
23 
24 namespace Kratos
25 {
28 
31 
34 
38 
42 
46 
48 
50 class KRATOS_API(PARTICLE_MECHANICS_APPLICATION) MCYieldCriterion
51  : public ParticleYieldCriterion
52 {
53 public:
56 
59 
63 
66 
69 
71  MCYieldCriterion(MCYieldCriterion const& rOther);
72 
75 
76 
78  ~MCYieldCriterion() override;
79 
80 
84 
85 
89 
90 
91  /*
92  * @brief This function return the Mohr Coulomb yield criterion at the given principal stress condition
93  * @param[in/out] rStateFunction Mohr coulomb yield criterion
94  * @param[in] rStressVector Principal stresses
95  * @param[in] rCohesion Current cohesion value
96  * @param[in] rFrictionAngle Current internal friction angle
97  * @return Mohr coulomb yield criterion
98  */
99  double& CalculateYieldCondition(double & rStateFunction, const Vector& rStressVector, const double& rCohesion, const double& rFrictionAngle, const Properties& rProp) override;
100 
103 
104 
108 
109 
113 
117 
118 
120 
121 protected:
124 
125 
129 
130 
134 
135 
139 
143 
147 
148 
152 
154 
155 private:
158 
159 
163 
164 
168 
169 
173 
177 
178 
182  friend class Serializer;
183 
184  // A private default constructor necessary for serialization
185 
186  void save(Serializer& rSerializer) const override;
187 
188  void load(Serializer& rSerializer) override;
189 
193 
194 
198 
200 
201 };
202 
204 
207 
208 
212 
213 
214 // /// input stream function
215 // inline std::istream& operator >> (std::istream& rIStream,
216 // MisesHuberYieldCriterion& rThis);
217 
218 // /// output stream function
219 // inline std::ostream& operator << (std::ostream& rOStream,
220 // const MisesHuberYieldCriterion& rThis)
221 // {
222 // rThis.PrintInfo(rOStream);
223 // rOStream << std::endl;
224 // rThis.PrintData(rOStream);
225 
226 // return rOStream;
227 // }
229 
231 
232 } // namespace Kratos.
233 
234 #endif // KRATOS_TRESCA_YIELD_CRITERION_H_INCLUDED defined
235 
236 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: mc_yield_criterion.hpp:52
KRATOS_CLASS_POINTER_DEFINITION(MCYieldCriterion)
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