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

#include <delamination.h>

Inheritance diagram for oofem::Delamination:
Collaboration diagram for oofem::Delamination:

Public Member Functions

 Delamination (int n, XfemManager *xm, Domain *aDomain)
virtual ~Delamination ()
void initializeFrom (InputRecord &ir) override
int instanciateYourself (DataReader &dr) override
void postInitialize () override
 Performs post initialization steps. Called after all components are created and initialized.
void appendInputRecords (DynamicDataReader &oDR) override
const char * giveClassName () const override
const char * giveInputRecordName () const override
double giveDelamXiCoord () const
double giveBoundingDelamXiCoord () const
int giveDelamInterfaceNum () const
IntArray giveDelamCrossSectionNum () const
double giveInitiationFactor () const
bool hasPropagatingFronts () const override
bool hasInitiationCriteria () override
void propagateFronts (bool &oFrontsHavePropagated) override
void findInitiationFronts (bool &failureChecked, const IntArray &CSnumbers, std ::vector< IntArray > &CSinterfaceNumbers, std ::vector< IntArray > &CSDofManNumbers, std ::vector< FloatArray > &initiationFactors, TimeStep *tStep)
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 evalLevelSetNormal (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const override
void evalLevelSetTangential (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const override
void evalGradLevelSetNormal (FloatArray &oGradLevelSet, const FloatArray &iGlobalCoord, const FloatMatrix &idNdX, const IntArray &iNodeInd) const override
void evaluateEnrFuncAt (std ::vector< double > &oEnrFunc, const FloatArray &iPos, const double &iLevelSet) const
Public Member Functions inherited from oofem::ListBasedEI
 ListBasedEI (int n, XfemManager *xm, Domain *aDomain)
virtual ~ListBasedEI ()
const char * giveClassName () const override
const char * giveInputRecordName () const override
void updateGeometry () override
void propagateFronts (bool &oFrontsHavePropagated) override
virtual void initiateFronts (bool &oFrontsHavePropagated, IntArray &initiateDofMans)
void updateNodeEnrMarker (XfemManager &ixFemMan) override
bool giveElementTipCoord (FloatArray &oCoord, double &oArcPos, Element &iEl, const FloatArray &iElCenter) const override
void giveBoundingSphere (FloatArray &oCenter, double &oRadius) override
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
virtual void writeVtkDebug () 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)
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

Materialmat
IntArray interfaceNum
IntArray crossSectionNum
int matNum
double delamXiCoord
double xiBottom
double xiTop
double initiationFactor
double initiationRadius
bool recoverStresses
Protected Attributes inherited from oofem::ListBasedEI
std ::vector< int > dofManList
double xi
int setNumber
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)
Static Protected Attributes inherited from oofem::EnrichmentItem
static const double mLevelSetTol = 1.0e-12
static const double mLevelSetRelTol = 1.0e-3

Detailed Description

Delamination.

Definition at line 58 of file delamination.h.

Constructor & Destructor Documentation

◆ Delamination()

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

◆ ~Delamination()

virtual oofem::Delamination::~Delamination ( )
inlinevirtual

Definition at line 79 of file delamination.h.

Member Function Documentation

◆ appendInputRecords()

◆ evalGradLevelSetNormal()

void oofem::Delamination::evalGradLevelSetNormal ( FloatArray & oGradLevelSet,
const FloatArray & iGlobalCoord,
const FloatMatrix & idNdX,
const IntArray & iNodeInd ) const
inlineoverridevirtual

Evaluate the gradient of the normal direction level set in the point iGlobalCoord. To improve performance, basis function values corresponding to that point should also be provided.

Implements oofem::EnrichmentItem.

Definition at line 111 of file delamination.h.

References OOFEM_ERROR.

◆ evalLevelSetNormal()

void oofem::Delamination::evalLevelSetNormal ( double & oLevelSet,
const FloatArray & iGlobalCoord,
const FloatArray & iN,
const IntArray & iNodeInd ) const
overridevirtual

Evaluate the normal direction level set in the point iGlobalCoord. To improve performance, basis function values corresponding to that point should also be provided.

Implements oofem::EnrichmentItem.

Definition at line 540 of file delamination.C.

◆ evalLevelSetTangential()

void oofem::Delamination::evalLevelSetTangential ( double & oLevelSet,
const FloatArray & iGlobalCoord,
const FloatArray & iN,
const IntArray & iNodeInd ) const
inlineoverridevirtual

Evaluate the tangential direction level set in the point iGlobalCoord. To improve performance, basis function values corresponding to that point should also be provided.

Implements oofem::EnrichmentItem.

Definition at line 110 of file delamination.h.

References OOFEM_ERROR.

◆ evaluateEnrFuncAt() [1/3]

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

◆ evaluateEnrFuncAt() [2/3]

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

Implements oofem::EnrichmentItem.

Definition at line 337 of file delamination.C.

References evaluateEnrFuncAt().

◆ evaluateEnrFuncAt() [3/3]

void oofem::Delamination::evaluateEnrFuncAt ( std ::vector< double > & oEnrFunc,
const FloatArray & iPos,
const double & iLevelSet ) const

Definition at line 546 of file delamination.C.

References oofem::EnrichmentItem::mpEnrichmentFunc.

◆ evaluateEnrFuncDerivAt() [1/2]

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

Implements oofem::EnrichmentItem.

Definition at line 106 of file delamination.h.

References OOFEM_ERROR.

◆ evaluateEnrFuncDerivAt() [2/2]

