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.
coulomb_adhesion_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_COULOMB_ADHESION_FRICTION_LAW_H_INCLUDED)
11 #define KRATOS_COULOMB_ADHESION_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) CoulombAdhesionFrictionLaw
51  : public FrictionLaw
52 {
53 public:
54 
57 
60 
64 
67 
70 
73 
78  FrictionLaw::Pointer Clone() const override
79  {
80  return Kratos::make_shared<CoulombAdhesionFrictionLaw>(*this);
81  };
82 
86 
87 
91 
92 
96 
97 
101 
102 
106 
108  std::string Info() const override
109  {
110  std::stringstream buffer;
111  buffer << "CoulombAdhesionFrictionLaw";
112  return buffer.str();
113  }
114 
116  void PrintInfo(std::ostream& rOStream) const override
117  {
118  rOStream << "CoulombAdhesionFrictionLaw";
119  }
120 
122  void PrintData(std::ostream& rOStream) const override
123  {
124  rOStream << "CoulombAdhesionFrictionLaw Data";
125  }
126 
130 
131 
133 
134 protected:
137 
138 
142 
143 
147 
148 
152 
153  double EvaluateHardening( const double& rNormalStress, const double& rPlasticSlip, FrictionLawVariables& rTangentVariables) override;
154 
155  double EvaluateContactYield( const double& rTangentStress, const double& rNormalStress, const double& rPlasticSlip, FrictionLawVariables& rTangentVariables) override;
156 
157  void EvaluateYieldDerivativeRespectStress( double& rdF_dt, double & rdF_dp, const double& rTangentStress, const double& rNormalStress, const double& Gamma, FrictionLawVariables& rTangentVariables) override;
158 
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  //CoulombAdhesionFrictionLaw& operator=(CoulombAdhesionFrictionLaw const& rOther);
214 
218 
219  friend class Serializer;
220 
221  void save( Serializer& rSerializer ) const override
222  {
224  }
225 
226  void load( Serializer& rSerializer ) override
227  {
229  }
230 
231 }; // Class CoulombAdhesionFrictionLaw
232 
234 
237 
238 
242 
243 
244 //input stream function
245 inline std::istream& operator >> (std::istream& rIStream,
247 {
248  return rIStream;
249 }
250 
251 //output stream function
252 inline std::ostream& operator << (std::ostream& rOStream,
253  const CoulombAdhesionFrictionLaw& rThis)
254 {
255  return rOStream << rThis.Info();
256 }
257 
259 
261 
262 } // namespace Kratos
263 
264 #endif // define KRATOS_COULOMB_ADHESION_FRICTION_LAW_H_INCLUDED
Short class definition.
Definition: coulomb_adhesion_friction_law.hpp:52
~CoulombAdhesionFrictionLaw() override
Destructor.
Definition: coulomb_adhesion_friction_law.hpp:72
FrictionLaw::Pointer Clone() const override
Definition: coulomb_adhesion_friction_law.hpp:78
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: coulomb_adhesion_friction_law.hpp:122
CoulombAdhesionFrictionLaw(CoulombAdhesionFrictionLaw const &rOther)
Copy constructor.
Definition: coulomb_adhesion_friction_law.hpp:69
KRATOS_CLASS_POINTER_DEFINITION(CoulombAdhesionFrictionLaw)
Pointer definition of CoulombAdhesionFrictionLaw.
std::string Info() const override
Turn back information as a string.
Definition: coulomb_adhesion_friction_law.hpp:108
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: coulomb_adhesion_friction_law.hpp:116
CoulombAdhesionFrictionLaw()
Default constructor.
Definition: coulomb_adhesion_friction_law.hpp:66
Short class definition.
Definition: friction_law.hpp:52
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