#include <EFAElement.h>
Public Member Functions | |
EFAElement (unsigned int eid, unsigned int n_nodes) | |
virtual | ~EFAElement () |
unsigned int | id () const |
unsigned int | numNodes () const |
void | setNode (unsigned int node_id, EFANode *node) |
EFANode * | getNode (unsigned int node_id) const |
const std::vector< EFANode * > & | getNodes () const |
bool | containsNode (EFANode *node) const |
void | printNodes (std::ostream &ostream) const |
EFANode * | createLocalNodeFromGlobalNode (const EFANode *global_node) const |
EFANode * | getGlobalNodeFromLocalNode (const EFANode *local_node) const |
unsigned int | getLocalNodeIndex (EFANode *node) const |
void | setCrackTipSplit () |
bool | isCrackTipSplit () const |
unsigned int | numCrackTipNeighbors () const |
unsigned int | getCrackTipNeighbor (unsigned int index) const |
void | addCrackTipNeighbor (EFAElement *neighbor_elem) |
EFAElement * | getParent () const |
EFAElement * | getChild (unsigned int child_id) const |
void | setParent (EFAElement *parent) |
unsigned int | numChildren () const |
void | addChild (EFAElement *child) |
void | clearParentAndChildren () |
void | findGeneralNeighbors (const std::map< EFANode *, std::set< EFAElement *>> &InverseConnectivity) |
EFAElement * | getGeneralNeighbor (unsigned int index) const |
unsigned int | numGeneralNeighbors () const |
virtual unsigned int | numFragments () const =0 |
virtual bool | isPartial () const =0 |
virtual void | getNonPhysicalNodes (std::set< EFANode *> &non_physical_nodes) const =0 |
virtual void | switchNode (EFANode *new_node, EFANode *old_node, bool descend_to_parent)=0 |
virtual void | switchEmbeddedNode (EFANode *new_node, EFANode *old_node)=0 |
virtual void | updateFragmentNode ()=0 |
virtual void | getMasterInfo (EFANode *node, std::vector< EFANode *> &master_nodes, std::vector< double > &master_weights) const =0 |
virtual unsigned int | numInteriorNodes () const =0 |
virtual unsigned int | getNeighborIndex (const EFAElement *neighbor_elem) const =0 |
virtual void | clearNeighbors ()=0 |
virtual void | setupNeighbors (std::map< EFANode *, std::set< EFAElement *>> &InverseConnectivityMap)=0 |
virtual void | neighborSanityCheck () const =0 |
virtual void | initCrackTip (std::set< EFAElement *> &CrackTipElements)=0 |
virtual bool | shouldDuplicateForCrackTip (const std::set< EFAElement *> &CrackTipElements)=0 |
virtual bool | shouldDuplicateCrackTipSplitElement (const std::set< EFAElement *> &CrackTipElements)=0 |
virtual bool | shouldDuplicateForPhantomCorner ()=0 |
virtual bool | willCrackTipExtend (std::vector< unsigned int > &split_neighbors) const =0 |
virtual bool | isCrackTipElement () const =0 |
virtual unsigned int | getNumCuts () const =0 |
virtual bool | isFinalCut () const =0 |
virtual void | updateFragments (const std::set< EFAElement *> &CrackTipElements, std::map< unsigned int, EFANode *> &EmbeddedNodes)=0 |
virtual void | fragmentSanityCheck (unsigned int n_old_frag_edges, unsigned int n_old_frag_cuts) const =0 |
virtual void | restoreFragment (const EFAElement *const from_elem)=0 |
virtual void | createChild (const std::set< EFAElement *> &CrackTipElements, std::map< unsigned int, EFAElement *> &Elements, std::map< unsigned int, EFAElement *> &newChildElements, std::vector< EFAElement *> &ChildElements, std::vector< EFAElement *> &ParentElements, std::map< unsigned int, EFANode *> &TempNodes)=0 |
virtual void | removePhantomEmbeddedNode ()=0 |
virtual void | connectNeighbors (std::map< unsigned int, EFANode *> &PermanentNodes, std::map< unsigned int, EFANode *> &TempNodes, std::map< EFANode *, std::set< EFAElement *>> &InverseConnectivityMap, bool merge_phantom_edges)=0 |
virtual void | printElement (std::ostream &ostream) const =0 |
Protected Member Functions | |
void | mergeNodes (EFANode *&childNode, EFANode *&childOfNeighborNode, EFAElement *childOfNeighborElem, std::map< unsigned int, EFANode *> &PermanentNodes, std::map< unsigned int, EFANode *> &TempNodes) |
Protected Attributes | |
unsigned int | _id |
unsigned int | _num_nodes |
std::vector< EFANode * > | _nodes |
std::vector< EFANode * > | _local_nodes |
EFAElement * | _parent |
std::vector< EFAElement * > | _children |
bool | _crack_tip_split_element |
std::vector< unsigned int > | _crack_tip_neighbors |
std::vector< EFAElement * > | _general_neighbors |
Definition at line 19 of file EFAElement.h.
Definition at line 16 of file EFAElement.C.
|
virtual |
Definition at line 25 of file EFAElement.C.
void EFAElement::addChild | ( | EFAElement * | child | ) |
Definition at line 195 of file EFAElement.C.
void EFAElement::addCrackTipNeighbor | ( | EFAElement * | neighbor_elem | ) |
Definition at line 149 of file EFAElement.C.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::updateEdgeNeighbors().
void EFAElement::clearParentAndChildren | ( | ) |
Definition at line 201 of file EFAElement.C.
Referenced by ElementFragmentAlgorithm::clearAncestry().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::connectFragments().
bool EFAElement::containsNode | ( | EFANode * | node | ) | const |
Definition at line 52 of file EFAElement.C.
Referenced by EFAElement2D::branchingSplit(), EFAElement2D::getEdgeNodeParametricCoordinate(), EFAElement3D::getFaceNodeParametricCoordinates(), EFAElement2D::getMasterInfo(), EFAElement3D::getMasterInfo(), EFAElement2D::getNonPhysicalNodes(), EFAElement3D::getNonPhysicalNodes(), EFAElement2D::getPhantomNodeOnEdge(), EFAElement3D::getPhantomNodeOnFace(), EFAElement2D::getTipEmbeddedNode(), EFAElement2D::isPartial(), EFAElement3D::isPartial(), EFAElement2D::printElement(), EFAElement2D::removePhantomEmbeddedNode(), EFAElement3D::removePhantomEmbeddedNode(), and EFAElement3D::willCrackTipExtend().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::createChildElements().
Definition at line 70 of file EFAElement.C.
Referenced by EFAElement2D::createChild(), EFAElement3D::createChild(), and EFAElement3D::EFAElement3D().
void EFAElement::findGeneralNeighbors | ( | const std::map< EFANode *, std::set< EFAElement *>> & | InverseConnectivity | ) |
Definition at line 208 of file EFAElement.C.
Referenced by EFAElement2D::setupNeighbors(), and EFAElement3D::setupNeighbors().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
EFAElement * EFAElement::getChild | ( | unsigned int | child_id | ) | const |
Definition at line 174 of file EFAElement.C.
Referenced by EFAElement2D::connectNeighbors(), EFAElement3D::connectNeighbors(), EFAElement2D::switchNode(), and EFAElement3D::switchNode().
Definition at line 140 of file EFAElement.C.
EFAElement * EFAElement::getGeneralNeighbor | ( | unsigned int | index | ) | const |
Definition at line 230 of file EFAElement.C.
Referenced by EFAElement2D::switchNode(), and EFAElement3D::switchNode().
Definition at line 95 of file EFAElement.C.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by XFEM::getEFANodeCoords().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by addCrackTipNeighbor().
Definition at line 46 of file EFAElement.C.
Referenced by EFAElement3D::addFaceEdgeCut(), EFAElement2D::branchingSplit(), ElementFragmentAlgorithm::clearAncestry(), EFAElement2D::createChild(), EFAElement2D::getEdgeNodes(), ElementFragmentAlgorithm::getElemIdByNodes(), EFAElement2D::getMasterInfo(), EFAElement3D::getMasterInfo(), EFAElement3D::getNeighborFaceNodeID(), EFAElement2D::getPhantomNodeOnEdge(), EFAElement3D::getPhantomNodeOnFace(), EFAElement2D::getTipEmbeddedNode(), EFAElement3D::getTipEmbeddedNodes(), and EFAElement2D::overlaysElement().
|
inline |
Definition at line 44 of file EFAElement.h.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
EFAElement * EFAElement::getParent | ( | ) | const |
Definition at line 168 of file EFAElement.C.
unsigned int EFAElement::id | ( | ) | const |
Definition at line 28 of file EFAElement.C.
Referenced by XFEM::cutMeshWithEFA(), EFAElement3D::EFAElement3D(), ElementFragmentAlgorithm::getElemIdByNodes(), EFAElement3D::getNeighborEdgeIndex(), EFAElement2D::getNeighborIndex(), EFAElement3D::getNeighborIndex(), EFAElement2D::printElement(), EFAElement3D::printElement(), EFAElement2D::willCrackTipExtend(), and EFAElement3D::willCrackTipExtend().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::updateCrackTipElements().
bool EFAElement::isCrackTipSplit | ( | ) | const |
Definition at line 128 of file EFAElement.C.
Referenced by EFAElement2D::getCrackTipSplitElementID(), EFAElement2D::initCrackTip(), and EFAElement3D::initCrackTip().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by XFEM::getCutPlane(), XFEM::getPhysicalVolumeFraction(), XFEM::isElemCut(), and XFEM::storeCrackTipOriginAndDirection().
|
protected |
Definition at line 242 of file EFAElement.C.
Referenced by EFAElement2D::connectNeighbors(), and EFAElement3D::connectNeighbors().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::updateEdgeNeighbors().
unsigned int EFAElement::numChildren | ( | ) | const |
Definition at line 189 of file EFAElement.C.
Referenced by EFAElement2D::connectNeighbors(), EFAElement3D::connectNeighbors(), EFAElement2D::switchNode(), and EFAElement3D::switchNode().
unsigned int EFAElement::numCrackTipNeighbors | ( | ) | const |
Definition at line 134 of file EFAElement.C.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
unsigned int EFAElement::numGeneralNeighbors | ( | ) | const |
Definition at line 236 of file EFAElement.C.
Referenced by EFAElement2D::switchNode(), and EFAElement3D::switchNode().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
unsigned int EFAElement::numNodes | ( | ) | const |
Definition at line 34 of file EFAElement.C.
Referenced by ElementFragmentAlgorithm::clearAncestry(), EFAElement2D::createChild(), EFAElement3D::createChild(), ElementFragmentAlgorithm::getElemIdByNodes(), EFAElement2D::overlaysElement(), EFAElement2D::restoreFragment(), and EFAElement3D::restoreFragment().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::printMesh().
void EFAElement::printNodes | ( | std::ostream & | ostream | ) | const |
Definition at line 61 of file EFAElement.C.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::restoreFragmentInfo().
void EFAElement::setCrackTipSplit | ( | ) |
Definition at line 122 of file EFAElement.C.
Definition at line 40 of file EFAElement.C.
Referenced by ElementFragmentAlgorithm::add2DElement(), ElementFragmentAlgorithm::add2DElements(), ElementFragmentAlgorithm::add3DElement(), EFAElement2D::createChild(), EFAElement3D::createChild(), and EFAElement3D::createFaces().
void EFAElement::setParent | ( | EFAElement * | parent | ) |
Definition at line 183 of file EFAElement.C.
Referenced by EFAElement2D::createChild(), and EFAElement3D::createChild().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::updateEdgeNeighbors().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Implemented in EFAElement3D, and EFAElement2D.
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by mergeNodes(), EFAElement2D::switchNode(), and EFAElement3D::switchNode().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::connectFragments().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
Referenced by ElementFragmentAlgorithm::updatePhysicalLinksAndFragments().
|
pure virtual |
Implemented in EFAElement3D, and EFAElement2D.
|
protected |
Definition at line 32 of file EFAElement.h.
Referenced by addChild(), clearParentAndChildren(), EFAElement2D::createChild(), EFAElement3D::createChild(), getChild(), and numChildren().
|
protected |
Definition at line 34 of file EFAElement.h.
Referenced by addCrackTipNeighbor(), getCrackTipNeighbor(), numCrackTipNeighbors(), EFAElement2D::willCrackTipExtend(), and EFAElement3D::willCrackTipExtend().
|
protected |
Definition at line 33 of file EFAElement.h.
Referenced by EFAElement2D::initCrackTip(), EFAElement3D::initCrackTip(), isCrackTipSplit(), setCrackTipSplit(), EFAElement2D::shouldDuplicateForPhantomCorner(), EFAElement3D::shouldDuplicateForPhantomCorner(), EFAElement2D::willCrackTipExtend(), and EFAElement3D::willCrackTipExtend().
|
protected |
Definition at line 36 of file EFAElement.h.
Referenced by EFAElement2D::clearNeighbors(), EFAElement3D::clearNeighbors(), findGeneralNeighbors(), getGeneralNeighbor(), numGeneralNeighbors(), EFAElement2D::setupNeighbors(), EFAElement3D::setupNeighbors(), EFAElement2D::shouldDuplicateCrackTipSplitElement(), and EFAElement3D::shouldDuplicateCrackTipSplitElement().
|
protected |
Definition at line 27 of file EFAElement.h.
Referenced by EFAElement2D::addEdgeCut(), EFAElement3D::addFaceEdgeCut(), EFAElement2D::addFragmentEdgeCut(), EFAElement2D::connectNeighbors(), EFAElement3D::connectNeighbors(), EFAElement2D::fragmentSanityCheck(), EFAElement3D::getNeighborEdgeIndex(), EFAElement2D::getNeighborIndex(), EFAElement3D::getNeighborIndex(), id(), EFAElement2D::initCrackTip(), EFAElement3D::initCrackTip(), mergeNodes(), EFAElement2D::printElement(), EFAElement3D::printElement(), printNodes(), EFAElement2D::restoreFragment(), EFAElement3D::restoreFragment(), EFAElement2D::setupNeighbors(), EFAElement3D::setupNeighbors(), EFAElement2D::updateFragments(), EFAElement3D::updateFragments(), EFAElement2D::willCrackTipExtend(), and EFAElement3D::willCrackTipExtend().
|
protected |
Definition at line 30 of file EFAElement.h.
Referenced by EFAElement3D::EFAElement3D(), EFAElement2D::~EFAElement2D(), and EFAElement3D::~EFAElement3D().
|
protected |
Definition at line 29 of file EFAElement.h.
Referenced by EFAElement2D::addNodeCut(), EFAElement2D::connectNeighbors(), EFAElement3D::connectNeighbors(), containsNode(), EFAElement2D::createChild(), EFAElement3D::createChild(), EFAElement2D::createEdges(), EFAElement3D::createFaces(), createLocalNodeFromGlobalNode(), EFAElement3D::EFAElement3D(), findGeneralNeighbors(), EFAElement2D::getCommonNodes(), EFAElement3D::getCommonNodes(), getGlobalNodeFromLocalNode(), getLocalNodeIndex(), EFAElement2D::getMasterInfo(), EFAElement3D::getMasterInfo(), getNode(), getNodes(), EFAElement2D::getNonPhysicalNodes(), EFAElement3D::getNonPhysicalNodes(), EFAElement2D::isPartial(), EFAElement3D::isPartial(), EFAElement2D::overlaysElement(), EFAElement2D::printElement(), printNodes(), EFAElement2D::restoreFragment(), EFAElement3D::restoreFragment(), setNode(), EFAElement2D::switchNode(), EFAElement3D::switchNode(), and EFAElement2D::updateFragmentNode().
|
protected |
Definition at line 28 of file EFAElement.h.
Referenced by EFAElement2D::connectNeighbors(), EFAElement3D::connectNeighbors(), EFAElement2D::createChild(), EFAElement3D::createChild(), EFAElement2D::createEdges(), EFAElement3D::createFaces(), EFAElement3D::EFAElement3D(), findGeneralNeighbors(), getLocalNodeIndex(), EFAElement3D::getMasterInfo(), numNodes(), EFAElement2D::printElement(), printNodes(), EFAElement2D::setLocalCoordinates(), EFAElement3D::setLocalCoordinates(), EFAElement2D::switchNode(), EFAElement3D::switchNode(), and EFAElement2D::updateFragmentNode().
|
protected |
Definition at line 31 of file EFAElement.h.
Referenced by clearParentAndChildren(), EFAElement2D::connectNeighbors(), EFAElement3D::connectNeighbors(), getParent(), mergeNodes(), setParent(), EFAElement2D::switchNode(), and EFAElement3D::switchNode().