void oofem::Delamination::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
inlineoverridevirtual

Implements oofem::EnrichmentItem.

Definition at line 107 of file delamination.h.

References OOFEM_ERROR.

◆ evaluateEnrFuncInNode()

void oofem::Delamination::evaluateEnrFuncInNode ( std ::vector< double > & oEnrFunc,
const Node & iNode ) const
inlineoverridevirtual

Implements oofem::EnrichmentItem.

Definition at line 101 of file delamination.h.

References OOFEM_ERROR.

◆ findInitiationFronts()

void oofem::Delamination::findInitiationFronts ( bool & failureChecked,
const IntArray & CSnumbers,
std ::vector< IntArray > & CSinterfaceNumbers,
std ::vector< IntArray > & CSDofManNumbers,
std ::vector< FloatArray > & initiationFactors,
TimeStep * tStep )

◆ giveBoundingDelamXiCoord()

double oofem::Delamination::giveBoundingDelamXiCoord ( ) const
inline

Definition at line 90 of file delamination.h.

References xiTop.

Referenced by oofem::Shell7BaseXFEM::evaluateHeavisideXi().

◆ giveClassName()

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

Implements oofem::FEMComponent.

Definition at line 86 of file delamination.h.

◆ giveDelamCrossSectionNum()

IntArray oofem::Delamination::giveDelamCrossSectionNum ( ) const
inline

Definition at line 92 of file delamination.h.

References crossSectionNum.

Referenced by propagateFronts().

◆ giveDelamInterfaceNum()

◆ giveDelamXiCoord()

◆ giveInitiationFactor()

double oofem::Delamination::giveInitiationFactor ( ) const
inline

Definition at line 93 of file delamination.h.

References initiationFactor.

◆ giveInputRecordName()

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

Implements oofem::FEMComponent.

Definition at line 87 of file delamination.h.

References _IFT_Delamination_Name.

Referenced by appendInputRecords().

◆ hasInitiationCriteria()

bool oofem::Delamination::hasInitiationCriteria ( )
overridevirtual

Reimplemented from oofem::EnrichmentItem.

Definition at line 210 of file delamination.C.

References initiationFactor.

◆ hasPropagatingFronts()

bool oofem::Delamination::hasPropagatingFronts ( ) const
inlineoverridevirtual

Reimplemented from oofem::EnrichmentItem.

Definition at line 95 of file delamination.h.

◆ initializeFrom()

void oofem::Delamination::initializeFrom ( InputRecord & ir)
overridevirtual

Initializes receiver according to object description stored in input record. This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record. Note that initializeFrom may be called mutiple times.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
priorityPriority of the input record. This is used to determine the order of initialization

Reimplemented from oofem::FEMComponent.

Definition at line 343 of file delamination.C.

References _IFT_Delamination_averageStresses, _IFT_Delamination_CohesiveZoneMaterial, _IFT_Delamination_csnum, _IFT_Delamination_initiationFactor, _IFT_Delamination_initiationRadius, _IFT_Delamination_interfacenum, crossSectionNum, oofem::CS_Thickness, delamXiCoord, oofem::LayeredCrossSection::give(), oofem::FEMComponent::giveDomain(), oofem::LayeredCrossSection::giveLayerThickness(), oofem::LayeredCrossSection::giveNumberOfLayers(), oofem::InputRecord::hasField(), initiationFactor, initiationRadius, interfaceNum, IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, mat, matNum, recoverStresses, xiBottom, and xiTop.

◆ instanciateYourself()

◆ postInitialize()

void oofem::Delamination::postInitialize ( )
overridevirtual

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

Reimplemented from oofem::FEMComponent.

Definition at line 155 of file delamination.C.

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

◆ propagateFronts()

Member Data Documentation

◆ crossSectionNum

IntArray oofem::Delamination::crossSectionNum
protected

Definition at line 63 of file delamination.h.

Referenced by appendInputRecords(), giveDelamCrossSectionNum(), and initializeFrom().

◆ delamXiCoord

double oofem::Delamination::delamXiCoord
protected

Definition at line 65 of file delamination.h.

Referenced by initializeFrom().

◆ initiationFactor

double oofem::Delamination::initiationFactor
protected

◆ initiationRadius

double oofem::Delamination::initiationRadius
protected

Definition at line 74 of file delamination.h.

Referenced by appendInputRecords(), findInitiationFronts(), and initializeFrom().

◆ interfaceNum

IntArray oofem::Delamination::interfaceNum
protected

Definition at line 62 of file delamination.h.

Referenced by appendInputRecords(), giveDelamInterfaceNum(), and initializeFrom().

◆ mat

Material* oofem::Delamination::mat
protected

Definition at line 61 of file delamination.h.

Referenced by initializeFrom().

◆ matNum

int oofem::Delamination::matNum
protected

Definition at line 64 of file delamination.h.

Referenced by appendInputRecords(), and initializeFrom().

◆ recoverStresses

bool oofem::Delamination::recoverStresses
protected

Definition at line 75 of file delamination.h.

Referenced by appendInputRecords(), findInitiationFronts(), and initializeFrom().

◆ xiBottom

double oofem::Delamination::xiBottom
protected

Definition at line 68 of file delamination.h.

Referenced by giveDelamXiCoord(), and initializeFrom().

◆ xiTop

double oofem::Delamination::xiTop
protected

Definition at line 69 of file delamination.h.

Referenced by giveBoundingDelamXiCoord(), and initializeFrom().


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