v0.14.0 |
Mesh refinement interface. More...
#include <src/interfaces/MeshRefinement.hpp>
Classes | |
struct | SetParent |
Public Member Functions | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
MeshRefinement (const MoFEM::Core &core) | |
virtual | ~MeshRefinement ()=default |
MoFEMErrorCode | addVerticesInTheMiddleOfEdges (const EntityHandle meshset, const BitRefLevel &bit, const bool recursive=false, int verb=QUIET, EntityHandle start_v=0) |
make vertices in the middle of edges in meshset and add them to refinement levels defined by bit More... | |
MoFEMErrorCode | addVerticesInTheMiddleOfEdges (const Range &edges, const BitRefLevel &bit, int verb=QUIET, EntityHandle start_v=0) |
make vertices in the middle of edges in meshset and add them to Refinement levels defined by bit More... | |
MoFEMErrorCode | refineTets (const EntityHandle meshset, const BitRefLevel &bit, int verb=QUIET, const bool debug=false) |
refine TET in the meshset More... | |
MoFEMErrorCode | refineTets (const Range &tets, const BitRefLevel &bit, int verb=QUIET, const bool debug=false) |
refine TET in the meshset More... | |
MoFEMErrorCode | refineTetsHangingNodes (const Range &tets, const BitRefLevel &bit, int verb=QUIET, const bool debug=false) |
refine TET in the meshset More... | |
MoFEMErrorCode | refineTetsHangingNodes (const EntityHandle meshset, const BitRefLevel &bit, int verb=QUIET, const bool debug=false) |
refine TET in the meshset More... | |
MoFEMErrorCode | refinePrisms (const EntityHandle meshset, const BitRefLevel &bit, int verb=QUIET) |
refine PRISM in the meshset More... | |
MoFEMErrorCode | refineMeshset (const EntityHandle meshset, const BitRefLevel &bit, const bool recursive=false, int verb=QUIET) |
refine meshset, i.e. add child of refined entities to meshset More... | |
MoFEMErrorCode | refineTris (const EntityHandle meshset, const BitRefLevel &bit, int verb=QUIET, const bool debug=false) |
refine triangles in the meshset More... | |
MoFEMErrorCode | refineTris (const Range &tris, const BitRefLevel &bit, int verb=QUIET, const bool debug=false) |
refine TRI in the meshset More... | |
MoFEMErrorCode | refineTrisHangingNodes (const EntityHandle meshset, const BitRefLevel &bit, int verb=QUIET, const bool debug=false) |
refine TRI in the meshset More... | |
MoFEMErrorCode | refineTrisHangingNodes (const Range &tris, const BitRefLevel &bit, int verb=QUIET, const bool debug=false) |
refine TRI in the meshset More... | |
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 |
Private Types | |
using | SetEdgeBitsFun = boost::function< MoFEMErrorCode(moab::Interface &moab, RefEntity_multiIndex_view_by_ordered_parent_entity &ref_parent_ents_view, EntityHandle tet, BitRefEdges &parent_edges_bit, EntityHandle *edge_new_nodes, int *split_edges)> |
Functions setting edges for refinemnt on enetity level. More... | |
Private Member Functions | |
MoFEMErrorCode | refineTets (const Range &tets, const BitRefLevel &bit, SetEdgeBitsFun set_edge_bits, int verb, const bool debug) |
refine TET in the meshset More... | |
MoFEMErrorCode | refineTris (const Range &tris, const BitRefLevel &bit, SetEdgeBitsFun set_edge_bits, int verb, const bool debug) |
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... | |
Mesh refinement interface.
Currently this class is abstraction to Core interface. In future should be outsourced as independent interface.
Not working on partitioned meshes
Need to be implemented as a stand alone interface not as a part of core structure which should be only basic database
If outsourced, class member functions should follow name convention
Spelling mistakes will be corrected with names fix to follow name convetion
Definition at line 26 of file MeshRefinement.hpp.
|
private |
Functions setting edges for refinemnt on enetity level.
Definition at line 203 of file MeshRefinement.hpp.
MoFEM::MeshRefinement::MeshRefinement | ( | const MoFEM::Core & | core | ) |
Definition at line 39 of file MeshRefinement.cpp.
|
virtualdefault |
MoFEMErrorCode MoFEM::MeshRefinement::addVerticesInTheMiddleOfEdges | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
const bool | recursive = false , |
||
int | verb = QUIET , |
||
EntityHandle | start_v = 0 |
||
) |
make vertices in the middle of edges in meshset and add them to refinement levels defined by bit
Takes entities fromm meshsets and queried recursively (get entities from meshsets in meshsets, usually have to be used for CUBIT meshset). If meshset does not contain any edges, get entities in dimension 3 and get edge adjacencies.
EntityHandle | meshset |
BitRefLevel | bitLevel |
recursive | If true, meshsets containing meshsets are queried recursively. Returns the contents of meshsets, but not the meshsets themselves if true. |
Definition at line 42 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::addVerticesInTheMiddleOfEdges | ( | const Range & | edges, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
EntityHandle | start_v = 0 |
||
) |
make vertices in the middle of edges in meshset and add them to Refinement levels defined by bit
Takes entities from meshsets and queried recursively (get entities from meshsets in meshsets, usually have to be used for CUBIT meshset). If meshset does not contain any edges, get entities in dimension 3 and get edge adjacencies.
Range | consisting edges for refine |
BitRefLevel | bitLevel |
recursive | If true, meshsets containing meshsets are queried recursively. Returns the contents of meshsets, but not the meshsets themselves if true. |
Definition at line 96 of file MeshRefinement.cpp.
|
virtual |
Implements MoFEM::UnknownInterface.
Definition at line 33 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineMeshset | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
const bool | recursive = false , |
||
int | verb = QUIET |
||
) |
refine meshset, i.e. add child of refined entities to meshset
EntityHandle | meshset where to save the child refined entities |
BitRefLevel | bitLevel |
recursive | If true, meshsets containing meshsets are queried recursively. Returns the contents of meshsets, but not the meshsets themselves if true. |
Definition at line 904 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refinePrisms | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
int | verb = QUIET |
||
) |
refine PRISM in the meshset
EntityHandle | meshset |
BitRefLevel | bitLevel |
Definition at line 722 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineTets | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
const bool | debug = false |
||
) |
refine TET in the meshset
EntityHandle | meshset |
BitRefLevel | bitLevel |
verb | verbosity level |
Definition at line 197 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineTets | ( | const Range & | tets, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
const bool | debug = false |
||
) |
refine TET in the meshset
Range | of tets to refine |
BitRefLevel | bitLevel |
BitRefLevel | bitLevel |
verb | verbosity level |
Definition at line 244 of file MeshRefinement.cpp.
|
private |
refine TET in the meshset
Range | of tets to refine |
BitRefLevel | bitLevel |
verb | verbosity level |
Definition at line 325 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineTetsHangingNodes | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
const bool | debug = false |
||
) |
refine TET in the meshset
Range | of tets to refine |
BitRefLevel | bitLevel |
BitRefLevel | bitLevel |
verb | verbosity level |
Definition at line 313 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineTetsHangingNodes | ( | const Range & | tets, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
const bool | debug = false |
||
) |
refine TET in the meshset
Range | of tets to refine |
BitRefLevel | bitLevel |
BitRefLevel | bitLevel |
verb | verbosity level |
Definition at line 276 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineTris | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
const bool | debug = false |
||
) |
refine triangles in the meshset
EntityHandle | meshset |
BitRefLevel | bitLevel |
verb | verbosity level |
Definition at line 921 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineTris | ( | const Range & | tris, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
const bool | debug = false |
||
) |
refine TRI in the meshset
meshset | of entities to refine |
BitRefLevel | bit level of created entities |
verb | verbosity level |
Definition at line 933 of file MeshRefinement.cpp.
|
private |
Definition at line 1014 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineTrisHangingNodes | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
const bool | debug = false |
||
) |
refine TRI in the meshset
Range | of entities to refine |
BitRefLevel | bit level of created entities |
verb | verbosity level |
Definition at line 1002 of file MeshRefinement.cpp.
MoFEMErrorCode MoFEM::MeshRefinement::refineTrisHangingNodes | ( | const Range & | tris, |
const BitRefLevel & | bit, | ||
int | verb = QUIET , |
||
const bool | debug = false |
||
) |
refine TRI in the meshset
Range | of entities to refine |
BitRefLevel | bit level of created entities |
verb | verbosity level |
Definition at line 964 of file MeshRefinement.cpp.
MoFEM::Core& MoFEM::MeshRefinement::cOre |
Definition at line 31 of file MeshRefinement.hpp.