|
OOFEM 3.0
|
#include <crack.h>
Public Member Functions | |
| Crack (int n, XfemManager *xm, Domain *aDomain) | |
| const char * | giveClassName () const override |
| const char * | giveInputRecordName () const override |
| void | initializeFrom (InputRecord &ir) override |
| void | AppendCohesiveZoneGaussPoint (GaussPoint *ipGP) |
| void | ClearCohesiveZoneGaussPoints () |
| void | callGnuplotExportModule (GnuplotExportModule &iExpMod, TimeStep *tStep) override |
| const std ::vector< GaussPoint * > & | giveCohesiveZoneGaussPoints () const |
| const std ::vector< double > & | giveCohesiveZoneArcPositions () const |
| void | computeCrackIntersectionPoints (Crack &iCrack, std ::vector< FloatArray > &oIntersectionPoints, std ::vector< double > &oArcPositions) |
| void | computeArcPoints (const std ::vector< FloatArray > &iIntersectionPoints, std ::vector< double > &oArcPositions) |
| double | computeLength () |
| int | giveDofPoolSize () const override |
| Public Member Functions inherited from oofem::HybridEI | |
| HybridEI (int n, XfemManager *xm, Domain *aDomain) | |
| virtual | ~HybridEI () |
| const char * | giveClassName () const override |
| const char * | giveInputRecordName () 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 | interpLevelSet (double &oLevelSet, const FloatArray &iN, const IntArray &iNodeInd) const |
| void | interpLevelSetTangential (double &oLevelSet, const FloatArray &iN, const IntArray &iNodeInd) const |
| void | interpGradLevelSet (FloatArray &oGradLevelSet, const FloatMatrix &idNdX, const IntArray &iNodeInd) const |
| Public Member Functions inherited from oofem::GeometryBasedEI | |
| 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 |
| 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 |
| BasicGeometry * | giveGeometry () |
| 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 IntArray * | giveEnrichesDofsWithIdArray () 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 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 () |
| PropagationLaw * | givePropagationLaw () |
| void | setPropagationLaw (std::unique_ptr< PropagationLaw > ipPropagationLaw) |
| bool | hasPropagationLaw () |
| const std ::unordered_map< int, NodeEnrichmentType > & | giveEnrNodeMap () const |
| EnrichmentFront * | giveEnrichmentFrontStart () |
| void | setEnrichmentFrontStart (std::unique_ptr< EnrichmentFront > ipEnrichmentFrontStart, bool iDeleteOld=true) |
| EnrichmentFront * | giveEnrichmentFrontEnd () |
| 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. | |
| Domain * | giveDomain () 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 Interface * | giveInterface (InterfaceType t) |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
Protected Attributes | |
| std ::vector< GaussPoint * > | mCohesiveZoneGaussPoints |
| std ::vector< double > | mCohesiveZoneArcPositions |
| Protected Attributes inherited from oofem::GeometryBasedEI | |
| std ::unique_ptr< BasicGeometry > | mpBasicGeometry |
| Protected Attributes inherited from oofem::EnrichmentItem | |
| std::unique_ptr< EnrichmentFunction > | mpEnrichmentFunc |
| std::unique_ptr< EnrichmentFront > | mpEnrichmentFrontStart |
| std::unique_ptr< EnrichmentFront > | mpEnrichmentFrontEnd |
| int | mEnrFrontIndex |
| mEnrFrontIndex: nonzero if an enrichment front is present, zero otherwise. | |
| std::unique_ptr< PropagationLaw > | mpPropagationLaw |
| 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, NodeEnrichmentType > | mNodeEnrMarkerMap |
| IntArray | mEIDofIdArray |
| bool | mLevelSetsNeedUpdate |
| const double | mLevelSetTol2 |
| std::shared_ptr< InputRecord > | thisIr |
| Protected Attributes inherited from oofem::FEMComponent | |
| int | number |
| Component number. | |
| Domain * | domain |
| 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 |
| oofem::Crack::Crack | ( | int | n, |
| XfemManager * | xm, | ||
| Domain * | aDomain ) |
Referenced by computeCrackIntersectionPoints().
| void oofem::Crack::AppendCohesiveZoneGaussPoint | ( | GaussPoint * | ipGP | ) |
Definition at line 59 of file crack.C.
References oofem::GaussPoint::giveGlobalCoordinates(), oofem::GaussPoint::giveMaterialStatus(), mCohesiveZoneArcPositions, mCohesiveZoneGaussPoints, oofem::GeometryBasedEI::mpBasicGeometry, and OOFEM_ERROR.
Referenced by oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule().
|
overridevirtual |
Reimplemented from oofem::EnrichmentItem.
Definition at line 95 of file crack.C.
References oofem::GnuplotExportModule::outputXFEM().
|
inline |
Definition at line 64 of file crack.h.
References mCohesiveZoneArcPositions, and mCohesiveZoneGaussPoints.
| void oofem::Crack::computeArcPoints | ( | const std ::vector< FloatArray > & | iIntersectionPoints, |
| std ::vector< double > & | oArcPositions ) |
Definition at line 127 of file crack.C.
References oofem::PolygonLine::computeTangentialSignDist(), oofem::GeometryBasedEI::mpBasicGeometry, and OOFEM_ERROR.
Referenced by oofem::XfemStructureManager::splitCracks().
| void oofem::Crack::computeCrackIntersectionPoints | ( | Crack & | iCrack, |
| std ::vector< FloatArray > & | oIntersectionPoints, | ||
| std ::vector< double > & | oArcPositions ) |
Definition at line 100 of file crack.C.
References oofem::PolygonLine::computeIntersectionPoints(), oofem::PolygonLine::computeTangentialSignDist(), Crack(), oofem::GeometryBasedEI::giveGeometry(), oofem::GeometryBasedEI::mpBasicGeometry, and OOFEM_ERROR.
Referenced by oofem::XfemStructureManager::splitCracks().
| double oofem::Crack::computeLength | ( | ) |
Definition at line 149 of file crack.C.
References oofem::PolygonLine::computeLength(), and oofem::GeometryBasedEI::mpBasicGeometry.
Referenced by oofem::XfemStructureManager::mergeCloseCracks(), oofem::GnuplotExportModule::outputXFEM(), and oofem::XfemStructureManager::removeShortCracks().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Reimplemented in oofem::ShellCrack.
|
inline |
Definition at line 69 of file crack.h.
References mCohesiveZoneArcPositions.
Referenced by oofem::GnuplotExportModule::outputXFEM().
|
inline |
Definition at line 68 of file crack.h.
References mCohesiveZoneGaussPoints.
Referenced by oofem::GnuplotExportModule::outputXFEM().
|
overridevirtual |
Reimplemented from oofem::EnrichmentItem.
Definition at line 160 of file crack.C.
References oofem::EnrichmentItem::giveEnrichesDofsWithIdArray(), and oofem::EnrichmentItem::giveNumberOfEnrDofs().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Reimplemented in oofem::ShellCrack.
Definition at line 60 of file crack.h.
References _IFT_Crack_Name.
|
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.
| ir | Input record to initialize from. |
| priority | Priority of the input record. This is used to determine the order of initialization |
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::ShellCrack.
|
protected |
Definition at line 91 of file crack.h.
Referenced by AppendCohesiveZoneGaussPoint(), ClearCohesiveZoneGaussPoints(), and giveCohesiveZoneArcPositions().
|
protected |
Array of pointers to the Gauss points related to the cohesive zone. The array is used for data extraction and visualization only. The reason for keeping an array of pointers here is as follows: the cohesive zone Gauss points are created in the XFEMElementInterface, that (of course) only keeps track of GPs in that element. However, for visualization it is very valuable to be able to plot cohesive zone data (e.g. damage or crack opening) vs the arc length coordinate of the crack. This must be accomplished at the level of the EnrichmentItem, because here we know about the geometry of the crack.
Definition at line 90 of file crack.h.
Referenced by AppendCohesiveZoneGaussPoint(), ClearCohesiveZoneGaussPoints(), and giveCohesiveZoneGaussPoints().