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_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_DEM_PROCESS)
15 #define KRATOS_GENERATE_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::ElementsContainerType::iterator ElementIteratorType;
29 
30 class KRATOS_API(FEM_TO_DEM_APPLICATION) GenerateDemProcess : public Process
31 {
32  public:
33 
36 
37  typedef std::size_t IndexType;
38 
39  // Constructor
40  GenerateDemProcess(ModelPart& rModelPart, ModelPart& rDemModelPart);
41 
42  // Destructor
43  ~GenerateDemProcess() override = default;
44 
45  void operator()() { Execute(); }
46 
50  void Execute() override;
51 
55  double CalculateDistanceBetweenNodes(const NodeType& 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, NodeType& rNode);
62 
66  double GetMinimumValue(const Vector& rValues);
67 
71  int GetMaximumDEMId();
72 
76  int GetMaximumFEMId();
77 
78 protected:
79 
80  // Member Variables
84  bool mIsDynamic = false;
85 
86 }; // Class
87 
88 } // namespace Kratos
89 #endif /* KRATOS_GENERATE_DEM_PROCESS defined */
Definition: generate_dem_process.h:31
~GenerateDemProcess() override=default
KRATOS_CLASS_POINTER_DEFINITION(GenerateDemProcess)
Pointer definition of ApplyMultipointConstraintsProcess.
ModelPart & mrDEMModelPart
Definition: generate_dem_process.h:82
void operator()()
Definition: generate_dem_process.h:45
std::size_t IndexType
Definition: generate_dem_process.h:37
ModelPart & mrModelPart
Definition: generate_dem_process.h:81
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::ElementsContainerType::iterator ElementIteratorType
Definition: generate_dem_process.h:28
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