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.
contact_mechanics_application.h
Go to the documentation of this file.
1 //-------------------------------------------------------------
2 // ___ _ _
3 // KRATOS / __|___ _ _| |_ __ _ __| |_
4 // | (__/ _ \ ' \ _/ _` / _| _|
5 // \___\___/_||_\__\__,_\__|\__|MECHANICS
6 //
7 // License:(BSD) ContactMechanicsApplication/license.txt
8 //
9 // Main authors: Josep Maria Carbonell
10 // ...
11 //
12 //-------------------------------------------------------------
13 //
14 // Project Name: KratosContactMechanicsApplication $
15 // Created by: $Author: JMCarbonell $
16 // Last modified by: $Co-Author: $
17 // Date: $Date: July 2016 $
18 // Revision: $Revision: 0.0 $
19 //
20 //
21 
22 #if !defined(KRATOS_CONTACT_MECHANICS_APPLICATION_H_INCLUDED )
23 #define KRATOS_CONTACT_MECHANICS_APPLICATION_H_INCLUDED
24 
25 // System includes
26 #include <string>
27 #include <iostream>
28 
29 // External includes
30 
31 // Project includes
32 #include "includes/define.h"
34 #include "includes/variables.h"
35 
36 // elements
39 
40 // conditions
47 
50 
55 
59 
62 
63 // friction laws
67 
68 // rigid body links
70 
71 // Core applications
73 
74 namespace Kratos {
75 
78 
82 
86 
90 
94 
96 
98 class KRATOS_API(CONTACT_MECHANICS_APPLICATION) KratosContactMechanicsApplication : public KratosApplication
99 {
100 public:
103 
104 
107 
111 
114 
117 
118 
122 
126 
127  void Register() override;
128 
132 
136 
140 
142  std::string Info() const override {
143  return "KratosContactMechanicsApplication";
144  }
145 
147  void PrintInfo(std::ostream& rOStream) const override {
148  rOStream << Info();
149  PrintData(rOStream);
150  }
151 
153  void PrintData(std::ostream& rOStream) const override {
154  KRATOS_WATCH("in my application");
156 
157  rOStream << "Variables:" << std::endl;
159  rOStream << std::endl;
160  rOStream << "Elements:" << std::endl;
161  KratosComponents<Element>().PrintData(rOStream);
162  rOStream << std::endl;
163  rOStream << "Conditions:" << std::endl;
164  KratosComponents<Condition>().PrintData(rOStream);
165  }
166 
167 
171 
172 
174 
175 protected:
178 
179 
183 
184 
188 
189 
193 
194 
198 
199 
203 
204 
208 
209 
211 
212 private:
215 
216  // static const ApplicationCondition msApplicationCondition;
217 
221 
222  //elements
223  const RigidBodyElement mRigidBodyElement;
224  const RigidBodySegregatedVElement mRigidBodySegregatedVElement;
225  const TranslatoryRigidBodyElement mTranslatoryRigidBodyElement;
226  const TranslatoryRigidBodyElement mTranslatoryRigidBodySegregatedVElement;
227 
228  //conditions
229  const ContactDomainLM3DCondition mContactDomainLMCondition3D4N;
230 
231  const ContactDomainLM2DCondition mContactDomainLMCondition2D3N;
232  const ContactDomainPenalty2DCondition mContactDomainPenaltyCondition2D3N;
233 
234  const AxisymContactDomainLM2DCondition mAxisymContactDomainLMCondition2D3N;
235  const AxisymContactDomainPenalty2DCondition mAxisymContactDomainPenaltyCondition2D3N;
236 
237  const ThermalContactDomainPenalty2DCondition mThermalContactDomainPenaltyCondition2D3N;
238  const AxisymThermalContactDomainPenalty2DCondition mAxisymThermalContactDomainPenaltyCondition2D3N;
239 
240  const PointRigidContactPenalty2DCondition mPointRigidContactPenalty2DCondition;
241  const PointRigidContactPenalty3DCondition mPointRigidContactPenalty3DCondition;
242  const AxisymPointRigidContactPenalty2DCondition mAxisymPointRigidContactPenalty2DCondition;
243 
244  const EPPointRigidContactPenalty2DCondition mEPPointRigidContactPenalty2DCondition;
245  const EPPointRigidContactPenalty3DCondition mEPPointRigidContactPenalty3DCondition;
246  const EPAxisymPointRigidContactPenalty2DCondition mEPAxisymPointRigidContactPenalty2DCondition;
247 
248  const HydraulicRigidContactPenalty3DCondition mHydraulicRigidContactPenalty3DCondition;
249  const HydraulicAxisymRigidContactPenalty2DCondition mHydraulicAxisymRigidContactPenalty2DCondition;
250 
251  //friction laws
252  const FrictionLaw mFrictionLaw;
253  const CoulombAdhesionFrictionLaw mCoulombAdhesionFrictionLaw;
254  const HardeningCoulombFrictionLaw mHardeningCoulombFrictionLaw;
255 
256  const RigidBodyPointLinkCondition mRigidBodyPointLinkCondition2D1N;
257  const RigidBodyPointLinkCondition mRigidBodyPointLinkCondition3D1N;
258 
259  const RigidBodyPointLinkSegregatedVCondition mRigidBodyPointLinkSegregatedVCondition2D1N;
260  const RigidBodyPointLinkSegregatedVCondition mRigidBodyPointLinkSegregatedVCondition3D1N;
261 
265 
266 
270 
271 
275 
276 
280 
281 
285 
288 
291 
292 
294 
295 }; // Class KratosContactMechanicsApplication
296 
298 
299 
302 
303 
307 
309 
310 
311 } // namespace Kratos.
312 
313 #endif // KRATOS_CONTACT_MECHANICS_APPLICATION_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: axisym_contact_domain_LM_2D_condition.hpp:43
Definition: axisym_contact_domain_penalty_2D_condition.hpp:45
Short class definition.
Definition: axisym_point_rigid_contact_penalty_2D_condition.hpp:47
Definition: axisym_thermal_contact_domain_penalty_2D_condition.hpp:40
Definition: contact_domain_LM_2D_condition.hpp:42
Definition: contact_domain_LM_3D_condition.hpp:42
Definition: contact_domain_penalty_2D_condition.hpp:42
Short class definition.
Definition: coulomb_adhesion_friction_law.hpp:52
Short class definition.
Definition: EP_axisym_point_rigid_contact_penalty_2D_condition.hpp:47
Short class definition.
Definition: EP_point_rigid_contact_penalty_2D_condition.hpp:47
Short class definition.
Definition: EP_point_rigid_contact_penalty_3D_condition.hpp:47
Short class definition.
Definition: friction_law.hpp:52
Short class definition.
Definition: hardening_coulomb_friction_law.hpp:52
Short class definition.
Definition: hydraulic_axisym_rigid_contact_penalty_2D_condition.hpp:47
Short class definition.
Definition: hydraulic_rigid_contact_penalty_3D_condition.hpp:47
This class defines the interface with kernel for all applications in Kratos.
Definition: kratos_application.h:91
Definition: kratos_components.h:253
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: kratos_components.h:403
KratosComponents class encapsulates a lookup table for a family of classes in a generic way.
Definition: kratos_components.h:49
Short class definition.
Definition: contact_mechanics_application.h:99
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: contact_mechanics_application.h:147
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: contact_mechanics_application.h:153
virtual ~KratosContactMechanicsApplication()
Destructor.
Definition: contact_mechanics_application.h:116
KRATOS_CLASS_POINTER_DEFINITION(KratosContactMechanicsApplication)
Pointer definition of KratosContactMechanicsApplication.
std::string Info() const override
Turn back information as a string.
Definition: contact_mechanics_application.h:142
Short class definition.
Definition: point_rigid_contact_penalty_2D_condition.hpp:47
Short class definition.
Definition: point_rigid_contact_penalty_3D_condition.hpp:47
Rigid Body Element for 3D space dimension.
Definition: rigid_body_element.hpp:48
Rigid Body Segregated V Element for 3D space dimension.
Definition: rigid_body_segregated_V_element.hpp:46
Definition: thermal_contact_domain_penalty_2D_condition.hpp:40
Rigid Body Element for 3D space dimension.
Definition: translatory_rigid_body_element.hpp:46
#define KRATOS_WATCH(variable)
Definition: define.h:806
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KRATOS_API_EXTERN template class KratosComponents< Condition >
Definition: condition.h:1191
KRATOS_API_EXTERN template class KratosComponents< Element >
Definition: element.h:1240