v0.15.0
Loading...
Searching...
No Matches
EntityRefine.hpp
Go to the documentation of this file.
1/* \file EntityRefine.hpp
2 * --------------------------------------------------------------
3 * \brief Tetrahedral refinement algorithm
4 *
5 * It is based on \cite ruprecht1998scheme
6 *
7 * \todo tet Refinement should be rewritten, with better error control, and more
8 * clear refinement patterns.
9 */
10
11#ifndef __ENTITYREFINE_HPP__
12#define __ENTITYREFINE_HPP__
13
14namespace MoFEM {
15
16// TETS
17void tet_type_6(moab::Interface &moab, const EntityHandle *conn,
18 const EntityHandle *edge_new_nodes,
19 EntityHandle *new_tets_conn);
20int tet_type_5(moab::Interface &moab, const EntityHandle *conn,
21 const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn);
22int tet_type_4(const EntityHandle *conn, const int *split_edges,
23 const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn);
24int tet_type_3(const EntityHandle *conn, const int *split_edges,
25 const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn);
26int tet_type_2(const EntityHandle *conn, const int *split_edges,
27 const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn);
28void tet_type_1(const EntityHandle *conn, const int split_edge,
29 const EntityHandle edge_new_node, EntityHandle *new_tets_conn);
30
31// unstructured 6 tets
32void hex_to_tet_type_1(const EntityHandle *conn, EntityHandle *new_tets_conn);
33void hex_to_tet_type_2(const EntityHandle *conn, EntityHandle *new_tets_conn);
34
35// structured 28 tets
37 const EntityHandle *edge_new_nodes,
38 EntityHandle *new_tets_conn);
39
40// TRIS
41
42MoFEMErrorCode tri_type_1(const EntityHandle *conn, const int split_edge,
43 const EntityHandle edge_new_node,
44 EntityHandle *new_tris_conn);
45
46MoFEMErrorCode tri_type_2(const EntityHandle *conn, const int *split_edges,
47 const EntityHandle *edge_new_nodes,
48 EntityHandle *new_tris_conn);
49
51 const EntityHandle *edge_new_nodes,
52 EntityHandle *new_tris_conn);
53
54// PRISM
56 const BitRefEdges split_edges,
57 const EntityHandle *edge_new_nodes,
58 EntityHandle *new_prism_conn);
60 const BitRefEdges split_edges,
61 const EntityHandle *edge_new_nodes,
62 EntityHandle *new_prism_conn);
64 const BitRefEdges split_edges,
65 const EntityHandle *edge_new_nodes,
66 EntityHandle *new_prism_conn);
67
68// Quad
70 const EntityHandle *edge_new_nodes,
71 EntityHandle *new_quad_conn);
72
73} // namespace MoFEM
74
75#endif //__ENTITYREFINE_HPP__
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
std::bitset< BITREFEDGES_SIZE > BitRefEdges
Definition Types.hpp:34
implementation of Data Operators for Forces and Sources
Definition Common.hpp:10
int tet_type_3(const EntityHandle *conn, const int *split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
void tet_type_6(moab::Interface &moab, const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
MoFEMErrorCode hex_to_tet_type_3(const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
MoFEMErrorCode tri_type_2(const EntityHandle *conn, const int *split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_tris_conn)
MoFEMErrorCode quad_split_all_edges(const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_quad_conn)
void hex_to_tet_type_2(const EntityHandle *conn, EntityHandle *new_tets_conn)
MoFEMErrorCode prism_type_2(const EntityHandle *conn, const BitRefEdges split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_prism_conn)
MoFEMErrorCode tri_type_1(const EntityHandle *conn, const int split_edge, const EntityHandle edge_new_node, EntityHandle *new_tris_conn)
MoFEMErrorCode prism_type_3(const EntityHandle *conn, const BitRefEdges split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_prism_conn)
void hex_to_tet_type_1(const EntityHandle *conn, EntityHandle *new_tets_conn)
MoFEMErrorCode tri_type_3(const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_tris_conn)
MoFEMErrorCode prism_type_1(const EntityHandle *conn, const BitRefEdges split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_prism_conn)
int tet_type_2(const EntityHandle *conn, const int *split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
int tet_type_5(moab::Interface &moab, const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
int tet_type_4(const EntityHandle *conn, const int *split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
void tet_type_1(const EntityHandle *conn, const int split_edge, const EntityHandle edge_new_node, EntityHandle *new_tets_conn)