OOFEM 3.0
Loading...
Searching...
No Matches
oofem::GeometryBasedEI Class Reference

#include <geometrybasedei.h>

Inheritance diagram for oofem::GeometryBasedEI:
Collaboration diagram for oofem::GeometryBasedEI:

Public Member Functions

 GeometryBasedEI (int n, XfemManager *xm, Domain *aDomain)
virtual ~GeometryBasedEI ()
int instanciateYourself (DataReader &dr) override
void postInitialize () override
 Performs post initialization steps. Called after all components are created and initialized.
virtual void updateDofIdPool ()
void appendInputRecords (DynamicDataReader &oDR) override
const char * giveClassName () const override
const char * giveInputRecordName () const override
void updateGeometry () override
void updateNodeEnrMarker (XfemManager &ixFemMan) override
void updateLevelSets (XfemManager &ixFemMan)
void evaluateEnrFuncInNode (std ::vector< double > &oEnrFunc, const Node &iNode) const override
void evaluateEnrFuncAt (std ::vector< double > &oEnrFunc, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl) const override
void evaluateEnrFuncAt (std ::vector< double > &oEnrFunc, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl, const FloatArray &iN, const IntArray &iElNodes) const override
void evaluateEnrFuncDerivAt (std ::vector< FloatArray > &oEnrFuncDeriv, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl) const override
void evaluateEnrFuncDerivAt (std ::vector< FloatArray > &oEnrFuncDeriv, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl, const FloatArray &iN, const FloatMatrix &idNdX, const IntArray &iElNodes) const override
void evaluateEnrFuncJumps (std ::vector< double > &oEnrFuncJumps, int iNodeInd, GaussPoint &iGP, bool iGPLivesOnCurrentCrack) const
virtual void computeIntersectionPoints (std ::vector< FloatArray > &oIntersectionPoints, std ::vector< int > &oIntersectedEdgeInd, Element *element, std ::vector< double > &oMinDistArcPos) const
virtual void computeIntersectionPoints (std ::vector< FloatArray > &oIntersectionPoints, std ::vector< int > &oIntersectedEdgeInd, Element *element, const Triangle &iTri, std ::vector< double > &oMinDistArcPos) const
void writeVtkDebug () const override
void giveSubPolygon (std ::vector< FloatArray > &oPoints, const double &iXiStart, const double &iXiEnd) const
void propagateFronts (bool &oFrontsHavePropagated) override
bool giveElementTipCoord (FloatArray &oCoord, double &oArcPos, Element &iEl, const FloatArray &iElCenter) const override
void giveBoundingSphere (FloatArray &oCenter, double &oRadius) override
BasicGeometrygiveGeometry ()
void setGeometry (std ::unique_ptr< BasicGeometry > &&ipBasicGeometry)
Public Member Functions inherited from oofem::EnrichmentItem
 EnrichmentItem (int n, XfemManager *xm, Domain *aDomain)
 Constructor / destructor.
virtual ~EnrichmentItem ()
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
const IntArraygiveEnrichesDofsWithIdArray () const
int giveNumberOfEnrDofs () const
bool isElementEnriched (const Element *element) const
bool isDofManEnriched (const DofManager &iDMan) const
int giveNumDofManEnrichments (const DofManager &iDMan) const
virtual bool canModifyMaterial () const
virtual bool isMaterialModified (GaussPoint &iGP, Element &iEl, CrossSection *&opCS) const
virtual void updateGeometry (FailureCriteriaStatus *fc, TimeStep *tStep)
virtual void updateGeometry (TimeStep *tStep)
virtual bool hasPropagatingFronts () const
virtual bool hasInitiationCriteria ()
int giveStartOfDofIdPool () const
int giveEndOfDofIdPool () const
virtual int giveDofPoolSize () const
virtual void computeEnrichedDofManDofIdArray (IntArray &oDofIdArray, DofManager &iDMan)
virtual void giveEIDofIdArray (IntArray &answer) const
virtual void givePotentialEIDofIdArray (IntArray &answer) const
bool evalLevelSetNormalInNode (double &oLevelSet, int iNodeInd, const FloatArray &iGlobalCoord) const
bool evalLevelSetTangInNode (double &oLevelSet, int iNodeInd, const FloatArray &iGlobalCoord) const
bool evalNodeEnrMarkerInNode (double &oNodeEnrMarker, int iNodeInd) const
virtual void createEnrichedDofs ()
PropagationLawgivePropagationLaw ()
void setPropagationLaw (std::unique_ptr< PropagationLaw > ipPropagationLaw)
bool hasPropagationLaw ()
virtual void callGnuplotExportModule (GnuplotExportModule &iExpMod, TimeStep *tStep)
const std ::unordered_map< int, NodeEnrichmentType > & giveEnrNodeMap () const
EnrichmentFrontgiveEnrichmentFrontStart ()
void setEnrichmentFrontStart (std::unique_ptr< EnrichmentFront > ipEnrichmentFrontStart, bool iDeleteOld=true)
EnrichmentFrontgiveEnrichmentFrontEnd ()
void setEnrichmentFrontEnd (std::unique_ptr< EnrichmentFront > ipEnrichmentFrontEnd, bool iDeleteOld=true)
bool tipIsTouchingEI (const TipInfo &iTipInfo)
void setEnrichmentFunction (std::unique_ptr< EnrichmentFunction > ipEnrichmentFunc)
Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
virtual ~FEMComponent ()=default
 Virtual destructor.
