#include <ElementFragmentAlgorithm.h>
Public Member Functions | |
ElementFragmentAlgorithm (std::ostream &os) | |
Constructor. More... | |
~ElementFragmentAlgorithm () | |
unsigned int | add2DElements (std::vector< std::vector< unsigned int >> &quads) |
EFAElement * | add2DElement (const std::vector< unsigned int > &quad, unsigned int id) |
EFAElement * | add3DElement (const std::vector< unsigned int > &quad, unsigned int id) |
void | updateEdgeNeighbors () |
void | initCrackTipTopology () |
void | addElemEdgeIntersection (unsigned int elemid, unsigned int edgeid, double position) |
void | addElemNodeIntersection (unsigned int elemid, unsigned int nodeid) |
bool | addFragEdgeIntersection (unsigned int elemid, unsigned int frag_edge_id, double position) |
void | addElemFaceIntersection (unsigned int elemid, unsigned int faceid, const std::vector< unsigned int > &edgeid, const std::vector< double > &position) |
void | addFragFaceIntersection (unsigned int ElemID, unsigned int FragFaceID, const std::vector< unsigned int > &FragFaceEdgeID, const std::vector< double > &position) |
void | updatePhysicalLinksAndFragments () |
void | updateTopology (bool mergeUncutVirtualEdges=true) |
void | reset () |
void | clearAncestry () |
void | restoreFragmentInfo (EFAElement *const elem, const EFAElement *const from_elem) |
void | createChildElements () |
void | connectFragments (bool mergeUncutVirtualEdges) |
void | sanityCheck () |
void | updateCrackTipElements () |
void | printMesh () |
void | error (const std::string &error_string) |
const std::vector< EFAElement * > & | getChildElements () |
const std::vector< EFAElement * > & | getParentElements () |
const std::vector< EFANode * > & | getNewNodes () |
const std::set< EFAElement * > & | getCrackTipElements () |
const std::map< unsigned int, EFANode * > & | getPermanentNodes () |
const std::map< unsigned int, EFANode * > & | getTempNodes () |
const std::map< unsigned int, EFANode * > & | getEmbeddedNodes () |
EFAElement * | getElemByID (unsigned int id) |
unsigned int | getElemIdByNodes (unsigned int *node_id) |
void | clearPotentialIsolatedNodes () |
Private Attributes | |
std::ostream & | _ostream |
std::map< unsigned int, EFANode * > | _permanent_nodes |
std::map< unsigned int, EFANode * > | _embedded_nodes |
std::map< unsigned int, EFANode * > | _temp_nodes |
std::map< unsigned int, EFANode * > | _embedded_permanent_nodes |
std::map< unsigned int, EFAElement * > | _elements |
std::set< EFAElement * > | _crack_tip_elements |
std::vector< EFANode * > | _new_nodes |
std::vector< EFANode * > | _deleted_nodes |
std::vector< EFAElement * > | _child_elements |
std::vector< EFAElement * > | _parent_elements |
std::map< EFANode *, std::set< EFAElement * > > | _inverse_connectivity |
Definition at line 19 of file ElementFragmentAlgorithm.h.
ElementFragmentAlgorithm::ElementFragmentAlgorithm | ( | std::ostream & | os | ) |
ElementFragmentAlgorithm::~ElementFragmentAlgorithm | ( | ) |
Definition at line 32 of file ElementFragmentAlgorithm.C.
EFAElement * ElementFragmentAlgorithm::add2DElement | ( | const std::vector< unsigned int > & | quad, |
unsigned int | id | ||
) |
Definition at line 102 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::buildEFAMesh(), and TEST().
unsigned int ElementFragmentAlgorithm::add2DElements | ( | std::vector< std::vector< unsigned int >> & | quads | ) |
Definition at line 64 of file ElementFragmentAlgorithm.C.
Referenced by case1Common(), case2Mesh(), case5Mesh(), and TEST().
EFAElement * ElementFragmentAlgorithm::add3DElement | ( | const std::vector< unsigned int > & | quad, |
unsigned int | id | ||
) |
Definition at line 133 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::buildEFAMesh(), case6Mesh(), and case7Mesh().
void ElementFragmentAlgorithm::addElemEdgeIntersection | ( | unsigned int | elemid, |
unsigned int | edgeid, | ||
double | position | ||
) |
Definition at line 202 of file ElementFragmentAlgorithm.C.
Referenced by case1Common(), case2Intersections(), XFEM::markCutEdgesByGeometry(), XFEM::markCutEdgesByState(), and TEST().
void ElementFragmentAlgorithm::addElemFaceIntersection | ( | unsigned int | elemid, |
unsigned int | faceid, | ||
const std::vector< unsigned int > & | edgeid, | ||
const std::vector< double > & | position | ||
) |
Definition at line 251 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::markCutFacesByGeometry(), and TEST().
Definition at line 218 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::markCutEdgesByGeometry().
bool ElementFragmentAlgorithm::addFragEdgeIntersection | ( | unsigned int | elemid, |
unsigned int | frag_edge_id, | ||
double | position | ||
) |
Definition at line 235 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::markCutEdgesByGeometry(), XFEM::markCutEdgesByState(), and TEST().
void ElementFragmentAlgorithm::addFragFaceIntersection | ( | unsigned int | ElemID, |
unsigned int | FragFaceID, | ||
const std::vector< unsigned int > & | FragFaceEdgeID, | ||
const std::vector< double > & | position | ||
) |
Definition at line 271 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::markCutFacesByGeometry().
void ElementFragmentAlgorithm::clearAncestry | ( | ) |
Definition at line 350 of file ElementFragmentAlgorithm.C.
Referenced by TEST().
void ElementFragmentAlgorithm::clearPotentialIsolatedNodes | ( | ) |
Definition at line 600 of file ElementFragmentAlgorithm.C.
Referenced by updateTopology().
void ElementFragmentAlgorithm::connectFragments | ( | bool | mergeUncutVirtualEdges | ) |
Definition at line 423 of file ElementFragmentAlgorithm.C.
Referenced by updateTopology().
void ElementFragmentAlgorithm::createChildElements | ( | ) |
Definition at line 400 of file ElementFragmentAlgorithm.C.
Referenced by updateTopology().
void ElementFragmentAlgorithm::error | ( | const std::string & | error_string | ) |
|
inline |
Definition at line 78 of file ElementFragmentAlgorithm.h.
Referenced by XFEM::cutMeshWithEFA(), and TEST().
|
inline |
Definition at line 81 of file ElementFragmentAlgorithm.h.
Referenced by XFEM::cutMeshWithEFA(), XFEM::storeCrackTipOriginAndDirection(), and TEST().
EFAElement * ElementFragmentAlgorithm::getElemByID | ( | unsigned int | id | ) |
Definition at line 568 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::buildEFAMesh(), XFEM::getEFAElem2D(), and XFEM::getEFAElem3D().
Definition at line 577 of file ElementFragmentAlgorithm.C.
Definition at line 84 of file ElementFragmentAlgorithm.h.
Referenced by TEST().
|
inline |
Definition at line 80 of file ElementFragmentAlgorithm.h.
Referenced by XFEM::cutMeshWithEFA().
|
inline |
Definition at line 79 of file ElementFragmentAlgorithm.h.
Referenced by XFEM::cutMeshWithEFA(), and TEST().
Definition at line 82 of file ElementFragmentAlgorithm.h.
Referenced by TEST().
Definition at line 83 of file ElementFragmentAlgorithm.h.
Referenced by TEST().
void ElementFragmentAlgorithm::initCrackTipTopology | ( | ) |
Definition at line 194 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::buildEFAMesh(), and TEST().
void ElementFragmentAlgorithm::printMesh | ( | ) |
Definition at line 482 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::cutMeshWithEFA(), sanityCheck(), and TEST().
void ElementFragmentAlgorithm::reset | ( | ) |
Definition at line 318 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::buildEFAMesh().
void ElementFragmentAlgorithm::restoreFragmentInfo | ( | EFAElement *const | elem, |
const EFAElement *const | from_elem | ||
) |
Definition at line 393 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::buildEFAMesh().
void ElementFragmentAlgorithm::sanityCheck | ( | ) |
Definition at line 440 of file ElementFragmentAlgorithm.C.
Referenced by updateTopology().
void ElementFragmentAlgorithm::updateCrackTipElements | ( | ) |
Definition at line 452 of file ElementFragmentAlgorithm.C.
Referenced by updateTopology().
void ElementFragmentAlgorithm::updateEdgeNeighbors | ( | ) |
Definition at line 171 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::buildEFAMesh(), case1Common(), case2Mesh(), case5Mesh(), case6Mesh(), case7Mesh(), and TEST().
void ElementFragmentAlgorithm::updatePhysicalLinksAndFragments | ( | ) |
Definition at line 281 of file ElementFragmentAlgorithm.C.
Referenced by case1Common(), case2Intersections(), XFEM::cutMeshWithEFA(), and TEST().
void ElementFragmentAlgorithm::updateTopology | ( | bool | mergeUncutVirtualEdges = true | ) |
Definition at line 293 of file ElementFragmentAlgorithm.C.
Referenced by XFEM::cutMeshWithEFA(), and TEST().
|
private |
Definition at line 40 of file ElementFragmentAlgorithm.h.
Referenced by clearAncestry(), clearPotentialIsolatedNodes(), connectFragments(), createChildElements(), getChildElements(), printMesh(), reset(), updateCrackTipElements(), and updateTopology().
|
private |
Definition at line 37 of file ElementFragmentAlgorithm.h.
Referenced by createChildElements(), getCrackTipElements(), initCrackTipTopology(), reset(), updateCrackTipElements(), and updatePhysicalLinksAndFragments().
|
private |
Definition at line 39 of file ElementFragmentAlgorithm.h.
|
private |
Definition at line 36 of file ElementFragmentAlgorithm.h.
Referenced by add2DElement(), add2DElements(), add3DElement(), addElemEdgeIntersection(), addElemFaceIntersection(), addElemNodeIntersection(), addFragEdgeIntersection(), clearAncestry(), createChildElements(), getElemByID(), getElemIdByNodes(), initCrackTipTopology(), printMesh(), reset(), updateEdgeNeighbors(), updatePhysicalLinksAndFragments(), and ~ElementFragmentAlgorithm().
Definition at line 33 of file ElementFragmentAlgorithm.h.
Referenced by addElemEdgeIntersection(), addElemFaceIntersection(), addFragEdgeIntersection(), getEmbeddedNodes(), printMesh(), updatePhysicalLinksAndFragments(), and ~ElementFragmentAlgorithm().
Definition at line 35 of file ElementFragmentAlgorithm.h.
Referenced by addElemNodeIntersection(), printMesh(), and ~ElementFragmentAlgorithm().
|
private |
Definition at line 42 of file ElementFragmentAlgorithm.h.
Referenced by add2DElement(), add2DElements(), add3DElement(), clearAncestry(), connectFragments(), reset(), and updateEdgeNeighbors().
|
private |
Definition at line 38 of file ElementFragmentAlgorithm.h.
Referenced by clearAncestry(), clearPotentialIsolatedNodes(), getNewNodes(), reset(), and updateTopology().
|
private |
Definition at line 30 of file ElementFragmentAlgorithm.h.
Referenced by printMesh(), and sanityCheck().
|
private |
Definition at line 41 of file ElementFragmentAlgorithm.h.
Referenced by clearAncestry(), createChildElements(), getParentElements(), printMesh(), reset(), updateCrackTipElements(), and updateTopology().
Definition at line 32 of file ElementFragmentAlgorithm.h.
Referenced by add2DElement(), add2DElements(), add3DElement(), addElemNodeIntersection(), clearAncestry(), clearPotentialIsolatedNodes(), connectFragments(), getPermanentNodes(), printMesh(), reset(), updateTopology(), and ~ElementFragmentAlgorithm().
Definition at line 34 of file ElementFragmentAlgorithm.h.
Referenced by clearAncestry(), connectFragments(), createChildElements(), getTempNodes(), printMesh(), reset(), sanityCheck(), and ~ElementFragmentAlgorithm().