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

#include <plhoopstresscirc.h>

Inheritance diagram for oofem::PLHoopStressCirc:
Collaboration diagram for oofem::PLHoopStressCirc:

Public Member Functions

 PLHoopStressCirc ()
virtual ~PLHoopStressCirc ()
const char * giveClassName () const override
const char * giveInputRecordName () const override
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
bool hasPropagation () const override
bool propagateInterface (Domain &iDomain, EnrichmentFront &iEnrFront, TipPropagation &oTipProp) override
void setRadius (double iRadius)
void setAngleInc (double iAngleInc)
void setIncrementLength (double iIncrementLength)
void setHoopStressThreshold (double iHoopStressThreshold)
void setUseRadialBasisFunc (bool iUseRadialBasisFunc)
Public Member Functions inherited from oofem::PropagationLaw
 PropagationLaw ()
virtual ~PropagationLaw ()

Protected Attributes

double mRadius
double mAngleInc
double mIncrementLength
double mHoopStressThreshold
bool mUseRadialBasisFunc

Detailed Description

Propagation law that propagates the crack in the direction that gives \( \sigma_{r\theta} = 0 \). Based on T.P. Fries and M. Baydoun: "Crack propagation with the extended finite element method and a hybrid explicit-implicit crack description", Internat. J. Numer. Methods Engrg 89, pp. 1527–1558 (2012)

The stress is evaluated in several points on a circle surrounding the crack tip.

Compared to the paper above, the implementation has been extended with a criterion for crack propagation instead of always propagating a predefined increment length. Two options are currently available for stress interpolation: 1) Take stress of closest Gauss point 2) Interpolate with radial basis functions

Author
Erik Svenning

Definition at line 75 of file plhoopstresscirc.h.

Constructor & Destructor Documentation

◆ PLHoopStressCirc()

oofem::PLHoopStressCirc::PLHoopStressCirc ( )
inline

◆ ~PLHoopStressCirc()

virtual oofem::PLHoopStressCirc::~PLHoopStressCirc ( )
inlinevirtual

Definition at line 79 of file plhoopstresscirc.h.

Member Function Documentation

◆ giveClassName()

const char * oofem::PLHoopStressCirc::giveClassName ( ) const
inlineoverridevirtual

Implements oofem::PropagationLaw.

Definition at line 81 of file plhoopstresscirc.h.

◆ giveInputRecord()

◆ giveInputRecordName()

const char * oofem::PLHoopStressCirc::giveInputRecordName ( ) const
inlineoverridevirtual

Implements oofem::PropagationLaw.

Definition at line 82 of file plhoopstresscirc.h.

References _IFT_PLHoopStressCirc_Name.

Referenced by giveInputRecord().

◆ hasPropagation()

bool oofem::PLHoopStressCirc::hasPropagation ( ) const
inlineoverridevirtual

Implements oofem::PropagationLaw.

Definition at line 87 of file plhoopstresscirc.h.

References mIncrementLength.

◆ initializeFrom()

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

Implements oofem::PropagationLaw.

References giveInputRecord().

◆ propagateInterface()

bool oofem::PLHoopStressCirc::propagateInterface ( Domain & iDomain,
EnrichmentFront & iEnrFront,
TipPropagation & oTipProp )
overridevirtual
Todo
Could this be done smarter? / Mikael

Implements oofem::PropagationLaw.

Definition at line 85 of file plhoopstresscirc.C.

References oofem::FloatArray::add(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::FloatArray::beDifferenceOf(), oofem::FloatArray::beProductOf(), oofem::FloatMatrix::beProductOf(), oofem::FloatArray::beScaled(), oofem::FloatMatrix::beTProductOf(), oofem::Element::computeVolumeAround(), oofem::distance(), oofem::FloatArray::dotProduct(), oofem::FEInterpolation::evalN(), oofem::SpatialLocalizer::giveAllElementsWithIpWithinBox(), oofem::SpatialLocalizer::giveClosestIP(), oofem::DofManager::giveCoordinate(), oofem::DofManager::giveCoordinates(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::Element::giveDofManager(), oofem::Domain::giveElement(), oofem::SpatialLocalizer::giveElementContainingPoint(), oofem::Element::giveInterpolation(), oofem::GaussPoint::giveMaterialStatus(), oofem::Element::giveNumberOfDofManagers(), oofem::FloatArray::giveSize(), oofem::Domain::giveSpatialLocalizer(), oofem::StructuralMaterialStatus::giveStressVector(), oofem::EnrichmentFront::giveTipInfo(), oofem::XfemManager::giveVtkDebug(), oofem::Domain::giveXfemManager(), M_PI, mAngleInc, oofem::TipInfo::mGlobalCoord, mHoopStressThreshold, mIncrementLength, oofem::TipInfo::mNormalDir, oofem::TipPropagation::mPropagationDir, oofem::TipPropagation::mPropagationLength, mRadius, oofem::TipInfo::mTangDir, oofem::TipInfo::mTipIndex, oofem::TipPropagation::mTipIndex, mUseRadialBasisFunc, N, oofem::FloatArray::normalize(), OOFEM_ERROR, oofem::EnrichmentFront::propagationIsAllowed(), oofem::FloatArray::resize(), oofem::FloatMatrix::setColumn(), and oofem::FloatArray::zero().

◆ setAngleInc()

void oofem::PLHoopStressCirc::setAngleInc ( double iAngleInc)
inline

Definition at line 91 of file plhoopstresscirc.h.

References mAngleInc.

◆ setHoopStressThreshold()

void oofem::PLHoopStressCirc::setHoopStressThreshold ( double iHoopStressThreshold)
inline

Definition at line 93 of file plhoopstresscirc.h.

References mHoopStressThreshold.

◆ setIncrementLength()

void oofem::PLHoopStressCirc::setIncrementLength ( double iIncrementLength)
inline

Definition at line 92 of file plhoopstresscirc.h.

References mIncrementLength.

◆ setRadius()

void oofem::PLHoopStressCirc::setRadius ( double iRadius)
inline

Definition at line 90 of file plhoopstresscirc.h.

References mRadius.

◆ setUseRadialBasisFunc()

void oofem::PLHoopStressCirc::setUseRadialBasisFunc ( bool iUseRadialBasisFunc)
inline

Definition at line 94 of file plhoopstresscirc.h.

References mUseRadialBasisFunc.

Member Data Documentation

◆ mAngleInc

double oofem::PLHoopStressCirc::mAngleInc
protected

◆ mHoopStressThreshold

double oofem::PLHoopStressCirc::mHoopStressThreshold
protected

◆ mIncrementLength

double oofem::PLHoopStressCirc::mIncrementLength
protected

◆ mRadius

double oofem::PLHoopStressCirc::mRadius
protected

◆ mUseRadialBasisFunc

bool oofem::PLHoopStressCirc::mUseRadialBasisFunc
protected

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