OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::EnrichmentFront Class Referenceabstract

Class EnrichmentFront: describes the edge or tip of an XFEM enrichment. More...

#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
 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 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)
 Several enrichment fronts enrich all nodes in the tip element. More...
 

Protected Attributes

TipInfo mTipInfo
 reference to the associated enrichment item More...
 

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

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

Definition at line 93 of file enrichmentfront.h.

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

Definition at line 94 of file enrichmentfront.h.

Member Function Documentation

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

Definition at line 120 of file enrichmentfront.h.

virtual void oofem::EnrichmentFront::evaluateEnrFuncDerivAt ( std::vector< FloatArray > &  oEnrFuncDeriv,
const EfInput iEfInput,
const FloatArray iGradLevelSet 
) const
pure virtual
virtual void oofem::EnrichmentFront::evaluateEnrFuncJumps ( std::vector< double > &  oEnrFuncJumps,
GaussPoint iGP,
int  iNodeInd,
bool  iGPLivesOnCurrentCrack,
const double &  iNormalSignDist 
) const
pure virtual
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::EnrFrontLinearBranchFuncRadius, oofem::EnrFrontIntersection, oofem::EnrFrontLinearBranchFuncOneEl, oofem::EnrFrontDoNothing, oofem::EnrFrontExtend, and oofem::EnrFrontReduceFront.

Referenced by oofem::GeometryBasedEI::updateNodeEnrMarker().

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
virtual void oofem::EnrichmentFront::setTipInfo ( const TipInfo iTipInfo)
inlinevirtual

Definition at line 133 of file enrichmentfront.h.

Referenced by oofem::ListBasedEI::updateNodeEnrMarker().

Member Data Documentation

int oofem::EnrichmentFront::mEIindex

Definition at line 136 of file enrichmentfront.h.

Referenced by oofem::PLCZdamageRadius::propagateInterface().


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

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:35 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011