OOFEM 3.0
Loading...
Searching...
No Matches
oofem::EnrichmentFront Class Referenceabstract

#include <enrichmentfront.h>

Inheritance diagram for oofem::EnrichmentFront:
Collaboration diagram for oofem::EnrichmentFront:

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 TipInfogiveTipInfo () 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

Detailed Description

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.

  • Apply branch functions at a crack tip for the element containing the crack tip.
  • Apply branch functions on nodes within a certain radius from the crack tip.
  • Exclude nodes touched by the front.

The desired behavior is obtained by choosing a suitable EnrichmentFront.

Author
Erik Svenning
Date
Feb 14, 2014

Definition at line 90 of file enrichmentfront.h.

Constructor & Destructor Documentation

◆ EnrichmentFront()

oofem::EnrichmentFront::EnrichmentFront ( int iEIindex = 0)
inline

Definition at line 93 of file enrichmentfront.h.

References mEIindex.

Referenced by oofem::EnrFrontDoNothing::EnrFrontDoNothing().

◆ ~EnrichmentFront()

virtual oofem::EnrichmentFront::~EnrichmentFront ( )
inlinevirtual

Definition at line 94 of file enrichmentfront.h.

Member Function Documentation

◆ computeCrackTangent()

◆ errorInfo()

std::string oofem::EnrichmentFront::errorInfo ( const char * func) const
inline

Definition at line 120 of file enrichmentfront.h.

References giveClassName().

◆ evaluateEnrFuncAt()

virtual void oofem::EnrichmentFront::evaluateEnrFuncAt ( std ::vector< double > & oEnrFunc,
const EfInput & iEfInput ) const
pure virtual

◆ evaluateEnrFuncDerivAt()

virtual void oofem::EnrichmentFront::evaluateEnrFuncDerivAt ( std ::vector< FloatArray > & oEnrFuncDeriv,
const EfInput & iEfInput,
const FloatArray & iGradLevelSet ) const
pure virtual

◆ evaluateEnrFuncJumps()

virtual void oofem::EnrichmentFront::evaluateEnrFuncJumps ( std ::vector< double > & oEnrFuncJumps,
GaussPoint & iGP,
int iNodeInd,
bool iGPLivesOnCurrentCrack,
const double & iNormalSignDist ) const
pure virtual

◆ giveClassName()

◆ giveInputRecord()

◆ giveInputRecordName()

◆ giveMaxNumEnrichments()

◆ giveNumEnrichments()

◆ giveSupportRadius()

◆ giveTipInfo()

◆ initializeFrom()

◆ MarkNodesAsFront()

virtual void oofem::EnrichmentFront::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 )
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.

◆ MarkTipElementNodesAsFront()

void oofem::EnrichmentFront::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

◆ propagationIsAllowed()

◆ setTipInfo()

virtual void oofem::EnrichmentFront::setTipInfo ( const TipInfo & iTipInfo)
inlinevirtual

Definition at line 133 of file enrichmentfront.h.

References mTipInfo.

Member Data Documentation

◆ mEIindex

int oofem::EnrichmentFront::mEIindex

◆ mTipInfo


The documentation for this class was generated from the following files:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011