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_spr_error_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: Anna Rehr
11 // Co-author : Vicente Mataix Ferrandiz
12 //
13 
14 #pragma once
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
22 
23 namespace Kratos
24 {
27 
31 
33  using SizeType = std::size_t;
34 
38 
42 
46 
59 template<SizeType TDim>
60 class KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) ContactSPRErrorProcess
61  : public SPRErrorProcess<TDim>
62 {
63 public:
64 
67 
70 
75 
78  using NodeItType = NodesArrayType::iterator;
79  using ElementItType = ElementsArrayType::iterator;
80 
82  using IndexType = std::size_t;
83 
86 
88  static constexpr SizeType SigmaSize = (TDim == 2) ? 3 : 6;
89 
93 
100  ModelPart& rThisModelPart,
101  Parameters ThisParameters = Parameters(R"({})")
102  );
103 
106 
110 
111  void operator()()
112  {
113  this->Execute();
114  }
115 
119  const Parameters GetDefaultParameters() const override;
120 
124 
128 
129 
133 
134 
138 
140  std::string Info() const override
141  {
142  return "ContactSPRErrorProcess";
143  }
144 
146  void PrintInfo(std::ostream& rOStream) const override
147  {
148  rOStream << "ContactSPRErrorProcess";
149  }
150 
152  void PrintData(std::ostream& rOStream) const override
153  {
154  }
155 
156 protected:
159 
160 
164 
165 
169 
170 
174 
182  void CalculatePatch(
183  NodeItType itNode,
184  NodeItType itPatchNode,
185  const SizeType NeighbourSize,
186  Vector& rSigmaRecovered
187  ) override;
188 
192 
193 
197 
198 
202 
203 
205 
206 private:
209 
213 
214  double mPenaltyNormal;
215  double mPenaltyTangent;
216 
220 
224 
232  void ComputeNormalTangentMatrices(
236  const array_1d<double, 3>& rNormal
237  );
238 
242 
246 
250 
254 
257  {
258  return *this;
259  };
260 
262  //ContactSPRErrorProcess(ContactSPRErrorProcess const& rOther);
263 
264 };// class ContactSPRErrorProcess
265 
266 };// namespace Kratos.
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
This class is can be used to compute the metrics of the model part with a superconvergent patch recov...
Definition: contact_spr_error_process.h:62
GlobalPointersVector< Element >::iterator WeakElementItType
Definition of the iterators.
Definition: contact_spr_error_process.h:77
ModelPart::ElementsContainerType ElementsArrayType
Definition: contact_spr_error_process.h:73
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: contact_spr_error_process.h:146
std::string Info() const override
Turn back information as a string.
Definition: contact_spr_error_process.h:140
NodesArrayType::iterator NodeItType
Definition: contact_spr_error_process.h:78
~ContactSPRErrorProcess() override
Destructor.
Definition: contact_spr_error_process.h:105
void operator()()
Definition: contact_spr_error_process.h:111
ModelPart::ConditionsContainerType ConditionsArrayType
Definition: contact_spr_error_process.h:74
KRATOS_CLASS_POINTER_DEFINITION(ContactSPRErrorProcess)
Pointer definition of ContactSPRErrorProcess.
ElementsArrayType::iterator ElementItType
Definition: contact_spr_error_process.h:79
void PrintData(std::ostream &rOStream) const override
Print object"s data.
Definition: contact_spr_error_process.h:152
ModelPart::NodesContainerType NodesArrayType
Containers definition.
Definition: contact_spr_error_process.h:72
std::size_t IndexType
Definition: flags.h:74
This class is a vector which stores global pointers.
Definition: global_pointers_vector.h:61
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
MeshType::ConditionsContainerType ConditionsContainerType
Condintions container. A vector set of Conditions with their Id's as key.
Definition: model_part.h:183
MeshType::ElementsContainerType ElementsContainerType
Element container. A vector set of Elements with their Id's as key.
Definition: model_part.h:168
MeshType::NodesContainerType NodesContainerType
Nodes container. Which is a vector set of nodes with their Id's as key.
Definition: model_part.h:128
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
This class is can be used to compute the metrics of the model part with a superconvergent patch recov...
Definition: spr_error_process.h:63
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43