OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class EnrichmentFront: describes the edge or tip of an XFEM enrichment. More...
#include <enrichmentfront.h>
Public Member Functions | |
EnrichmentFront (int iEIindex=0) | |
virtual | ~EnrichmentFront () |
virtual void | MarkNodesAsFront (std::unordered_map< int, NodeEnrichmentType > &ioNodeEnrMarkerMap, XfemManager &ixFemMan, const std::unordered_map< int, double > &iLevelSetNormalDirMap, const std::unordered_map< int, double > &iLevelSetTangDirMap, const TipInfo &iTipInfo)=0 |
MarkNodesAsFront: Intput: -ioNodeEnrMarker: A vector with the same size as the number of nodes in the mesh where the nodes corresponding to interior XFEM enrichments are marked with 1, other entries are zero. More... | |
virtual int | giveNumEnrichments (const DofManager &iDMan) const =0 |
virtual int | giveMaxNumEnrichments () const =0 |
virtual void | evaluateEnrFuncAt (std::vector< double > &oEnrFunc, const EfInput &iEfInput) const =0 |
virtual void | evaluateEnrFuncDerivAt (std::vector< FloatArray > &oEnrFuncDeriv, const EfInput &iEfInput, const FloatArray &iGradLevelSet) const =0 |
virtual void | evaluateEnrFuncJumps (std::vector< double > &oEnrFuncJumps, GaussPoint &iGP, int iNodeInd, bool iGPLivesOnCurrentCrack, const double &iNormalSignDist) const =0 |
std::string | errorInfo (const char *func) const |
virtual const char * | giveClassName () const =0 |
virtual const char * | giveInputRecordName () const =0 |
virtual IRResultType | initializeFrom (InputRecord *ir)=0 |
virtual void | giveInputRecord (DynamicInputRecord &input)=0 |
virtual double | giveSupportRadius () const =0 |
virtual bool | propagationIsAllowed () const |
const TipInfo & | giveTipInfo () const |
virtual void | setTipInfo (const TipInfo &iTipInfo) |
void | computeCrackTangent (FloatArray &oTangent, FloatArray &oNormal, bool &oFlipTangent, const EfInput &iEfInput) const |
Public Attributes | |
int | mEIindex |
Protected Member Functions | |
void | MarkTipElementNodesAsFront (std::unordered_map< int, NodeEnrichmentType > &ioNodeEnrMarkerMap, XfemManager &ixFemMan, const std::unordered_map< int, double > &iLevelSetNormalDirMap, const std::unordered_map< int, double > &iLevelSetTangDirMap, const TipInfo &iTipInfo) |
Several enrichment fronts enrich all nodes in the tip element. More... | |
Protected Attributes | |
TipInfo | mTipInfo |
reference to the associated enrichment item More... | |
Class EnrichmentFront: describes the edge or tip of an XFEM enrichment.
The purpose is to add a different treatment of the front than the "interior" enrichments. We may, e.g.
The desired behavior is obtained by choosing a suitable EnrichmentFront.
Definition at line 90 of file enrichmentfront.h.
|
inline |
Definition at line 93 of file enrichmentfront.h.
|
inlinevirtual |
Definition at line 94 of file enrichmentfront.h.
void oofem::EnrichmentFront::computeCrackTangent | ( | FloatArray & | oTangent, |
FloatArray & | oNormal, | ||
bool & | oFlipTangent, | ||
const EfInput & | iEfInput | ||
) | const |
Definition at line 70 of file enrichmentfront.C.
References oofem::FloatArray::at(), oofem::FloatArray::dotProduct(), oofem::EfInput::mLocalTangDir, oofem::TipInfo::mTangDir, mTipInfo, and oofem::FloatArray::times().
Referenced by oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncAt(), oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncDerivAt(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncDerivAt(), and oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncDerivAt().
|
inline |
Definition at line 120 of file enrichmentfront.h.
|
pure virtual |
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontExtend, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, oofem::EnrFrontReduceFront, and oofem::EnrFrontDoNothing.
Referenced by oofem::GeometryBasedEI::evaluateEnrFuncAt(), and oofem::GeometryBasedEI::evaluateEnrFuncInNode().
|
pure virtual |
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontExtend, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, oofem::EnrFrontReduceFront, and oofem::EnrFrontDoNothing.
Referenced by oofem::GeometryBasedEI::evaluateEnrFuncDerivAt().
|
pure virtual |
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontExtend, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, oofem::EnrFrontReduceFront, and oofem::EnrFrontDoNothing.
Referenced by oofem::GeometryBasedEI::evaluateEnrFuncJumps().
|
pure virtual |
|
pure virtual |
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontExtend, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontReduceFront, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, and oofem::EnrFrontDoNothing.
Referenced by oofem::GeometryBasedEI::appendInputRecords(), and oofem::Delamination::appendInputRecords().
|
pure virtual |
|
pure virtual |
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontExtend, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, oofem::EnrFrontReduceFront, and oofem::EnrFrontDoNothing.
Referenced by oofem::EnrichmentItem::giveNumberOfEnrDofs().
|
pure virtual |
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontExtend, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, oofem::EnrFrontReduceFront, and oofem::EnrFrontDoNothing.
Referenced by oofem::EnrichmentItem::giveNumDofManEnrichments().
|
pure virtual |
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontExtend, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontReduceFront, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, and oofem::EnrFrontDoNothing.
Referenced by oofem::GeometryBasedEI::giveBoundingSphere().
|
inline |
Definition at line 132 of file enrichmentfront.h.
Referenced by oofem::XfemStructuralElementInterface::giveIntersectionsTouchingCrack(), oofem::GnuplotExportModule::outputXFEM(), oofem::PLPrincipalStrain::propagateInterface(), oofem::PLCZdamageRadius::propagateInterface(), oofem::PLMaterialForce::propagateInterface(), oofem::PLHoopStressCirc::propagateInterface(), oofem::PLCrackPrescribedDir::propagateInterface(), oofem::PLnodeRadius::propagateInterface(), and oofem::XfemStructureManager::tipsHaveOppositeDirection().
|
pure virtual |
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontExtend, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontReduceFront, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, and oofem::EnrFrontDoNothing.
Referenced by oofem::GeometryBasedEI::instanciateYourself(), and oofem::Delamination::instanciateYourself().
|
pure virtual |
MarkNodesAsFront: Intput: -ioNodeEnrMarker: A vector with the same size as the number of nodes in the mesh where the nodes corresponding to interior XFEM enrichments are marked with 1, other entries are zero.
Output: -ioNodeEnrMarker: Modifies the vector by marking tip nodes as 2, meaning that they should get special treatment. May also modify the set of nodes enriched by the interior enrichment.
Implemented in oofem::EnrFrontCohesiveBranchFuncOneEl, oofem::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, oofem::EnrFrontDoNothing, oofem::EnrFrontExtend, and oofem::EnrFrontReduceFront.
Referenced by oofem::GeometryBasedEI::updateNodeEnrMarker().
|
protected |
Several enrichment fronts enrich all nodes in the tip element.
This help function accomplishes that.
Definition at line 43 of file enrichmentfront.C.
References oofem::IntArray::at(), oofem::Element::giveDofManArray(), oofem::XfemManager::giveDomain(), oofem::SpatialLocalizer::giveElementContainingPoint(), oofem::IntArray::giveSize(), oofem::Domain::giveSpatialLocalizer(), oofem::TipInfo::mGlobalCoord, oofem::TipInfo::mTipIndex, mTipInfo, oofem::NodeEnr_END_TIP, oofem::NodeEnr_START_AND_END_TIP, and oofem::NodeEnr_START_TIP.
Referenced by oofem::EnrFrontIntersection::MarkNodesAsFront(), oofem::EnrFrontLinearBranchFuncOneEl::MarkNodesAsFront(), oofem::EnrFrontLinearBranchFuncRadius::MarkNodesAsFront(), and oofem::EnrFrontCohesiveBranchFuncOneEl::MarkNodesAsFront().
|
inlinevirtual |
Reimplemented in oofem::EnrFrontIntersection.
Definition at line 130 of file enrichmentfront.h.
Referenced by oofem::PLPrincipalStrain::propagateInterface(), oofem::PLCZdamageRadius::propagateInterface(), oofem::PLMaterialForce::propagateInterface(), oofem::PLHoopStressCirc::propagateInterface(), oofem::PLCrackPrescribedDir::propagateInterface(), and oofem::PLnodeRadius::propagateInterface().
|
inlinevirtual |
Definition at line 133 of file enrichmentfront.h.
Referenced by oofem::ListBasedEI::updateNodeEnrMarker().
int oofem::EnrichmentFront::mEIindex |
Definition at line 136 of file enrichmentfront.h.
Referenced by oofem::PLCZdamageRadius::propagateInterface().
|
protected |
reference to the associated enrichment item
Definition at line 139 of file enrichmentfront.h.
Referenced by computeCrackTangent(), oofem::EnrFrontIntersection::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncAt(), oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncDerivAt(), oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncDerivAt(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncDerivAt(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncJumps(), oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncJumps(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncJumps(), oofem::EnrFrontLinearBranchFuncRadius::MarkNodesAsFront(), and MarkTipElementNodesAsFront().