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.
expand_wet_nodes_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_EXPAND_WET_NODES_PROCESS)
15 #define KRATOS_EXPAND_WET_NODES_PROCESS
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
22 #include "includes/model_part.h"
24 #include "processes/process.h"
26 #include "includes/define.h"
27 #include "includes/kratos_flags.h"
28 
29 namespace Kratos {
30 
31 typedef std::size_t SizeType;
32 
41 class KRATOS_API(FEM_TO_DEM_APPLICATION) ExpandWetNodesProcess : public Process
42 {
43 
44 public:
45 
46  typedef Node NodeType;
53 
56 
57  // Constructor
58  ExpandWetNodesProcess(ModelPart &rModelPart);
59 
60  // Destructor
61  ~ExpandWetNodesProcess() override = default;
62 
63  void operator()() { Execute(); }
64 
65  void Execute() override;
66 
67  bool ElementHasWetNodes(
68  ElementIterator itElem,
69  int& rPressureId,
70  int& rNumberOfWetNodes);
71 
72  bool ElementHasWetNodes2(
73  ElementIterator itElem,
74  int& rPressureId,
75  int& rNumberOfWetNodes);
76 
77  void ExpandWetNodes(
78  ElementIterator itElem,
79  const int PressureId);
80 
81  void ExpandWetNodesIfTheyAreSkin();
82 
83  void ExpandWetNodesWithLatestPressureId();
84 
85 protected:
86  // Member Variables
88  std::string mPressureName;
89 };
90 }
91 #endif /* KRATOS_EXPAND_WET_NODES_PROCESS defined */
Base class for all Conditions.
Definition: condition.h:59
Base class for all Elements.
Definition: element.h:60
Assigns the pressure Id to the nodes of the elements that are going to be removed.
Definition: expand_wet_nodes_process.h:42
ModelPart & mrModelPart
Definition: expand_wet_nodes_process.h:87
KRATOS_CLASS_POINTER_DEFINITION(ExpandWetNodesProcess)
Pointer definition of ExpandWetNodesProcess.
Mesh< NodeType, PropertiesType, ElementType, ConditionType > MeshType
Definition: expand_wet_nodes_process.h:50
MeshType::ElementIterator ElementIterator
Definition: expand_wet_nodes_process.h:52
Element ElementType
Definition: expand_wet_nodes_process.h:48
~ExpandWetNodesProcess() override=default
std::string mPressureName
Definition: expand_wet_nodes_process.h:88
Condition ConditionType
Definition: expand_wet_nodes_process.h:49
Properties PropertiesType
Definition: expand_wet_nodes_process.h:47
Node NodeType
Definition: expand_wet_nodes_process.h:46
PointerVector< MeshType > MeshesContainerType
Definition: expand_wet_nodes_process.h:51
void operator()()
Definition: expand_wet_nodes_process.h:63
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class defines the node.
Definition: node.h:65
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
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
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43