DomaingiveDomain () const
virtual void setDomain (Domain *d)
int giveNumber () const
void setNumber (int num)
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
virtual void initializeFrom (InputRecord &ir, int priority)
virtual void initializeFinish ()
virtual void saveContext (DataStream &stream, ContextMode mode)
virtual void restoreContext (DataStream &stream, ContextMode mode)
virtual int checkConsistency ()
virtual void printOutputAt (FILE *file, TimeStep *tStep)
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging.
virtual InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Protected Attributes

std ::unique_ptr< BasicGeometrympBasicGeometry
Protected Attributes inherited from oofem::EnrichmentItem
std::unique_ptr< EnrichmentFunctionmpEnrichmentFunc
std::unique_ptr< EnrichmentFrontmpEnrichmentFrontStart
std::unique_ptr< EnrichmentFrontmpEnrichmentFrontEnd
int mEnrFrontIndex
 mEnrFrontIndex: nonzero if an enrichment front is present, zero otherwise.
std::unique_ptr< PropagationLawmpPropagationLaw
int mPropLawIndex
 mPropLawIndex: nonzero if a propagation law is present, zero otherwise.
bool mInheritBoundaryConditions
bool mInheritOrderedBoundaryConditions
int startOfDofIdPool
int endOfDofIdPool
IntArray mpEnrichesDofsWithIdArray
 Geometry associated with EnrichmentItem.
std ::unordered_map< int, double > mLevelSetNormalDirMap
std ::unordered_map< int, double > mLevelSetTangDirMap
std ::unordered_map< int, NodeEnrichmentTypemNodeEnrMarkerMap
IntArray mEIDofIdArray
bool mLevelSetsNeedUpdate
const double mLevelSetTol2
std::shared_ptr< InputRecordthisIr
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Additional Inherited Members

