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.
tesselation_utilities_3d.h
Go to the documentation of this file.
1 // Kratos Multi-Physics - ThermalDEM Application
2 //
3 // License: BSD License
4 // Kratos default license: kratos/license.txt
5 //
6 // Main authors: Rafael Rangel (rrangel@cimne.upc.edu)
7 //
8 
9 #ifndef TESSELATION_UTILITIES_3D_H_INCLUDED
10 #define TESSELATION_UTILITIES_3D_H_INCLUDED
11 
12 // System includes
13 
14 // External includes
15 #include "includes/model_part.h"
16 
17 #ifndef TETLIBRARY
18 #define TETLIBRARY
19 #endif
20 
21 #if !defined(KRATOS_TETGEN_EXTERNAL_H_INCLUDED)
22 #define KRATOS_TETGEN_EXTERNAL_H_INCLUDED
23 #include "tetgen.h"
24 #endif
25 
26 // Project includes
28 
29 namespace Kratos
30 {
31  class KRATOS_API(THERMAL_DEM_APPLICATION) TesselationUtilities3D
32  {
33  public:
34 
35  // Pointer definition
37 
38  // Constructor / Destructor
41 
42  // Public methods
43  void ExecuteInitialize (ModelPart& rModelPart, bool update_voronoi, bool update_porosity);
44  void ExecuteInitializeSolutionStep (ModelPart& rModelPart);
45 
46  protected:
47 
48  // Protected methods
49  void Tetrahedralization (ModelPart& rModelPart);
50  void UpdateVoronoi (ModelPart& rModelPart, struct tetgenio& rOut);
51  void UpdatePorosity (ModelPart& rModelPart, struct tetgenio& rOut);
52  void ComputeAlphaRadius (ModelPart& rModelPart, struct tetgenio& rOut);
53  bool AlphaShape (std::vector<double>& coords);
54  void AddParticleVolume (ModelPart& rModelPart, std::vector<int>& addedParticle, double& particle_volume, const int id);
55 
56  // Protected attributes
59  double mAlphaRadius;
60  std::string mSwitches;
61 
62  private:
63 
64  // Assignment operator
66 
67  }; // Class TesselationUtilities3D
68 } // namespace Kratos
69 
70 #endif // TESSELATION_UTILITIES_3D_H_INCLUDED
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
void ExecuteInitialize() override
Definition: periodic_interface_process.hpp:37
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
Definition: tesselation_utilities_3d.h:32
bool mUpdatePorosiy
Definition: tesselation_utilities_3d.h:58
bool mUpdateVoronoi
Definition: tesselation_utilities_3d.h:57
double mAlphaRadius
Definition: tesselation_utilities_3d.h:59
KRATOS_CLASS_POINTER_DEFINITION(TesselationUtilities3D)
std::string mSwitches
Definition: tesselation_utilities_3d.h:60
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21