|
OOFEM 3.0
|
#include <delamination.h>
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 IntArray * | giveEnrichesDofsWithIdArray () 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 () |
| PropagationLaw * | givePropagationLaw () |
| void | setPropagationLaw (std::unique_ptr< PropagationLaw > ipPropagationLaw) |
| bool | hasPropagationLaw () |
| virtual void | callGnuplotExportModule (GnuplotExportModule &iExpMod, TimeStep *tStep) |
| 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 | |
| Material * | mat |
| 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< 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 |
Definition at line 58 of file delamination.h.
| oofem::Delamination::Delamination | ( | int | n, |
| XfemManager * | xm, | ||
| Domain * | aDomain ) |
|
inlinevirtual |
Definition at line 79 of file delamination.h.
|
overridevirtual |
Implements oofem::EnrichmentItem.
Definition at line 478 of file delamination.C.
References _IFT_Delamination_averageStresses, _IFT_Delamination_CohesiveZoneMaterial, _IFT_Delamination_csnum, _IFT_Delamination_initiationFactor, _IFT_Delamination_initiationRadius, _IFT_Delamination_interfacenum, _IFT_EnrichmentItem_front, _IFT_EnrichmentItem_propagationlaw, _IFT_ListBasedEI_list, oofem::IntArray::at(), crossSectionNum, oofem::ListBasedEI::dofManList, giveInputRecordName(), initiationFactor, initiationRadius, oofem::DynamicDataReader::insertInputRecord(), interfaceNum, matNum, oofem::EnrichmentItem::mEnrFrontIndex, oofem::EnrichmentItem::mpEnrichmentFrontEnd, oofem::EnrichmentItem::mpEnrichmentFrontStart, oofem::EnrichmentItem::mpEnrichmentFunc, oofem::EnrichmentItem::mpPropagationLaw, oofem::EnrichmentItem::mPropLawIndex, recoverStresses, and oofem::IntArray::resize().
|
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.
|
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.
|
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.
|
overridevirtual |
Implements oofem::EnrichmentItem.
Definition at line 324 of file delamination.C.
References oofem::FloatArray::at(), giveDelamXiCoord(), oofem::FloatArray::giveSize(), oofem::EnrichmentItem::mpEnrichmentFunc, and OOFEM_ERROR.
Referenced by oofem::Shell7BaseXFEM::computeStiffnessMatrix(), evaluateEnrFuncAt(), and oofem::Shell7BaseXFEM::OLDcomputeStiffnessMatrix().
|
overridevirtual |
Implements oofem::EnrichmentItem.
Definition at line 337 of file delamination.C.
References evaluateEnrFuncAt().
| 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.
|
inlineoverridevirtual |
Implements oofem::EnrichmentItem.
Definition at line 106 of file delamination.h.
References OOFEM_ERROR.
|
inlineoverridevirtual |
Implements oofem::EnrichmentItem.
Definition at line 107 of file delamination.h.
References OOFEM_ERROR.
|
inlineoverridevirtual |
Implements oofem::EnrichmentItem.
Definition at line 101 of file delamination.h.
References OOFEM_ERROR.
| void oofem::Delamination::findInitiationFronts | ( | bool & | failureChecked, |
| const IntArray & | CSnumbers, | ||
| std ::vector< IntArray > & | CSinterfaceNumbers, | ||
| std ::vector< IntArray > & | CSDofManNumbers, | ||
| std ::vector< FloatArray > & | initiationFactors, | ||
| TimeStep * | tStep ) |
Definition at line 270 of file delamination.C.
References oofem::IntArray::at(), oofem::SpatialLocalizer::giveAllNodesWithinBox(), oofem::FEMComponent::giveDomain(), oofem::IntArray::giveSize(), initiationRadius, and recoverStresses.
|
inline |
Definition at line 90 of file delamination.h.
References xiTop.
Referenced by oofem::Shell7BaseXFEM::evaluateHeavisideXi().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 86 of file delamination.h.
|
inline |
Definition at line 92 of file delamination.h.
References crossSectionNum.
Referenced by propagateFronts().
|
inline |
Definition at line 91 of file delamination.h.
References interfaceNum.
Referenced by oofem::Shell7BaseXFEM::computeCohesiveForces(), oofem::Shell7BaseXFEM::computeCohesiveTangentAt(), oofem::Shell7BaseXFEM::giveRecoveredTransverseInterfaceStress(), and oofem::Shell7BaseXFEM::recoverShearStress().
|
inline |
Definition at line 89 of file delamination.h.
References xiBottom.
Referenced by oofem::Shell7BaseXFEM::computeCohesiveForces(), oofem::Shell7BaseXFEM::computeCohesiveTangentAt(), oofem::Shell7BaseXFEM::computeStiffnessMatrix(), evaluateEnrFuncAt(), oofem::Shell7BaseXFEM::evaluateHeavisideXi(), oofem::Shell7BaseXFEM::giveRecoveredTransverseInterfaceStress(), oofem::Shell7BaseXFEM::OLDcomputeStiffnessMatrix(), and oofem::Shell7BaseXFEM::recoverShearStress().
|
inline |
Definition at line 93 of file delamination.h.
References initiationFactor.
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 87 of file delamination.h.
References _IFT_Delamination_Name.
Referenced by appendInputRecords().
|
overridevirtual |
Reimplemented from oofem::EnrichmentItem.
Definition at line 210 of file delamination.C.
References initiationFactor.
|
inlineoverridevirtual |
Reimplemented from oofem::EnrichmentItem.
Definition at line 95 of file delamination.h.
|
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.
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.
|
overridevirtual |
Implements oofem::EnrichmentItem.
Definition at line 73 of file delamination.C.
References _IFT_ListBasedEI_list, oofem::IntArray::at(), oofem::classFactory, oofem::ListBasedEI::dofManList, oofem::EnrichmentItem::endOfDofIdPool, oofem::DataReader::giveChildRecord(), oofem::EnrichmentItem::giveDofPoolSize(), oofem::FEMComponent::giveDomain(), oofem::DataReader::giveGroupRecords(), oofem::DataReader::giveInputRecord(), oofem::FEMComponent::giveNumber(), oofem::InputRecord::giveRecordKeywordField(), oofem::IntArray::giveSize(), oofem::DataReader::InputRecordTags, oofem::DataReader::IR_enrichFuncRec, IR_GIVE_FIELD, oofem::DataReader::IR_propagationLawRec, oofem::EnrichmentItem::mEnrFrontIndex, oofem::EnrichmentItem::mpEnrichmentFrontEnd, oofem::EnrichmentItem::mpEnrichmentFrontStart, oofem::EnrichmentItem::mpEnrichmentFunc, oofem::EnrichmentItem::mpPropagationLaw, oofem::EnrichmentItem::mPropLawIndex, OOFEM_ERROR, oofem::EnrichmentItem::startOfDofIdPool, and oofem::EnrichmentItem::thisIr.
|
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().
|
overridevirtual |
TODO: this should actually not inlcude the nodes at the boundary of the delamination, since this will propagate the delamination outside.
Implements oofem::EnrichmentItem.
Definition at line 221 of file delamination.C.
References oofem::ListBasedEI::dofManList, oofem::IntArray::findCommonValuesSorted(), oofem::IntArray::followedBy(), oofem::Domain::giveCrossSection(), giveDelamCrossSectionNum(), oofem::Element::giveDofManArray(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveElement(), oofem::Set::giveElementList(), oofem::FEMComponent::giveNumber(), oofem::Domain::giveSet(), oofem::CrossSection::giveSetNumber(), oofem::EnrichmentItem::mpEnrichmentFrontStart, oofem::EnrichmentItem::mpPropagationLaw, oofem::TipPropagation::mPropagationDofManNumbers, oofem::IntArray::sort(), and oofem::ListBasedEI::updateGeometry().
|
protected |
Definition at line 63 of file delamination.h.
Referenced by appendInputRecords(), giveDelamCrossSectionNum(), and initializeFrom().
|
protected |
Definition at line 65 of file delamination.h.
Referenced by initializeFrom().
|
protected |
Definition at line 73 of file delamination.h.
Referenced by appendInputRecords(), giveInitiationFactor(), hasInitiationCriteria(), and initializeFrom().
|
protected |
Definition at line 74 of file delamination.h.
Referenced by appendInputRecords(), findInitiationFronts(), and initializeFrom().
|
protected |
Definition at line 62 of file delamination.h.
Referenced by appendInputRecords(), giveDelamInterfaceNum(), and initializeFrom().
|
protected |
Definition at line 61 of file delamination.h.
Referenced by initializeFrom().
|
protected |
Definition at line 64 of file delamination.h.
Referenced by appendInputRecords(), and initializeFrom().
|
protected |
Definition at line 75 of file delamination.h.
Referenced by appendInputRecords(), findInitiationFronts(), and initializeFrom().
|
protected |
Definition at line 68 of file delamination.h.
Referenced by giveDelamXiCoord(), and initializeFrom().
|
protected |
Definition at line 69 of file delamination.h.
Referenced by giveBoundingDelamXiCoord(), and initializeFrom().