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.
exponential_strain_softening_law.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_EXPONENTIAL_STRAIN_SOFTENING_LAW_H_INCLUDED )
15 #define KRATOS_EXPONENTIAL_STRAIN_SOFTENING_LAW_H_INCLUDED
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
23 
24 namespace Kratos
25 {
28 
31 
35 
39 
43 
47 
49 
51 class KRATOS_API(PARTICLE_MECHANICS_APPLICATION) ExponentialStrainSofteningLaw
52  : public ParticleHardeningLaw
53 {
54 public:
55 
56 
59 
62 
66 
69 
70 
73 
76 
79 
83 
84 
88 
89 
90  /*
91  * @brief This function return the softening rule for internal friction angle, cohesion, and internal dilatancy angle:
92  * @param[in/out] rHardening Exponential softening rate of change
93  * @param[in] rAlpha Plastic deviatoric strain
94  * @param[in] rThisVariable Identifier variable: INTERNAL_FRICTION_ANGLE, COHESION, INTERNAL_DILATANCY_ANGLE
95  * @return Softening rate of change parameter
96  */
97  double& CalculateHardening(double &rHardening, const double &rAlpha, const Variable<double>& rThisVariable, const Properties& rProperties) override;
98 
102 
103 
107 
108 
112 
114  // std::string Info() const;
115 
116  // /// Print information about this object.
117  // void PrintInfo(std::ostream& rOStream) const;
118 
119  // /// Print object's data.
120  // void PrintData(std::ostream& rOStream) const;
121 
122 
126 
127 
129 
130 protected:
133 
134 
138 
139 
143 
144 
148 
149 
153 
154 
158 
159 
163 
164 
166 
167 private:
170 
171 
175 
176 
180 
181 
185 
186 
190 
194  friend class Serializer;
195 
196  // A private default constructor necessary for serialization
197 
198  void save(Serializer& rSerializer) const override;
199 
200  void load(Serializer& rSerializer) override;
201 
205 
206 
210 
211 
213 
214 }; // Class ExponentialStrainSoftening
215 
217 
220 
221 
225 
226 
227 // /// input stream function
228 // inline std::istream& operator >> (std::istream& rIStream,
229 // LinearIsotropicHardeningLaw& rThis);
230 
231 // /// output stream function
232 // inline std::ostream& operator << (std::ostream& rOStream,
233 // const LinearIsotropicHardeningLaw& rThis)
234 // {
235 // rThis.PrintInfo(rOStream);
236 // rOStream << std::endl;
237 // rThis.PrintData(rOStream);
238 
239 // return rOStream;
240 // }
242 
244 
245 } // namespace Kratos.
246 
247 #endif // KRATOS_EXPONENTIAL_STRAIN_SOFTENING_LAW_H_INCLUDED defined
248 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: exponential_strain_softening_law.hpp:53
KRATOS_CLASS_POINTER_DEFINITION(ExponentialStrainSofteningLaw)
Pointer definition of ExponentialStrainSofteningLaw.
Short class definition.
Definition: particle_hardening_law.hpp:58
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