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.
regenerate_pfem_pressure_conditions_process.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ \.
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics FemDem Application
6 //
7 // License: BSD License
8 // Kratos default license:
9 // kratos/license.txt
10 //
11 // Main authors: Alejandro Cornejo Velazquez
12 //
13 
14 #if !defined(KRATOS_REGENERATE_PFEM_PRESSURE_CONDITIONS_PROCESS)
15 #define KRATOS_REGENERATE_PFEM_PRESSURE_CONDITIONS_PROCESS
16 
17 #include "processes/process.h"
19 #include "includes/define.h"
20 #include "includes/kratos_flags.h"
21 
22 namespace Kratos {
23 
24 typedef std::size_t SizeType;
25  typedef Node NodeType;
27  typedef Element ElementType;
28  typedef Condition ConditionType;
32 
41 template <SizeType TDim = 3>
42 class KRATOS_API(FEM_TO_DEM_APPLICATION) RegeneratePfemPressureConditionsProcess : public Process
43 {
44 
45 
46 public:
49 
50  // Constructor
52 
53  // Destructor
55 
56  void operator()() { Execute(); }
57 
61  void Execute() override;
62 
67  void GetMaximumConditionIdOnSubmodelPart(
68  int& MaximumConditionId);
69 
73  void CreatePressureLoads(
74  const int Id1,
75  const int Id2,
76  const int Id3,
77  ElementIterator itElem,
78  ModelPart &rSubModelPart,
79  ModelPart::PropertiesType::Pointer pProperties,
80  int &rMaximumConditionId);
81 
85  void ResetFlagOnElements();
86 
90  void RemovePreviousPressureLoads();
91 
96 
100  void GeneratePressureLoads3WetNodes(
101  const int NonWetLocalIdNode,
102  int &rMaximumConditionId,
103  ElementIterator itElem);
104 
108  void GeneratePressureLoads4WetNodes(
109  int &rMaximumConditionId,
110  ElementIterator itElem);
111 
119  void GenerateLineLoads2Nodes(
120  const int NonWetLocalIdNode,
121  int& rMaximumConditionId,
122  ElementIterator itElem);
123 
130  void GenerateLineLoads3Nodes(
131  int& rMaximumConditionId,
132  ElementIterator itElem);
133 
144  void CreateLineLoads(
145  const int Id1,
146  const int Id2,
147  ElementIterator itElem,
148  ModelPart& rSubModelPart,
149  ModelPart::PropertiesType::Pointer pProperties,
150  int& rMaximumConditionId);
151 
152 protected:
153  // Member Variables
155 
156 }; // Class
157 } // namespace Kratos
158 #endif /* KRATOS_REGENERATE_PFEM_PRESSURE_CONDITIONS_PROCESS defined */
Base class for all Conditions.
Definition: condition.h:59
Base class for all Elements.
Definition: element.h:60
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
The base class for all processes in Kratos.
Definition: process.h:49
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
Regenerates the pressure conditions for the PFEM coupling.
Definition: regenerate_pfem_pressure_conditions_process.h:43
KRATOS_CLASS_POINTER_DEFINITION(RegeneratePfemPressureConditionsProcess)
Pointer definition of RegeneratePfemPressureConditionsProcess.
ModelPart & mrModelPart
Definition: regenerate_pfem_pressure_conditions_process.h:154
void CreateNewConditions()
Create the new set of pfem pressure conditions.
void operator()()
Definition: regenerate_pfem_pressure_conditions_process.h:56
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
MeshType::ElementIterator ElementIterator
Definition: regenerate_pfem_pressure_conditions_process.h:31
Properties PropertiesType
Definition: regenerate_pfem_pressure_conditions_process.h:26
Element ElementType
Definition: assign_unique_model_part_collection_tag_utility.h:42
MeshType
Definition: traits.h:19
PointerVector< MeshType > MeshesContainerType
Definition: regenerate_pfem_pressure_conditions_process.h:30
Node NodeType
The definition of the node.
Definition: tetrahedral_mesh_orientation_check.h:34
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43
Condition ConditionType
Definition: assign_unique_model_part_collection_tag_utility.h:43