|
OOFEM 3.0
|
#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 |
| 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 void | 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) |
Protected Attributes | |
| TipInfo | mTipInfo |
| reference to the associated enrichment item | |
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.
References mEIindex.
Referenced by oofem::EnrFrontDoNothing::EnrFrontDoNothing().
|
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, mTipInfo, oofem::FloatArray::times(), and oofem::Vec2().
Referenced by oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncAt(), oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncDerivAt(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncDerivAt(), and oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncDerivAt().
|
inline |
Definition at line 120 of file enrichmentfront.h.
References giveClassName().
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inline |
Definition at line 132 of file enrichmentfront.h.
References mTipInfo.
Referenced by oofem::XfemStructuralElementInterface::giveIntersectionsTouchingCrack(), oofem::GnuplotExportModule::outputXFEM(), oofem::PLCrackPrescribedDir::propagateInterface(), oofem::PLCZdamageRadius::propagateInterface(), oofem::PLHoopStressCirc::propagateInterface(), oofem::PLMaterialForce::propagateInterface(), oofem::PLnodeRadius::propagateInterface(), oofem::PLPrincipalStrain::propagateInterface(), and oofem::XfemStructureManager::tipsHaveOppositeDirection().
|
pure virtual |
|
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::EnrFrontDoNothing, oofem::EnrFrontExtend, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, oofem::EnrFrontLinearBranchFuncRadius, and oofem::EnrFrontReduceFront.
|
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(), mTipInfo, oofem::NodeEnr_END_TIP, oofem::NodeEnr_START_AND_END_TIP, and oofem::NodeEnr_START_TIP.
Referenced by oofem::EnrFrontCohesiveBranchFuncOneEl::MarkNodesAsFront(), oofem::EnrFrontIntersection::MarkNodesAsFront(), oofem::EnrFrontLinearBranchFuncOneEl::MarkNodesAsFront(), and oofem::EnrFrontLinearBranchFuncRadius::MarkNodesAsFront().
|
inlinevirtual |
Reimplemented in oofem::EnrFrontIntersection.
Definition at line 130 of file enrichmentfront.h.
Referenced by oofem::PLCrackPrescribedDir::propagateInterface(), oofem::PLCZdamageRadius::propagateInterface(), oofem::PLHoopStressCirc::propagateInterface(), oofem::PLMaterialForce::propagateInterface(), oofem::PLnodeRadius::propagateInterface(), and oofem::PLPrincipalStrain::propagateInterface().
|
inlinevirtual |
Definition at line 133 of file enrichmentfront.h.
References mTipInfo.
| int oofem::EnrichmentFront::mEIindex |
Definition at line 136 of file enrichmentfront.h.
Referenced by EnrichmentFront(), and oofem::PLCZdamageRadius::propagateInterface().
|
protected |
reference to the associated enrichment item
Definition at line 139 of file enrichmentfront.h.
Referenced by computeCrackTangent(), oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncAt(), oofem::EnrFrontIntersection::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncAt(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncAt(), oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncDerivAt(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncDerivAt(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncDerivAt(), oofem::EnrFrontCohesiveBranchFuncOneEl::evaluateEnrFuncJumps(), oofem::EnrFrontLinearBranchFuncOneEl::evaluateEnrFuncJumps(), oofem::EnrFrontLinearBranchFuncRadius::evaluateEnrFuncJumps(), giveTipInfo(), oofem::EnrFrontDoNothing::MarkNodesAsFront(), oofem::EnrFrontLinearBranchFuncRadius::MarkNodesAsFront(), MarkTipElementNodesAsFront(), and setTipInfo().