v0.14.0 |
TetGen interface. More...
#include <src/interfaces/TetGenInterface.hpp>
Public Types | |
enum | tetGenNodesTypes { RIDGEVERTEX = 0, FREESEGVERTEX = 1, FREEFACETVERTEX = 2, FREEVOLVERTEX = 3 } |
typedef std::map< EntityHandle, unsigned long > | moabTetGen_Map |
typedef std::map< unsigned long, EntityHandle > | tetGenMoab_Map |
typedef std::map< int, Range > | idxRange_Map |
Public Member Functions | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
TetGenInterface (const MoFEM::Core &core) | |
MoFEMErrorCode | inData (Range &ents, tetgenio &in, moabTetGen_Map &moab_tetgen_map, tetGenMoab_Map &tetgen_moab_map, Tag th=NULL) |
create TetGen data structure form range of moab entities More... | |
MoFEMErrorCode | setGeomData (tetgenio &in, moabTetGen_Map &moab_tetgen_map, tetGenMoab_Map &tetgen_moab_map, std::map< int, Range > &type_ents) |
set point tags and type More... | |
MoFEMErrorCode | outData (tetgenio &in, tetgenio &out, moabTetGen_Map &moab_tetgen_map, tetGenMoab_Map &tetgen_moab_map, Range *ents=NULL, bool id_in_tags=false, bool error_if_created=false, bool assume_first_nodes_the_same=false, Tag th=nullptr) |
get entities for TetGen data structure More... | |
MoFEMErrorCode | outData (tetgenio &in, tetgenio &out, moabTetGen_Map &moab_tetgen_map, tetGenMoab_Map &tetgen_moab_map, BitRefLevel bit, bool id_in_tags=false, bool error_if_created=false, bool assume_first_nodes_the_same=false, Tag th=nullptr) |
get entities for TetGen data structure More... | |
MoFEMErrorCode | setFaceData (std::vector< std::pair< Range, int > > &markers, tetgenio &in, moabTetGen_Map &moab_tetgen_map, tetGenMoab_Map &tetgen_moab_map) |
set markers to faces More... | |
MoFEMErrorCode | getTriangleMarkers (tetGenMoab_Map &tetgen_moab_map, tetgenio &out, Range *ents=NULL, idxRange_Map *ents_map=NULL, bool only_non_zero=true) |
get markers to faces More... | |
MoFEMErrorCode | setRegionData (std::vector< std::pair< EntityHandle, int > > ®ions, tetgenio &in, Tag th=NULL) |
set region data to tetrahedral More... | |
MoFEMErrorCode | getRegionData (tetGenMoab_Map &tetgen_moab_map, tetgenio &out, Range *ents=NULL, idxRange_Map *ents_map=NULL) |
get region data to tetrahedral More... | |
MoFEMErrorCode | tetRahedralize (char switches[], tetgenio &in, tetgenio &out) |
run tetgen More... | |
MoFEMErrorCode | loadPoly (char file_name[], tetgenio &in) |
load poly file More... | |
MoFEMErrorCode | checkPlanar_Trinagle (double coords[], bool *result, const double eps=1e-9) |
MoFEMErrorCode | groupPlanar_Triangle (Range &tris, std::vector< Range > &sorted, const double eps=1e-9, Tag th=NULL) |
MoFEMErrorCode | groupRegion_Triangle (Range &tris, std::vector< std::vector< Range > > &sorted, const double eps=1e-9) |
Group surface triangles in planar regions. More... | |
MoFEMErrorCode | makePolygonFacet (Range &ents, Range &polygons, bool reduce_edges=false, Range *not_reducable_nodes=NULL, const double eps=1e-9, Tag th=NULL) |
Public Member Functions inherited from MoFEM::UnknownInterface | |
template<class IFACE > | |
MoFEMErrorCode | registerInterface (bool error_if_registration_failed=true) |
Register interface. More... | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE *&iface) const |
Get interface reference to pointer of interface. More... | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE **const iface) const |
Get interface pointer to pointer of interface. More... | |
template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0> | |
IFACE | getInterface () const |
Get interface pointer to pointer of interface. More... | |
template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0> | |
IFACE | getInterface () const |
Get reference to interface. More... | |
template<class IFACE > | |
IFACE * | getInterface () const |
Function returning pointer to interface. More... | |
virtual | ~UnknownInterface ()=default |
Public Attributes | |
MoFEM::Core & | cOre |
Additional Inherited Members | |
Static Public Member Functions inherited from MoFEM::UnknownInterface | |
static MoFEMErrorCode | getLibVersion (Version &version) |
Get library version. More... | |
static MoFEMErrorCode | getFileVersion (moab::Interface &moab, Version &version) |
Get database major version. More... | |
static MoFEMErrorCode | setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD)) |
Get database major version. More... | |
static MoFEMErrorCode | getInterfaceVersion (Version &version) |
Get database major version. More... | |
TetGen interface.
Definition at line 23 of file TetGenInterface.hpp.
typedef std::map<int, Range> MoFEM::TetGenInterface::idxRange_Map |
Definition at line 34 of file TetGenInterface.hpp.
typedef std::map<EntityHandle, unsigned long> MoFEM::TetGenInterface::moabTetGen_Map |
Definition at line 32 of file TetGenInterface.hpp.
typedef std::map<unsigned long, EntityHandle> MoFEM::TetGenInterface::tetGenMoab_Map |
Definition at line 33 of file TetGenInterface.hpp.
Enumerator | |
---|---|
RIDGEVERTEX | |
FREESEGVERTEX | |
FREEFACETVERTEX | |
FREEVOLVERTEX |
Definition at line 49 of file TetGenInterface.hpp.
|
inline |
Definition at line 29 of file TetGenInterface.hpp.
MoFEMErrorCode MoFEM::TetGenInterface::checkPlanar_Trinagle | ( | double | coords[], |
bool * | result, | ||
const double | eps = 1e-9 |
||
) |
Definition at line 662 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::getRegionData | ( | tetGenMoab_Map & | tetgen_moab_map, |
tetgenio & | out, | ||
Range * | ents = NULL , |
||
idxRange_Map * | ents_map = NULL |
||
) |
MoFEMErrorCode MoFEM::TetGenInterface::getTriangleMarkers | ( | tetGenMoab_Map & | tetgen_moab_map, |
tetgenio & | out, | ||
Range * | ents = NULL , |
||
idxRange_Map * | ents_map = NULL , |
||
bool | only_non_zero = true |
||
) |
get markers to faces
markers | data structure with markers |
in | tetgen data structure (look to TetGen user manual) |
moab_tetgen_map | mapping MoAB to TetGen entities |
tetgen_moab_map | mapping TetGen to MoAB entities |
Definition at line 509 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::groupPlanar_Triangle | ( | Range & | tris, |
std::vector< Range > & | sorted, | ||
const double | eps = 1e-9 , |
||
Tag | th = NULL |
||
) |
Definition at line 697 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::groupRegion_Triangle | ( | Range & | tris, |
std::vector< std::vector< Range > > & | sorted, | ||
const double | eps = 1e-9 |
||
) |
Group surface triangles in planar regions.
tris | input triangles |
sorted | output sorted planar faces |
eps | tolerance |
Definition at line 812 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::inData | ( | Range & | ents, |
tetgenio & | in, | ||
moabTetGen_Map & | moab_tetgen_map, | ||
tetGenMoab_Map & | tetgen_moab_map, | ||
Tag | th = NULL |
||
) |
create TetGen data structure form range of moab entities
Move mesh to TetGen data structures
ents | range of entities (tetrahedrons or nodes) |
in | tetgen data structure (look to TetGen user manual) |
moab_tetgen_map | mapping moab to TetGen entities |
tetgen_moab_map | mapping tetgen to moab entities |
Definition at line 38 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::loadPoly | ( | char | file_name[], |
tetgenio & | in | ||
) |
MoFEMErrorCode MoFEM::TetGenInterface::makePolygonFacet | ( | Range & | ents, |
Range & | polygons, | ||
bool | reduce_edges = false , |
||
Range * | not_reducable_nodes = NULL , |
||
const double | eps = 1e-9 , |
||
Tag | th = NULL |
||
) |
make planar polygon facet
ents | surface triangles |
polygons | output list of polygons |
reduce_edges | reduce edges if on the line |
not_reducable_nodes | do not reduce node on edge if in this range |
eps | tolerance |
Definition at line 842 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::outData | ( | tetgenio & | in, |
tetgenio & | out, | ||
moabTetGen_Map & | moab_tetgen_map, | ||
tetGenMoab_Map & | tetgen_moab_map, | ||
BitRefLevel | bit, | ||
bool | id_in_tags = false , |
||
bool | error_if_created = false , |
||
bool | assume_first_nodes_the_same = false , |
||
Tag | th = nullptr |
||
) |
get entities for TetGen data structure
ents | range of entities (tetrahedrons or nodes) |
in | tetgen data structure (look to TetGen user manual) |
moab_tetgen_map | mapping MoAB to TetGen entities |
tetgen_moab_map | mapping TetGen to MoAB entities |
ents | rerun entities which are in TetGen data structure |
bit | set level to created entities |
error_if_created | throw error if node need to be created |
Definition at line 439 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::outData | ( | tetgenio & | in, |
tetgenio & | out, | ||
moabTetGen_Map & | moab_tetgen_map, | ||
tetGenMoab_Map & | tetgen_moab_map, | ||
Range * | ents = NULL , |
||
bool | id_in_tags = false , |
||
bool | error_if_created = false , |
||
bool | assume_first_nodes_the_same = false , |
||
Tag | th = nullptr |
||
) |
get entities for TetGen data structure
ents | range of entities (tetrahedrons or nodes) |
in | tetgen data structure (look to TetGen user manual) |
moab_tetgen_map | mapping MoAB to TetGen entities |
tetgen_moab_map | mapping TetGen to moab entities |
ents | rerun entities which are in TetGen Data structure |
id_in_tags | use tags as entity handles, if that is a case use tag to find MoAB vertex id |
error_if_created | throw error if node need to be created |
Definition at line 246 of file TetGenInterface.cpp.
|
virtual |
Implements MoFEM::UnknownInterface.
Definition at line 31 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::setFaceData | ( | std::vector< std::pair< Range, int > > & | markers, |
tetgenio & | in, | ||
moabTetGen_Map & | moab_tetgen_map, | ||
tetGenMoab_Map & | tetgen_moab_map | ||
) |
set markers to faces
markers | data structure with markers |
in | tetgen data structure (look to TetGen user manual) |
moab_tetgen_map | mapping MoAB to TetGen entities |
tetgen_moab_map | mapping TetGen to MoAB entities |
Definition at line 454 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::setGeomData | ( | tetgenio & | in, |
moabTetGen_Map & | moab_tetgen_map, | ||
tetGenMoab_Map & | tetgen_moab_map, | ||
std::map< int, Range > & | type_ents | ||
) |
set point tags and type
Set type of entity, look in TetGen manual for details
Definition at line 197 of file TetGenInterface.cpp.
MoFEMErrorCode MoFEM::TetGenInterface::setRegionData | ( | std::vector< std::pair< EntityHandle, int > > & | regions, |
tetgenio & | in, | ||
Tag | th = NULL |
||
) |
MoFEMErrorCode MoFEM::TetGenInterface::tetRahedralize | ( | char | switches[], |
tetgenio & | in, | ||
tetgenio & | out | ||
) |
MoFEM::Core& MoFEM::TetGenInterface::cOre |
Definition at line 28 of file TetGenInterface.hpp.