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.
new_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_NEW_TRESCA_YIELD_CRITERION_H_INCLUDED )
11 #define KRATOS_NEW_TRESCA_YIELD_CRITERION_H_INCLUDED
12 
13 
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
22 namespace Kratos
23 {
26 
29 
33 
37 
41 
45 
47  /* Implementation of the yield surface generalized treca yield surface (Krabbenhoft & Lyamin, 2015)
48  The sharp edges of the yield surface are smoothed according to Gesto, Gens & Vaunat (2011)
49  the gradient is botained with numerical differentiation (Perez-Foguet et al, 2000)
50  */
51 
54 class KRATOS_API(PFEM_SOLID_MECHANICS_APPLICATION) NewTrescaYieldCriterion
55  : public TrescaYieldCriterion
56 {
57  public:
60 
63 
67 
70 
73 
76 
79 
80 
82  virtual ~NewTrescaYieldCriterion();
83 
84 
88 
89 
93 
94  double& CalculateYieldCondition(double & rStateFunction, const Vector& rStressVector, const double& rAlpha) override;
95 
96  void CalculateYieldFunctionDerivative(const Vector& rStressVector, Vector& rFirstDerivative, const double& rAlpha) override;
100 
101 
105 
106 
110 
111  // /// Turn back information as a string.
112  // virtual std::string Info() const;
113 
114  // /// Print information about this object.
115  // virtual void PrintInfo(std::ostream& rOStream) const;
116 
117  // /// Print object's data.
118  // virtual void PrintData(std::ostream& rOStream) const;
119 
120 
124 
125 
127 
128  protected:
131 
132 
136 
137 
141 
142 
146 
147 
151 
152 
156 
157 
161 
162 
164 
165  private:
168 
169 
173 
174 
178 
179 
183 
187 
188 
192  friend class Serializer;
193 
194  // A private default constructor necessary for serialization
195 
196  void save(Serializer& rSerializer) const override;
197 
198  void load(Serializer& rSerializer) override;
199 
203 
204 
208 
210 
211  }; // Class MisesHuberYieldCriterion
212 
214 
217 
218 
222 
223 
224  // /// input stream function
225  // inline std::istream& operator >> (std::istream& rIStream,
226  // MisesHuberYieldCriterion& rThis);
227 
228  // /// output stream function
229  // inline std::ostream& operator << (std::ostream& rOStream,
230  // const MisesHuberYieldCriterion& rThis)
231  // {
232  // rThis.PrintInfo(rOStream);
233  // rOStream << std::endl;
234  // rThis.PrintData(rOStream);
235 
236  // return rOStream;
237  // }
239 
241 
242 } // namespace Kratos.
243 
244 #endif // KRATOS_NEW_TRESCA_YIELD_CRITERION_H_INCLUDED defined
245 
246 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: new_tresca_yield_criterion.hpp:56
KRATOS_CLASS_POINTER_DEFINITION(NewTrescaYieldCriterion)
Pointer definition of MisesHuberYieldCriterion.
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
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