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.
mpc_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
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 
53 template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster = TNumNodes>
54 class KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) MPCContactSearchProcess
55  : public BaseContactSearchProcess<TDim, TNumNodes, TNumNodesMaster>
56 {
57 public:
60 
63 
68 
70  using IndexType = std::size_t;
71 
74 
78 
82 
100  ModelPart& rMainModelPart,
101  Parameters ThisParameters = Parameters(R"({})"),
102  Properties::Pointer pPairedProperties = nullptr
103  );
104 
106 
110 
114 
118  void CheckContactModelParts() override;
119 
123  void ResetContactOperators() override;
124 
128 
132 
136 
137  /************************************ GET INFO *************************************/
138  /***********************************************************************************/
139 
140  std::string Info() const override
141  {
142  return "MPCContactSearchProcess";
143  }
144 
145  /************************************ PRINT INFO ***********************************/
146  /***********************************************************************************/
147 
148  void PrintInfo(std::ostream& rOStream) const override
149  {
150  rOStream << Info();
151  }
152 
156 
158 
159 protected:
160 
163 
167 
171 
175 
180  void CleanModelPart(ModelPart& rModelPart) override;
181 
185 
189 
193 
195 
196 private:
199 
203 
207 
211 
215  inline IndexType GetMaximumConstraintsIds();
216 
229  Condition::Pointer AddPairing(
230  ModelPart& rComputingModelPart,
231  IndexType& rConditionId,
232  GeometricalObject::Pointer pCondSlave,
233  const array_1d<double, 3>& rSlaveNormal,
234  GeometricalObject::Pointer pCondMaster,
235  const array_1d<double, 3>& rMasterNormal,
236  IndexMap::Pointer pIndexesPairs,
237  Properties::Pointer pProperties
238  ) override;
239 
243 
247 
251 
253 
254 }; // Class MPCContactSearchProcess
255 
257 
260 
261 
265 
266 /****************************** INPUT STREAM FUNCTION ******************************/
267 /***********************************************************************************/
268 
269 template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
270 inline std::istream& operator >> (std::istream& rIStream,
272 
273 /***************************** OUTPUT STREAM FUNCTION ******************************/
274 /***********************************************************************************/
275 
276 template<SizeType TDim, SizeType TNumNodes, SizeType TNumNodesMaster>
277 inline std::ostream& operator << (std::ostream& rOStream,
279 {
280  return rOStream;
281 }
282 
284 
285 } // 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 utilitiy has as objective to create the contact constraints.
Definition: mpc_contact_search_process.h:56
KRATOS_CLASS_POINTER_DEFINITION(MPCContactSearchProcess)
Pointer definition of MPCContactSearchProcess.
typename BaseType::NodesArrayType NodesArrayType
General type definitions.
Definition: mpc_contact_search_process.h:65
std::string Info() const override
Turn back information as a string.
Definition: mpc_contact_search_process.h:140
typename BaseType::ConditionsArrayType ConditionsArrayType
Definition: mpc_contact_search_process.h:66
typename BaseType::GeometryType GeometryType
Definition: mpc_contact_search_process.h:67
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: mpc_contact_search_process.h:148
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
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
ModelPart::ConditionsContainerType ConditionsArrayType
Definition: gid_gauss_point_container.h:43
Geometry< Node > GeometryType
The definition of the geometry.
Definition: mortar_classes.h:37
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