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.
hole_cutting_utility.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 //
8 // License: BSD License
9 // Kratos default license: kratos/license.txt
10 //
11 // Authors: Aditya Ghantasala, https://github.com/adityaghantasala
12 // Navaneeth K Narayanan
13 // Rishith Ellath Meethal
14 //
15 
16 #if !defined(CHIMERA_HOLE_CUTTING_UTILITY_H_INCLUDED)
17 #define CHIMERA_HOLE_CUTTING_UTILITY_H_INCLUDED
18 
19 // System includes
20 #include <algorithm>
21 
22 // External includes
23 
24 // Project includes
25 #include "includes/define.h"
26 #include "includes/model_part.h"
27 #include "geometries/triangle_3d_3.h" // Skin face geometry template
28 #include "geometries/line_2d_2.h"
29 // Application includes
31 
32 namespace Kratos
33 {
34 
37 
41 
45 
49 
53 
55 class KRATOS_API(CHIMERA_APPLICATION) ChimeraHoleCuttingUtility
56 {
57 public:
58 
59  typedef std::size_t IndexType;
62 
64  {
65  INSIDE=0,
66  OUTSIDE=1
67  };
68 
69  enum Domain
70  {
71  MAIN_BACKGROUND=1,
72  OTHER=-1
73  };
74 
79 
83 
85 
88 
89 
93 
97 
105  template<int TDim>
106  void CreateHoleAfterDistance(ModelPart &rModelPart,
107  ModelPart &rHoleModelPart,
108  ModelPart &rHoleBoundaryModelPart,
109  const double Distance);
110 
111 
121  template<int TDim>
122  void RemoveOutOfDomainElements(ModelPart &rModelPart,
123  ModelPart &rModifiedModelPart,
124  const ChimeraHoleCuttingUtility::Domain DomainType,
125  const double OverLapDistance=0.0,
126  const ChimeraHoleCuttingUtility::SideToExtract Side = ChimeraHoleCuttingUtility::SideToExtract::OUTSIDE);
127 
136  template<int TDim>
137  void ExtractBoundaryMesh( ModelPart &rVolumeModelPart,
138  ModelPart &rExtractedBoundaryModelPart,
139  const ChimeraHoleCuttingUtility::SideToExtract GetInternal = ChimeraHoleCuttingUtility::SideToExtract::OUTSIDE);
140 
143 
146 
150 
154 
158 
162 
164 
165 }; // Class ChimeraHoleCuttingUtility
166 
167 } // namespace Kratos.
168 
169 #endif // CHIMERA_HOLE_CUTTING_UTILITY_H_INCLUDED defined
Short class definition.
Definition: hole_cutting_utility.h:56
~ChimeraHoleCuttingUtility()=default
Destructor.
std::size_t IndexType
Definition: hole_cutting_utility.h:59
ChimeraHoleCuttingUtility(ChimeraHoleCuttingUtility const &rOther)=delete
Copy constructor.
Domain
Definition: hole_cutting_utility.h:70
SideToExtract
Definition: hole_cutting_utility.h:64
KRATOS_CLASS_POINTER_DEFINITION(ChimeraHoleCuttingUtility)
ChimeraHoleCuttingUtility & operator=(ChimeraHoleCuttingUtility const &rOther)=delete
Assignment operator.
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21