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.
ALM_frictional_mortar_contact_axisym_condition.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 
31  using PointType = Point;
32  using GeometryType = Geometry<Node>;
33  using GeometryPointType = Geometry<PointType>;
36 
40 
44 
48 
56 template< std::size_t TNumNodes, bool TNormalVariation >
57 class KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition
58  : public AugmentedLagrangianMethodFrictionalMortarContactCondition<2, TNumNodes, TNormalVariation>
59 {
60 public:
63 
66 
69 
72 
75 
78 
80  using AeData = typename MortarBaseType::AeData;
81 
84 
87 
90 
93 
95  using GeometryPointerType = typename ConditionBaseType::GeometryType::Pointer;
96 
99 
101  using PropertiesPointerType = typename ConditionBaseType::PropertiesType::Pointer;
102 
105 
108 
110  using ConditionArrayListType = std::vector<array_1d<PointType, 2>>;
111 
114 
117 
119  static constexpr IndexType MatrixSize = 2 * (TNumNodes + TNumNodes) + TNumNodes;
120 
124 
127  {
128  }
129 
130  // Constructor 1
132  IndexType NewId,
133  GeometryPointerType pGeometry
134  ):BaseType(NewId, pGeometry)
135  {
136  }
137 
138  // Constructor 2
140  IndexType NewId,
141  GeometryPointerType pGeometry,
142  PropertiesPointerType pProperties
143  ):BaseType( NewId, pGeometry, pProperties )
144  {
145  }
146 
147  // Constructor 3
149  IndexType NewId,
150  GeometryPointerType pGeometry,
151  PropertiesPointerType pProperties,
152  GeometryType::Pointer pMasterGeometry
153  ):BaseType( NewId, pGeometry, pProperties, pMasterGeometry )
154  {
155  }
156 
159  {
160  }
161 
164 
168 
169 
173 
181  Condition::Pointer Create(
182  IndexType NewId,
183  NodesArrayType const& rThisNodes,
184  PropertiesPointerType pProperties
185  ) const override;
186 
194  Condition::Pointer Create(
195  IndexType NewId,
196  GeometryPointerType pGeom,
197  PropertiesPointerType pProperties
198  ) const override;
199 
208  Condition::Pointer Create(
209  IndexType NewId,
210  GeometryPointerType pGeom,
211  PropertiesPointerType pProperties,
212  GeometryPointerType pMasterGeom
213  ) const override;
214 
215 
216  /******************************************************************/
217  /********** AUXILLIARY METHODS FOR GENERAL CALCULATIONS ***********/
218  /******************************************************************/
219 
224  bool IsAxisymmetric() const override;
225 
230  double GetAxisymmetricCoefficient(const GeneralVariables& rVariables) const override;
231 
238  double CalculateRadius(const GeneralVariables& rVariables) const;
239 
243 
247 
251 
253  std::string Info() const override
254  {
255  std::stringstream buffer;
256  buffer << "AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition #" << this->Id();
257  return buffer.str();
258  }
259 
261  void PrintInfo(std::ostream& rOStream) const override
262  {
263  rOStream << "AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition #" << this->Id();
264  }
265 
267  void PrintData(std::ostream& rOStream) const override
268  {
269  PrintInfo(rOStream);
270  this->GetParentGeometry().PrintData(rOStream);
271  this->GetPairedGeometry().PrintData(rOStream);
272  }
273 
277 
279 
280 protected:
283 
287 
291 
295 
299 
303 
307 
309 private:
312 
316 
320 
324 
328 
332 
336 
337  // Serialization
338 
339  friend class Serializer;
340 
341  void save(Serializer& rSerializer) const override
342  {
344  }
345 
346  void load(Serializer& rSerializer) override
347  {
348  KRATOS_SERIALIZE_LOAD_BASE_CLASS( rSerializer, BaseType );
349  }
350 
352 
353 }; // Class AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition
354 
356 
359 
363 
365 
366 }// namespace Kratos.
AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:59
std::string Info() const override
Turn back information as a string.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:253
typename ConditionBaseType::IndexType IndexType
The index type used in the condition.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:92
AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition(IndexType NewId, GeometryPointerType pGeometry, PropertiesPointerType pProperties)
Definition: ALM_frictional_mortar_contact_axisym_condition.h:139
typename MortarBaseType::MortarConditionMatrices MortarConditionMatrices
Type for the matrices used in the mortar contact condition.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:74
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:261
std::vector< array_1d< PointType, 2 > > ConditionArrayListType
Type for the array of conditions with points.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:110
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition)
Counted pointer of AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition.
AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition(IndexType NewId, GeometryPointerType pGeometry)
Definition: ALM_frictional_mortar_contact_axisym_condition.h:131
typename ConditionBaseType::PropertiesType::Pointer PropertiesPointerType
Pointer type for the properties of the condition.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:101
typename ConditionBaseType::GeometryType::Pointer GeometryPointerType
Pointer type for the geometry of the condition.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:95
typename MortarBaseType::AeData AeData
Type for the augmented Lagrangian data used in the mortar contact condition.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:80
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:267
AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition(AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition const &rOther)
Copy constructor.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:158
AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition()
Default constructor.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:126
AugmentedLagrangianMethodFrictionalMortarContactAxisymCondition(IndexType NewId, GeometryPointerType pGeometry, PropertiesPointerType pProperties, GeometryType::Pointer pMasterGeometry)
Definition: ALM_frictional_mortar_contact_axisym_condition.h:148
typename MortarBaseType::GeneralVariables GeneralVariables
Type for the general variables used in the mortar contact condition.
Definition: ALM_frictional_mortar_contact_axisym_condition.h:77
AugmentedLagrangianMethodFrictionalMortarContactCondition.
Definition: ALM_frictional_mortar_contact_condition.h:67
Base class for all Conditions.
Definition: condition.h:59
std::vector< std::size_t > EquationIdVectorType
Definition: condition.h:98
std::vector< DofType::Pointer > DofsVectorType
Definition: condition.h:100
This class is a derived class of DerivativeData.
Definition: mortar_classes.h:934
This is the definition dual lagrange multiplier operators including the derivatives.
Definition: mortar_classes.h:1718
This defines the geometrical object, base definition of the element and condition entities.
Definition: geometrical_object.h:58
IntegrationMethod
Definition: geometry_data.h:76
An two node 2D line geometry with linear shape functions.
Definition: line_2d_2.h:65
MortarContactCondition.
Definition: mortar_contact_condition.h:78
MortarKinematicVariablesWithDerivatives.
Definition: mortar_classes.h:490
This class derives from the MortarOperator class and it includes the derived operators.
Definition: mortar_classes.h:1273
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
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
double CalculateRadius(const PairedCondition *pCondition, const Vector &rNSlave)
Calculates the radius of axisymmetry.
Definition: mortar_explicit_contribution_utilities.cpp:675
double GetAxisymmetricCoefficient(const PairedCondition *pCondition, const Vector &rNSlave)
This functions computes the integration weight to consider.
Definition: mortar_explicit_contribution_utilities.cpp:662
std::size_t IndexType
Definition: binary_expression.cpp:25
Vector VectorType
Definition: geometrical_transformation_utilities.h:56
Matrix MatrixType
Definition: geometrical_transformation_utilities.h:55
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
GeometryData::IntegrationMethod IntegrationMethod
Type definition for integration methods.
Definition: exact_mortar_segmentation_utility.h:57
Geometry< PointType > GeometryPointType
Definition: exact_mortar_segmentation_utility.h:54
Geometry< Node > GeometryType
The definition of the geometry.
Definition: mortar_classes.h:37
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
def load(f)
Definition: ode_solve.py:307
Configure::PointType PointType
Definition: transfer_utility.h:245