OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::PLHoopStressCirc Class Reference

Propagation law that propagates the crack in the direction that gives $ \sigma_{r\theta} = 0 $. More...

#include <plhoopstresscirc.h>

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

Public Member Functions

 PLHoopStressCirc ()
 
virtual ~PLHoopStressCirc ()
 
virtual const char * giveClassName () const
 
virtual const char * giveInputRecordName () const
 
virtual IRResultType initializeFrom (InputRecord *ir)
 
virtual void giveInputRecord (DynamicInputRecord &input)
 
virtual bool hasPropagation () const
 
virtual bool propagateInterface (Domain &iDomain, EnrichmentFront &iEnrFront, TipPropagation &oTipProp)
 
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

oofem::PLHoopStressCirc::PLHoopStressCirc ( )
inline

Definition at line 78 of file plhoopstresscirc.h.

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

Definition at line 79 of file plhoopstresscirc.h.

Member Function Documentation

virtual const char* oofem::PLHoopStressCirc::giveClassName ( ) const
inlinevirtual

Implements oofem::PropagationLaw.

Definition at line 81 of file plhoopstresscirc.h.

virtual const char* oofem::PLHoopStressCirc::giveInputRecordName ( ) const
inlinevirtual

Implements oofem::PropagationLaw.

Definition at line 82 of file plhoopstresscirc.h.

References _IFT_PLHoopStressCirc_Name.

Referenced by giveInputRecord().

virtual bool oofem::PLHoopStressCirc::hasPropagation ( ) const
inlinevirtual

Implements oofem::PropagationLaw.

Definition at line 87 of file plhoopstresscirc.h.

virtual IRResultType oofem::PLHoopStressCirc::initializeFrom ( InputRecord ir)
virtual

Implements oofem::PropagationLaw.

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

Implements oofem::PropagationLaw.

Definition at line 89 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::EnrichmentItem::calcXiZeroLevel(), oofem::Element::computeVolumeAround(), oofem::FloatArray::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(), oofem::XFEMDebugTools::WriteArrayToGnuplot(), oofem::XFEMDebugTools::WriteArrayToMatlab(), and oofem::FloatArray::zero().

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

Definition at line 91 of file plhoopstresscirc.h.

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

Definition at line 93 of file plhoopstresscirc.h.

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

Definition at line 92 of file plhoopstresscirc.h.

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

Definition at line 90 of file plhoopstresscirc.h.

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

Definition at line 94 of file plhoopstresscirc.h.

Member Data Documentation

double oofem::PLHoopStressCirc::mAngleInc
protected

Definition at line 97 of file plhoopstresscirc.h.

Referenced by giveInputRecord(), and propagateInterface().

double oofem::PLHoopStressCirc::mHoopStressThreshold
protected

Definition at line 97 of file plhoopstresscirc.h.

Referenced by giveInputRecord(), and propagateInterface().

double oofem::PLHoopStressCirc::mIncrementLength
protected

Definition at line 97 of file plhoopstresscirc.h.

Referenced by giveInputRecord(), and propagateInterface().

double oofem::PLHoopStressCirc::mRadius
protected

Definition at line 97 of file plhoopstresscirc.h.

Referenced by giveInputRecord(), and propagateInterface().

bool oofem::PLHoopStressCirc::mUseRadialBasisFunc
protected

Definition at line 98 of file plhoopstresscirc.h.

Referenced by giveInputRecord(), and 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:39 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011