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.
simple_contact_search_process.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 
32  using SizeType = std::size_t;
33 
37 
41 
45 
57 template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
58 class KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) SimpleContactSearchProcess
59  : public BaseContactSearchProcess<TDim, TNumNodes, TNumNodesMaster>
60 {
61 public:
64 
67 
72 
74  using IndexType = std::size_t;
75 
77  static constexpr double GapThreshold = 2.0e-4;
78 
81 
85 
89 
107  ModelPart& rMainModelPart,
108  Parameters ThisParameters = Parameters(R"({})"),
109  Properties::Pointer pPairedProperties = nullptr
110  );
111 
112  virtual ~SimpleContactSearchProcess()= default;
113 
117 
121 
125 
129 
133 
134  /************************************ GET INFO *************************************/
135  /***********************************************************************************/
136 
137  std::string Info() const override
138  {
139  return "SimpleContactSearchProcess";
140  }
141 
142  /************************************ PRINT INFO ***********************************/
143  /***********************************************************************************/
144 
145  void PrintInfo(std::ostream& rOStream) const override
146  {
147  rOStream << Info();
148  }
149 
153 
155 
156 protected:
157 
160 
164 
168 
172 
179  void SetActiveNode(
180  Node& rNode,
181  const double CommonEpsilon,
182  const double ScaleFactor = 1.0
183  ) override;
184 
188 
192 
196 
198 
199 private:
202 
206 
210 
214 
218 
222 
226 
228 
229 }; // Class SimpleContactSearchProcess
230 
232 
235 
236 
240 
241 /****************************** INPUT STREAM FUNCTION ******************************/
242 /***********************************************************************************/
243 
244 template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
245 inline std::istream& operator >> (std::istream& rIStream,
247 
248 /***************************** OUTPUT STREAM FUNCTION ******************************/
249 /***********************************************************************************/
250 
251 template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
252 inline std::ostream& operator << (std::ostream& rOStream,
254 {
255  return rOStream;
256 }
257 
259 
260 } // namespace Kratos.
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
This process has as objective to create the contact conditions.
Definition: base_contact_search_process.h:65
std::size_t IndexType
Definition: flags.h:74
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class defines the node.
Definition: node.h:65
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
This utilitiy has as objective to create the contact conditions.
Definition: simple_contact_search_process.h:60
typename BaseType::GeometryType GeometryType
Definition: simple_contact_search_process.h:71
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: simple_contact_search_process.h:145
virtual ~SimpleContactSearchProcess()=default
KRATOS_CLASS_POINTER_DEFINITION(SimpleContactSearchProcess)
Pointer definition of SimpleContactSearchProcess.
typename BaseType::ConditionsArrayType ConditionsArrayType
Definition: simple_contact_search_process.h:70
typename BaseType::NodesArrayType NodesArrayType
General type definitions.
Definition: simple_contact_search_process.h:69
std::string Info() const override
Turn back information as a string.
Definition: simple_contact_search_process.h:137
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
ModelPart::ConditionsContainerType ConditionsArrayType
Definition: gid_gauss_point_container.h:43
Geometry< Node > GeometryType
The definition of the geometry.
Definition: mortar_classes.h:37
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
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
ScaleFactor
Definition: generate_frictional_mortar_condition.py:131