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.
tresca_yield_criterion.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_TRESCA_YIELD_CRITERION_H_INCLUDED )
11 #define KRATOS_TRESCA_YIELD_CRITERION_H_INCLUDED
12 
13 
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
20 #include "custom_constitutive/custom_yield_criteria/yield_criterion.hpp"
22 
23 namespace Kratos
24 {
27 
30 
35 
36  double MeanStress;
37  double J2InvSQ;
38  double LodeAngle;
39 
40  double A;
41  double B;
42  double C;
43 
44  };
45 
46 
47 
51 
55 
59 
61 
63 class KRATOS_API(PFEM_SOLID_MECHANICS_APPLICATION) TrescaYieldCriterion
64  : public YieldCriterion
65 {
66  public:
69 
72 
76 
79 
82 
85 
88 
89 
91  virtual ~TrescaYieldCriterion();
92 
93 
97 
98 
102 
103  double& CalculateYieldCondition(double & rStateFunction, const Vector& rStressVector, const double& rAlpha) override;
104 
105  //void CalculateYieldFunctionSecondDerivative(const Vector& rStressVector, Matrix& SecondDerivative, const double& rAlpha);
106 
107  void CalculateYieldFunctionDerivative(const Vector& rStressVector, Vector& rFirstDerivative, const double& rAlpha) override;
111 
112 
116 
117 
121 
122  // /// Turn back information as a string.
123  // std::string Info() const override;
124 
125  // /// Print information about this object.
126  // void PrintInfo(std::ostream& rOStream) const override;
127 
128  // /// Print object's data.
129  // void PrintData(std::ostream& rOStream) const override;
130 
131 
135 
136 
138 
139  protected:
142 
143 
147 
148 
152 
153 
157 
158  void CalculateSmoothingInvariants(TrescaStressInvariants& rStressInvariants);
159 
160  void CalculateStressInvariants( const Vector& rStressVector, TrescaStressInvariants& rStressInvariants);
161 
162  double GetSmoothingLodeAngle();
163 
164  double GetPI();
165 
166  void ComputeC2andC3Vector( const Vector& rStressVector, TrescaStressInvariants& rStressInvariants, Vector& C2Vector, Vector& C3Vector);
167 
168  void ComputeC2andC3VectorDD( const Vector& rStressVector, TrescaStressInvariants& rStressInvariants, Vector& C2Vector, Vector& C3Vector, Matrix& C2Matrix, Matrix& C3Matrix, Vector & rLodeDerivative);
169 
173 
174 
178 
179 
183 
184 
186 
187  private:
190 
191 
195 
196 
200 
201 
205 
209 
210 
214  friend class Serializer;
215 
216  // A private default constructor necessary for serialization
217 
218  void save(Serializer& rSerializer) const override;
219 
220  void load(Serializer& rSerializer) override;
221 
225 
226 
230 
232 
233  }; // Class MisesHuberYieldCriterion
234 
236 
239 
240 
244 
245 
246  // /// input stream function
247  // inline std::istream& operator >> (std::istream& rIStream,
248  // MisesHuberYieldCriterion& rThis);
249 
250  // /// output stream function
251  // inline std::ostream& operator << (std::ostream& rOStream,
252  // const MisesHuberYieldCriterion& rThis)
253  // {
254  // rThis.PrintInfo(rOStream);
255  // rOStream << std::endl;
256  // rThis.PrintData(rOStream);
257 
258  // return rOStream;
259  // }
261 
263 
264 } // namespace Kratos.
265 
266 #endif // KRATOS_TRESCA_YIELD_CRITERION_H_INCLUDED defined
267 
268 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Short class definition.
Definition: tresca_yield_criterion.hpp:65
KRATOS_CLASS_POINTER_DEFINITION(TrescaYieldCriterion)
Pointer definition of MisesHuberYieldCriterion.
Short class definition.
Definition: yield_criterion.hpp:49
HardeningLaw::Pointer HardeningLawPointer
Definition: yield_criterion.hpp:103
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: tresca_yield_criterion.hpp:34
double C
Definition: tresca_yield_criterion.hpp:42
double LodeAngle
Definition: tresca_yield_criterion.hpp:38
double MeanStress
Definition: tresca_yield_criterion.hpp:36
double A
Definition: tresca_yield_criterion.hpp:40
double J2InvSQ
Definition: tresca_yield_criterion.hpp:37
double B
Definition: tresca_yield_criterion.hpp:41