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.
hardening_coulomb_friction_law.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosContactMechanicsApplication $
3 // Created by: $Author: JMCarbonell $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: July 2016 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_HARDENING_COULOMB_FRICTION_LAW_H_INCLUDED)
11 #define KRATOS_HARDENING_COULOMB_FRICTION_LAW_H_INCLUDED
12 
13 // System includes
14 
15 // External includes
16 
17 // Project includes
19 
20 
21 namespace Kratos
22 {
25 
28 
32 
36 
40 
44 
46 
50 class KRATOS_API(CONTACT_MECHANICS_APPLICATION) HardeningCoulombFrictionLaw
52 {
53 public:
54 
57 
60 
64 
67 
70 
73 
74 
79  FrictionLaw::Pointer Clone() const override
80  {
81  return Kratos::make_shared<HardeningCoulombFrictionLaw>(*this);
82  }
83 
87 
88 
92 
93 
97 
98 
102 
103 
107 
109  std::string Info() const override
110  {
111  std::stringstream buffer;
112  buffer << "HardeningCoulombFrictionLaw";
113  return buffer.str();
114  }
115 
117  void PrintInfo(std::ostream& rOStream) const override
118  {
119  rOStream << "HardeningCoulombFrictionLaw";
120  }
121 
123  void PrintData(std::ostream& rOStream) const override
124  {
125  rOStream << "HardeningCoulombFrictionLaw Data";
126  }
127 
131 
132 
134 
135 protected:
138 
139 
143 
144 
148 
149 
153 
154  double EvaluateHardening( const double& rNormalStress, const double& rPlasticSlip, FrictionLawVariables& rTangentVariables) override;
155 
156  double EvaluateContactYield( const double& rTangentStress, const double& rNormalStress, const double& rPlasticSlip, FrictionLawVariables& rTangentVariables) override;
157 
158  void EvaluateYieldDerivativeRespectStress( double& rdF_dt, double & rdF_dp, const double& rTangentStress, const double& rNormalStress, const double& Gamma, FrictionLawVariables& rTangentVariables) override;
159 
163 
164 
168 
169 
173 
174 
176 
177 
178 private:
181 
182 
186 
187 
191 
192 
196 
197 
201 
202 
206 
207 
211 
213  //HardeningCoulombFrictionLaw& operator=(HardeningCoulombFrictionLaw const& rOther);
214 
215 
219 
220  friend class Serializer;
221 
222  void save( Serializer& rSerializer ) const override
223  {
225  }
226 
227  void load( Serializer& rSerializer ) override
228  {
230  }
231 
232 }; // Class HardeningCoulombFrictionLaw
233 
235 
238 
239 
243 
244 
246 inline std::istream& operator >> (std::istream& rIStream,
248 {
249  return rIStream;
250 }
251 
253 inline std::ostream& operator << (std::ostream& rOStream,
254  const HardeningCoulombFrictionLaw& rThis)
255 {
256  return rOStream << rThis.Info();
257 }
259 
261 
262 } // namespace Kratos
263 
264 #endif // define KRATOS_HARDENING_COULOMB_FRICTION_LAW_H_INCLUDED
Short class definition.
Definition: coulomb_adhesion_friction_law.hpp:52
Short class definition.
Definition: hardening_coulomb_friction_law.hpp:52
KRATOS_CLASS_POINTER_DEFINITION(HardeningCoulombFrictionLaw)
Pointer definition of HardeningCoulombFrictionLaw.
HardeningCoulombFrictionLaw()
Default constructor.
Definition: hardening_coulomb_friction_law.hpp:66
FrictionLaw::Pointer Clone() const override
Definition: hardening_coulomb_friction_law.hpp:79
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: hardening_coulomb_friction_law.hpp:117
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: hardening_coulomb_friction_law.hpp:123
~HardeningCoulombFrictionLaw() override
Destructor.
Definition: hardening_coulomb_friction_law.hpp:72
HardeningCoulombFrictionLaw(HardeningCoulombFrictionLaw const &rOther)
Copy constructor.
Definition: hardening_coulomb_friction_law.hpp:69
std::string Info() const override
Turn back information as a string.
Definition: hardening_coulomb_friction_law.hpp:109
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
def load(f)
Definition: ode_solve.py:307
def Gamma(n, j)
Definition: quadrature.py:146