v0.14.0 |
Create interface from given surface and insert flat prisms in-between. More...
#include <src/interfaces/PrismInterface.hpp>
Public Member Functions | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
PrismInterface (const MoFEM::Core &core) | |
~PrismInterface ()=default | |
destructor More... | |
MoFEMErrorCode | getSides (const int msId, const CubitBCType cubit_bc_type, const BitRefLevel mesh_bit_level, const bool recursive, int verb=QUIET) |
Store tetrahedra from each side of the interface separately in two child meshsets of the parent meshset. More... | |
MoFEMErrorCode | getSides (const int msId, const CubitBCType cubit_bc_type, const BitRefLevel mesh_bit_level, Range seed_side, const bool recursive, int verb=QUIET) |
Store tetrahedra from each side of the interface separately in two child meshsets of the parent meshset. More... | |
MoFEMErrorCode | getSides (const EntityHandle sideset, const BitRefLevel mesh_bit_level, const bool recursive, int verb=QUIET) |
Store tetrahedra from each side of the interface in two child meshsets of the parent meshset. More... | |
MoFEMErrorCode | getSides (const EntityHandle sideset, const BitRefLevel mesh_bit_level, Range seed_side, const bool recursive, int verb=QUIET) |
Store tetrahedra from each side of the interface in two child meshsets of the parent meshset. More... | |
MoFEMErrorCode | findFacesWithThreeNodesOnInternalSurfaceSkin (const EntityHandle sideset, const BitRefLevel mesh_bit_level, const bool recursive, Range &faces_with_three_nodes_on_front, int verb=QUIET) |
Find triangles which have three nodes on internal surface skin. More... | |
MoFEMErrorCode | splitSides (const EntityHandle meshset, const BitRefLevel &bit, const int msId, const CubitBCType cubit_bc_type, const bool add_interface_entities, const bool recursive=false, int verb=QUIET) |
Split nodes and other entities of tetrahedra on both sides of the interface and insert flat prisms in-between. More... | |
MoFEMErrorCode | splitSides (const EntityHandle meshset, const BitRefLevel &bit, const EntityHandle sideset, const bool add_interface_entities, const bool recursive=false, int verb=QUIET) |
Split nodes and other entities of tetrahedra on both sides of the interface and insert flat prisms in-between. More... | |
MoFEMErrorCode | splitSides (const EntityHandle meshset, const BitRefLevel &bit, const BitRefLevel &inhered_from_bit_level, const BitRefLevel &inhered_from_bit_level_mask, const EntityHandle sideset, const bool add_interface_entities, const bool recursive=false, int verb=QUIET) |
Split nodes and other entities of tetrahedra on both sides of the interface and insert flat prisms in-between. 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 |
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... | |
Create interface from given surface and insert flat prisms in-between.
Definition at line 23 of file PrismInterface.hpp.
MoFEM::PrismInterface::PrismInterface | ( | const MoFEM::Core & | core | ) |
Definition at line 17 of file PrismInterface.cpp.
|
default |
destructor
MoFEMErrorCode MoFEM::PrismInterface::findFacesWithThreeNodesOnInternalSurfaceSkin | ( | const EntityHandle | sideset, |
const BitRefLevel | mesh_bit_level, | ||
const bool | recursive, | ||
Range & | faces_with_three_nodes_on_front, | ||
int | verb = QUIET |
||
) |
Find triangles which have three nodes on internal surface skin.
Internal surface skin is a set of all edges on the boundary of a given surface inside the body. This set of edges is also called the surface front. If a triangle has three nodes on the surface front, none of these nodes can be split. Therefore, such a triangle cannot be split and should be removed from the surface.
sideset | meshset with surface |
mesh_bit_level | bit ref level of the volume mesh |
recursive | if true search in sub-meshsets |
faces_with_three_nodes_on_front | returned faces |
verb | verbosity level |
Definition at line 393 of file PrismInterface.cpp.
MoFEMErrorCode MoFEM::PrismInterface::getSides | ( | const EntityHandle | sideset, |
const BitRefLevel | mesh_bit_level, | ||
const bool | recursive, | ||
int | verb = QUIET |
||
) |
Store tetrahedra from each side of the interface in two child meshsets of the parent meshset.
Additional third child meshset contains nodes which can be split and skin edges
sideset | parent meshset with the surface |
mesh_bit_level | interface is added on this bit level |
recursive | if true parent meshset is searched recursively |
verb | verbosity level |
Definition at line 387 of file PrismInterface.cpp.
MoFEMErrorCode MoFEM::PrismInterface::getSides | ( | const EntityHandle | sideset, |
const BitRefLevel | mesh_bit_level, | ||
Range | seed_side, | ||
const bool | recursive, | ||
int | verb = QUIET |
||
) |
Store tetrahedra from each side of the interface in two child meshsets of the parent meshset.
Additional third child meshset contains nodes which can be split and skin edges
sideset | parent meshset with the surface |
mesh_bit_level | interface is added on this bit level |
seed_side | use seed to decide which side to choose first |
recursive | if true parent meshset is searched recursively |
verb | verbosity level |
Definition at line 64 of file PrismInterface.cpp.
MoFEMErrorCode MoFEM::PrismInterface::getSides | ( | const int | msId, |
const CubitBCType | cubit_bc_type, | ||
const BitRefLevel | mesh_bit_level, | ||
const bool | recursive, | ||
int | verb = QUIET |
||
) |
Store tetrahedra from each side of the interface separately in two child meshsets of the parent meshset.
Additional third child meshset contains nodes which can be split and skin edges
msId | Id of meshset |
cubit_bc_type | type of meshset (NODESET, SIDESET or BLOCKSET and more) |
mesh_bit_level | interface is added on this bit level |
recursive | if true parent meshset is searched recursively |
verb | verbosity level |
Definition at line 56 of file PrismInterface.cpp.
MoFEMErrorCode MoFEM::PrismInterface::getSides | ( | const int | msId, |
const CubitBCType | cubit_bc_type, | ||
const BitRefLevel | mesh_bit_level, | ||
Range | seed_side, | ||
const bool | recursive, | ||
int | verb = QUIET |
||
) |
Store tetrahedra from each side of the interface separately in two child meshsets of the parent meshset.
Additional third child meshset contains nodes which can be split and skin edges
msId | Id of meshset |
cubit_bc_type | type of meshset (NODESET, SIDESET or BLOCKSET and more) |
mesh_bit_level | interface is added on this bit level |
seed_side | use seed to decide which side to choose first |
recursive | if true parent meshset is searched recursively |
verb | verbosity level |
Definition at line 31 of file PrismInterface.cpp.
|
virtual |
Implements MoFEM::UnknownInterface.
Definition at line 11 of file PrismInterface.cpp.
MoFEMErrorCode MoFEM::PrismInterface::splitSides | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
const BitRefLevel & | inhered_from_bit_level, | ||
const BitRefLevel & | inhered_from_bit_level_mask, | ||
const EntityHandle | sideset, | ||
const bool | add_interface_entities, | ||
const bool | recursive = false , |
||
int | verb = QUIET |
||
) |
Split nodes and other entities of tetrahedra on both sides of the interface and insert flat prisms in-between.
meshset | volume meshset containing 3D entities around the interface |
bit | bit ref level on which new entities will be stored |
inhered_from_bit_level | inherit nodes and other entities form this bit level |
inhered_from_bit_level_mask | corresponding mask |
sideset | meshset with surface |
add_interface_entities | if true add prism elements at interface |
recursive | if true parent meshset is searched recursively |
verb | verbosity level |
Definition at line 558 of file PrismInterface.cpp.
MoFEMErrorCode MoFEM::PrismInterface::splitSides | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
const EntityHandle | sideset, | ||
const bool | add_interface_entities, | ||
const bool | recursive = false , |
||
int | verb = QUIET |
||
) |
Split nodes and other entities of tetrahedra on both sides of the interface and insert flat prisms in-between.
meshset | volume meshset containing 3D entities around the interface |
bit | bit ref level on which new entities will be stored |
sideset | meshset with surface |
add_interface_entities | if true add prism elements at interface |
recursive | if true parent meshset is searched recursively |
verb | verbosity level |
Definition at line 546 of file PrismInterface.cpp.
MoFEMErrorCode MoFEM::PrismInterface::splitSides | ( | const EntityHandle | meshset, |
const BitRefLevel & | bit, | ||
const int | msId, | ||
const CubitBCType | cubit_bc_type, | ||
const bool | add_interface_entities, | ||
const bool | recursive = false , |
||
int | verb = QUIET |
||
) |
Split nodes and other entities of tetrahedra on both sides of the interface and insert flat prisms in-between.
meshset | volume meshset containing 3D entities around the interface |
bit | bit ref level on which new entities will be stored |
msId | meshset ID of the surface |
cubit_bc_type | type of meshset (NODESET, SIDESET or BLOCKSET and more) |
add_interface_entities | if true add prism elements at interface |
recursive | if true parent meshset is searched recursively |
verb | verbosity level |
Definition at line 519 of file PrismInterface.cpp.
MoFEM::Core& MoFEM::PrismInterface::cOre |
Definition at line 28 of file PrismInterface.hpp.