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 
7 {
8  public:
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
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
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)
37 
38  //! used to store subdiv vertices for a given d>0 entity
40 
41  //! MOAB interface ptr
43 };
44 #endif