Mesh Oriented datABase
(version 5.5.1)
An array-based unstructured mesh library
SphereDecomp.hpp
Go to the documentation of this file.
1
#ifndef SPHERE_DECOMP_HPP
2
#define SPHERE_DECOMP_HPP
3
4
#include "
moab/Interface.hpp
"
5
6
class
SphereDecomp
7
{
8
public
:
9
SphereDecomp
(
moab::Interface
* impl );
10
11
moab::ErrorCode
build_sphere_mesh
(
const
char
* sphere_radii_tag_name,
moab::EntityHandle
* hex_set = NULL );
12
13
private
:
14
//! compute subdivision vertices on entities of specified dimension
15
moab::ErrorCode
compute_nodes
(
const
int
dim
);
16
17
//! subdivide tets based on subdiv vertices, returning in lists according
18
//! to whether they're inside or outside spheres
19
moab::ErrorCode
build_hexes
( std::vector< moab::EntityHandle >& sphere_hexes,
20
std::vector< moab::EntityHandle >& interstic_hexes );
21
22
//! subdivide an individual tet
23
moab::ErrorCode
subdivide_tet
(
moab::EntityHandle
tet,
24
std::vector< moab::EntityHandle >& sphere_hexes,
25
std::vector< moab::EntityHandle >& interstic_hexes );
26
27
//! retrieve the subdivision vertices for a given entity in a given tet,
28
//! placing them in the array oriented wrt the tet
29
moab::ErrorCode
retrieve_subdiv_verts
(
moab::EntityHandle
tet,
30
moab::EntityHandle
this_ent,
31
const
moab::EntityHandle
* tet_conn,
32
const
int
dim
,
33
moab::EntityHandle
* subdiv_verts );
34
35
//! tag used to hold sphere radii (assigned to vertices)
36
moab::Tag
sphereRadiiTag
;
37
38
//! used to store subdiv vertices for a given d>0 entity
39
moab::Tag
subdivVerticesTag
;
40
41
//! MOAB interface ptr
42
moab::Interface
*
mbImpl
;
43
};
44
#endif
tools
SphereDecomp.hpp
Generated on Mon Dec 23 2024 02:04:35 for Mesh Oriented datABase by
1.9.1.