Static Public Member Functions inherited from oofem::EnrichmentItem
static double calcXiZeroLevel (const double &iQ1, const double &iQ2)
static void calcPolarCoord (double &oR, double &oTheta, const FloatArray &iOrigin, const FloatArray &iPos, const FloatArray &iN, const FloatArray &iT, const EfInput &iEfInput, bool iFlipTangent)
Protected Member Functions inherited from oofem::EnrichmentItem
virtual void evalLevelSetNormal (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const =0
virtual void evalLevelSetTangential (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const =0
virtual void evalGradLevelSetNormal (FloatArray &oGradLevelSet, const FloatArray &iGlobalCoord, const FloatMatrix &idNdX, const IntArray &iNodeInd) const =0
Static Protected Attributes inherited from oofem::EnrichmentItem
static const double mLevelSetTol = 1.0e-12
static const double mLevelSetRelTol = 1.0e-3

Detailed Description

EnrichmentItem with geometry described by BasicGeometry

Author
Erik Svenning
Date
Sep 9, 2014

Definition at line 54 of file geometrybasedei.h.

Constructor & Destructor Documentation

◆ GeometryBasedEI()

oofem::GeometryBasedEI::GeometryBasedEI ( int n,
XfemManager * xm,
Domain * aDomain )

Definition at line 65 of file geometrybasedei.C.

References oofem::EnrichmentItem::EnrichmentItem().

Referenced by oofem::DirectEI::DirectEI().

◆ ~GeometryBasedEI()

oofem::GeometryBasedEI::~GeometryBasedEI ( )
virtual

Definition at line 69 of file geometrybasedei.C.

Member Function Documentation

◆ appendInputRecords()

◆ computeIntersectionPoints() [1/2]

◆ computeIntersectionPoints() [2/2]

◆ evaluateEnrFuncAt() [1/2]

void oofem::GeometryBasedEI::evaluateEnrFuncAt ( std ::vector< double > & oEnrFunc,
const FloatArray & iGlobalCoord,
const FloatArray & iLocalCoord,
int iNodeInd,
const Element & iEl ) const
overridevirtual

◆ evaluateEnrFuncAt() [2/2]

void oofem::GeometryBasedEI::evaluateEnrFuncAt ( std ::vector< double > & oEnrFunc,
const FloatArray & iGlobalCoord,
const FloatArray & iLocalCoord,
int iNodeInd,
const Element & iEl,
const FloatArray & iN,
const IntArray & iElNodes ) const
overridevirtual

◆ evaluateEnrFuncDerivAt() [1/2]

void oofem::GeometryBasedEI::evaluateEnrFuncDerivAt ( std ::vector< FloatArray > & oEnrFuncDeriv,
const FloatArray & iGlobalCoord,
const FloatArray & iLocalCoord,
int iNodeInd,
const Element & iEl ) const
overridevirtual

◆ evaluateEnrFuncDerivAt() [2/2]

◆ evaluateEnrFuncInNode()

◆ evaluateEnrFuncJumps()

◆ giveBoundingSphere()

void oofem::GeometryBasedEI::giveBoundingSphere ( FloatArray & oCenter,
double & oRadius )
overridevirtual

◆ giveClassName()

const char * oofem::GeometryBasedEI::giveClassName ( ) const
inlineoverridevirtual
Returns
Class name of the receiver.

Implements oofem::FEMComponent.

Reimplemented in oofem::HybridEI, oofem::Inclusion, and oofem::ShellCrack.

Definition at line 67 of file geometrybasedei.h.

◆ giveElementTipCoord()

bool oofem::GeometryBasedEI::giveElementTipCoord ( FloatArray & oCoord,
double & oArcPos,
Element & iEl,
const FloatArray & iElCenter ) const
overridevirtual

◆ giveGeometry()

◆ giveInputRecordName()

const char * oofem::GeometryBasedEI::giveInputRecordName ( ) const
inlineoverridevirtual
Returns
Input record name of the receiver.

Implements oofem::FEMComponent.

Reimplemented in oofem::HybridEI, oofem::Inclusion, and oofem::ShellCrack.

Definition at line 68 of file geometrybasedei.h.

References _IFT_GeometryBasedEI_Name.

◆ giveSubPolygon()

void oofem::GeometryBasedEI::giveSubPolygon ( std ::vector< FloatArray > & oPoints,
const double & iXiStart,
const double & iXiEnd ) const

◆ instanciateYourself()

◆ postInitialize()

void oofem::GeometryBasedEI::postInitialize ( )
overridevirtual

Performs post initialization steps. Called after all components are created and initialized.

Reimplemented from oofem::FEMComponent.

Definition at line 155 of file geometrybasedei.C.

References oofem::FEMComponent::giveDomain(), and updateNodeEnrMarker().

◆ propagateFronts()

◆ setGeometry()

void oofem::GeometryBasedEI::setGeometry ( std ::unique_ptr< BasicGeometry > && ipBasicGeometry)
inline

Definition at line 100 of file geometrybasedei.h.

References mpBasicGeometry.

◆ updateDofIdPool()

◆ updateGeometry()

void oofem::GeometryBasedEI::updateGeometry ( )
overridevirtual

◆ updateLevelSets()

◆ updateNodeEnrMarker()

◆ writeVtkDebug()

void oofem::GeometryBasedEI::writeVtkDebug ( ) const
overridevirtual

Member Data Documentation

◆ mpBasicGeometry


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