13 #if !defined(KRATOS_DIVIDE_TETRAHEDRA_3D_4_UTILS)
14 #define KRATOS_DIVIDE_TETRAHEDRA_3D_4_UTILS
43 template<
class TPo
intType>
63 const std::vector<int> mEdgeNodeI = {0, 0, 0, 1, 1, 2};
64 const std::vector<int> mEdgeNodeJ = {1, 2, 3, 2, 3, 3};
65 std::vector<int> mSplitEdges = {0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1};
90 std::string
Info()
const override;
93 void PrintInfo(std::ostream& rOStream)
const override;
96 void PrintData(std::ostream& rOStream)
const override;
109 const std::vector<int>& GetEdgeIdsI()
const override;
114 const std::vector<int>& GetEdgeIdsJ()
const override;
119 std::vector<int>& GetSplitEdges()
override;
124 void GenerateDivision()
override;
129 void GenerateIntersectionsSkin()
override;
137 void GenerateExteriorFaces(
138 std::vector < IndexedPointGeometryPointerType > &rExteriorFacesVector,
139 std::vector < unsigned int > &rExteriorFacesParentSubdivisionsIdsVector,
140 const std::vector < IndexedPointGeometryPointerType > &rSubdivisionsContainer)
override;
150 void GenerateExteriorFaces(
151 std::vector < IndexedPointGeometryPointerType > &rExteriorFacesVector,
152 std::vector < unsigned int > &rExteriorFacesParentSubdivisionsIdsVector,
153 const std::vector < IndexedPointGeometryPointerType > &rSubdivisionsContainer,
154 const unsigned int FatherFaceId)
override;
166 std::bitset<4> mNodeIsCut{0x0};
188 bool NodeIsInterface(
int NodeKey)
const;
195 DivideTetrahedra3D4&
operator=(DivideTetrahedra3D4
const& rOther);
198 DivideTetrahedra3D4(DivideTetrahedra3D4
const& rOther)
199 : DivideGeometry<TPointType>(rOther.GetInputGeometry(), rOther.GetNodalDistances()) {};
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: divide_geometry.h:167
IndexedPoint::Pointer IndexedPointPointerType
Definition: divide_geometry.h:179
Geometry< IndexedPoint >::Pointer IndexedPointGeometryPointerType
Definition: divide_geometry.h:181
Definition: divide_tetrahedra_3d_4.h:45
Triangle3D3< IndexedPointType > IndexedPointTriangleType
Definition: divide_tetrahedra_3d_4.h:57
DivideGeometry< TPointType > BaseType
Definition: divide_tetrahedra_3d_4.h:50
BaseType::IndexedPointGeometryPointerType IndexedPointGeometryPointerType
Definition: divide_tetrahedra_3d_4.h:55
BaseType::IndexedPointPointerType IndexedPointPointerType
Definition: divide_tetrahedra_3d_4.h:53
Tetrahedra3D4< IndexedPointType > IndexedPointTetrahedraType
Definition: divide_tetrahedra_3d_4.h:58
KRATOS_CLASS_POINTER_DEFINITION(DivideTetrahedra3D4)
Pointer definition of DivideTetrahedra3D4.
BaseType::IndexedPointType IndexedPointType
Definition: divide_tetrahedra_3d_4.h:52
BaseType::IndexedPointGeometryType IndexedPointGeometryType
Definition: divide_tetrahedra_3d_4.h:54
BaseType::IndexedPointGeometryType::GeometriesArrayType IndexedGeometriesArrayType
Definition: divide_tetrahedra_3d_4.h:56
BaseType::GeometryType GeometryType
Definition: divide_tetrahedra_3d_4.h:51
Geometry base class.
Definition: geometry.h:71
Definition: divide_geometry.h:46
A four node tetrahedra geometry with linear shape functions.
Definition: tetrahedra_3d_4.h:59
A three node 3D triangle geometry with linear shape functions.
Definition: triangle_3d_3.h:77
typename GeometryType::GeometriesArrayType GeometriesArrayType
Definition: add_geometries_to_python.cpp:62
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21