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.
frictional_law_with_derivative.h
Go to the documentation of this file.
1 // KRATOS ______ __ __ _____ __ __ __
2 // / ____/___ ____ / /_____ ______/ /_/ ___// /________ _______/ /___ ___________ _/ /
3 // / / / __ \/ __ \/ __/ __ `/ ___/ __/\__ \/ __/ ___/ / / / ___/ __/ / / / ___/ __ `/ /
4 // / /___/ /_/ / / / / /_/ /_/ / /__/ /_ ___/ / /_/ / / /_/ / /__/ /_/ /_/ / / / /_/ / /
5 // \____/\____/_/ /_/\__/\__,_/\___/\__//____/\__/_/ \__,_/\___/\__/\__,_/_/ \__,_/_/ MECHANICS
6 //
7 // License: BSD License
8 // license: ContactStructuralMechanicsApplication/license.txt
9 //
10 // Main authors: Vicente Mataix Ferrandiz
11 //
12 
13 #pragma once
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
21 
22 namespace Kratos
23 {
26 
30 
34 
38 
42 
55 template< std::size_t TDim, std::size_t TNumNodes, bool TNormalVariation, std::size_t TNumNodesMaster = TNumNodes>
56 class KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) FrictionalLawWithDerivative
57  : public FrictionalLaw
58 {
59 public:
60 
63 
66 
68  using IndexType= std::size_t;
69 
71  using SizeType = std::size_t;
72 
75 
78 
80  static constexpr double ZeroTolerance = std::numeric_limits<double>::epsilon();
81 
84 
88 
93  {
94  }
95 
98  {
99  }
100 
103  {
104  }
105 
109 
113 
124  virtual double GetDerivativeThresholdValue(
125  const Node& rNode,
126  const PairedCondition& rCondition,
127  const ProcessInfo& rCurrentProcessInfo,
128  const DerivativeDataType& rDerivativeData,
129  const MortarConditionMatrices& rMortarConditionMatrices,
130  const IndexType IndexDerivative,
131  const IndexType IndexNode
132  );
133 
137 
141 
145 
147  std::string Info() const override
148  {
149  return "FrictionalLawWithDerivative";
150  }
151 
153  void PrintInfo(std::ostream& rOStream) const override
154  {
155  rOStream << Info() << std::endl;
156  }
157 
159  void PrintData(std::ostream& rOStream) const override
160  {
161  rOStream << Info() << std::endl;
162  }
163 
167 
169 protected:
170 
173 
177 
181 
185 
189 
193 
198 
199 private:
205 
209 
213 
218 
222 
223  friend class Serializer;
224 
225  void save(Serializer& rSerializer) const override
226  {
228  }
229 
230  void load(Serializer& rSerializer) override
231  {
232  KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, BaseType );
233  }
234 
239 
243 }; // Class FrictionalLawWithDerivative
244 
246 
249 
250 
254 
256 
257 } // namespace Kratos.
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
This class is a derived class of DerivativeData.
Definition: mortar_classes.h:934
This class defines the base class for frictional laws.
Definition: frictional_law.h:54
std::size_t IndexType
Index type definition.
Definition: frictional_law.h:61
std::size_t SizeType
Size type definition.
Definition: frictional_law.h:64
This class defines the base class for frictional laws with derivative.
Definition: frictional_law_with_derivative.h:58
~FrictionalLawWithDerivative()
Destructor.
Definition: frictional_law_with_derivative.h:102
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: frictional_law_with_derivative.h:159
FrictionalLawWithDerivative(const FrictionalLawWithDerivative &rhs)
Copy constructor (not really required)
Definition: frictional_law_with_derivative.h:97
std::string Info() const override
Turn back information as a string.
Definition: frictional_law_with_derivative.h:147
FrictionalLawWithDerivative()
Default constructor.
Definition: frictional_law_with_derivative.h:92
KRATOS_CLASS_POINTER_DEFINITION(FrictionalLawWithDerivative)
Counted pointer of FrictionalLawWithDerivative.
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: frictional_law_with_derivative.h:153
This class derives from the MortarOperator class and it includes the derived operators.
Definition: mortar_classes.h:1273
This class defines the node.
Definition: node.h:65
This is a base class for the conditions paired.
Definition: paired_condition.h:53
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
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
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
rhs
Definition: generate_frictional_mortar_condition.py:297
def load(f)
Definition: ode_solve.py:307