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.
generate_initial_skin_DEM_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_GENERATE_INITIAL_SKIN_DEM_PROCESS)
15 #define KRATOS_GENERATE_INITIAL_SKIN_DEM_PROCESS
16 
17 
18 #include "includes/model_part.h"
19 #include "processes/process.h"
23 
24 namespace Kratos {
25 
26 typedef std::size_t SizeType;
27 typedef Node NodeType;
28 typedef ModelPart::NodesContainerType::iterator NodeIteratorType;
29 
30 class KRATOS_API(FEM_TO_DEM_APPLICATION) GenerateInitialSkinDEMProcess : public Process
31 {
32  public:
33 
36 
37  typedef std::size_t IndexType;
38 
39  // Constructor
40  GenerateInitialSkinDEMProcess(ModelPart& rModelPart, ModelPart& rDemModelPart);
41 
42  // Destructor
43  ~GenerateInitialSkinDEMProcess() override = default;
44 
45  void operator()() { Execute(); }
46 
50  void Execute() override;
51 
55  double CalculateDistanceBetweenNodes(NodeIteratorType Node1, const NodeType& Node2);
56 
60  void CreateDEMParticle(const int Id, const array_1d<double, 3> Coordinates,
61  const Properties::Pointer pProperties, const double Radius, NodeIteratorType rNode);
62 
66  double GetMinimumValue(const Vector& rValues);
67 
71  int GetMaximumDEMId();
72 
76  int GetMaximumFEMId();
77 
78 protected:
79 
80  // Member Variables
84 
85 }; // Class
86 
87 } // namespace Kratos
88 #endif /* KRATOS_GENERATE_INITIAL_SKIN_DEM_PROCESS defined */
Definition: generate_initial_skin_DEM_process.h:31
~GenerateInitialSkinDEMProcess() override=default
ModelPart & mrDEMModelPart
Definition: generate_initial_skin_DEM_process.h:82
ModelPart & mrModelPart
Definition: generate_initial_skin_DEM_process.h:81
std::size_t IndexType
Definition: generate_initial_skin_DEM_process.h:37
KRATOS_CLASS_POINTER_DEFINITION(GenerateInitialSkinDEMProcess)
Pointer definition of ApplyMultipointConstraintsProcess.
void operator()()
Definition: generate_initial_skin_DEM_process.h:45
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class defines the node.
Definition: node.h:65
Definition: create_and_destroy.h:33
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
ModelPart::NodesContainerType::iterator NodeIteratorType
Definition: fix_free_velocity_on_nodes_process.h:25
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