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.
extend_pressure_condition_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_EXTEND_PRESSURE_PROCESS)
15 #define KRATOS_EXTEND_PRESSURE_PROCESS
16 
17 #include "includes/model_part.h"
18 #include "processes/process.h"
19 #include <list>
21 #include "includes/define.h"
22 #include "includes/kratos_flags.h"
23 
24 namespace Kratos {
25 
26 typedef std::size_t SizeType;
27 
36 template <SizeType TDim = 2>
37 class KRATOS_API(FEM_TO_DEM_APPLICATION) ExtendPressureConditionProcess : public Process
38 {
39 
40 public:
43 
44  // Constructor
46 
47  // Destructor
48  ~ExtendPressureConditionProcess() override = default;
49 
50  void operator()() { Execute(); }
51 
55  void Execute() override;
56 
60  void RemovePreviousLineLoads();
61 
66 
74  void GenerateLineLoads2Nodes(
75  const int NonWetLocalIdNode,
76  const int PressureId,
77  int& rMaximumConditionId,
78  ModelPart::ElementsContainerType::ptr_iterator itElem);
79 
86  void GenerateLineLoads3Nodes(
87  const int PressureId,
88  int& rMaximumConditionId,
89  ModelPart::ElementsContainerType::ptr_iterator itElem);
90 
97  void GeneratePressureLoads3WetNodes(
98  const int NonWetLocalIdNode,
99  const int PressureId,
100  int& rMaximumConditionId,
101  ModelPart::ElementsContainerType::ptr_iterator itElem);
102 
114  void CreatePressureLoads(
115  const int Id1,
116  const int Id2,
117  const int Id3,
118  ModelPart::ElementsContainerType::ptr_iterator itElem,
119  ModelPart& rSubModelPart,
120  ModelPart::PropertiesType::Pointer pProperties,
121  int& rMaximumConditionId);
122 
133  void CreateLineLoads(
134  const int Id1,
135  const int Id2,
136  ModelPart::ElementsContainerType::ptr_iterator itElem,
137  ModelPart& rSubModelPart,
138  ModelPart::PropertiesType::Pointer pProperties,
139  int& rMaximumConditionId);
140 
147  void GeneratePressureLoads4WetNodes(
148  const int PressureId,
149  int& rMaximumConditionId,
150  ModelPart::ElementsContainerType::ptr_iterator itElem);
151 
157  void GetPressureId(
158  ModelPart::ElementsContainerType::ptr_iterator itElem,
159  int& rPressureId);
160 
165  void GetMaximumConditionIdOnSubmodelPart(
166  int& MaximumConditionId);
167 
171  void CalculateNumberOfElementsOnNodes();
172 
176  void ResetFlagOnElements();
177 
181  void SavePreviousProperties();
182 
186  int GetPressureIdSubModel(const std::string &rSubModelName);
187 
188 protected:
189  // Member Variables
191  std::string mPressureName;
192  ModelPart::PropertiesType::Pointer mpProperty;
193 
194 }; // Class
195 
196 } // namespace Kratos
197 #endif /* KRATOS_EXTEND_PRESSURE_PROCESS defined */
Creates the new presure line loads after removing some elements.
Definition: extend_pressure_condition_process.h:38
ModelPart & mrModelPart
Definition: extend_pressure_condition_process.h:190
KRATOS_CLASS_POINTER_DEFINITION(ExtendPressureConditionProcess)
Pointer definition of ExtendPressureConditionProcess.
~ExtendPressureConditionProcess() override=default
std::string mPressureName
Definition: extend_pressure_condition_process.h:191
void CreateNewConditions()
This generates the new line/surface loads.
ModelPart::PropertiesType::Pointer mpProperty
Definition: extend_pressure_condition_process.h:192
void operator()()
Definition: extend_pressure_condition_process.h:50
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
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