|
OOFEM 3.0
|
#include <enrichmentitem.h>
Public Member Functions | |
| EnrichmentItem (int n, XfemManager *xm, Domain *aDomain) | |
| Constructor / destructor. | |
| virtual | ~EnrichmentItem () |
| void | initializeFrom (InputRecord &ir) override |
| virtual int | instanciateYourself (DataReader &dr)=0 |
| void | giveInputRecord (DynamicInputRecord &input) override |
| virtual void | appendInputRecords (DynamicDataReader &oDR)=0 |
| 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) |
| virtual void | updateGeometry ()=0 |
| virtual void | propagateFronts (bool &oFrontsHavePropagated)=0 |
| virtual bool | hasPropagatingFronts () const |
| virtual bool | hasInitiationCriteria () |
| 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 |
| virtual void | evaluateEnrFuncInNode (std ::vector< double > &oEnrFunc, const Node &iNode) const =0 |
| virtual void | evaluateEnrFuncAt (std ::vector< double > &oEnrFunc, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl) const =0 |
| virtual void | evaluateEnrFuncAt (std ::vector< double > &oEnrFunc, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl, const FloatArray &iN, const IntArray &iElNodes) const =0 |
| virtual void | evaluateEnrFuncDerivAt (std ::vector< FloatArray > &oEnrFuncDeriv, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl) const =0 |
| virtual 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 =0 |
| 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 () |
| virtual bool | giveElementTipCoord (FloatArray &oCoord, double &oArcPos, Element &iEl, const FloatArray &iElCenter) const =0 |
| 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 |
| virtual void | giveBoundingSphere (FloatArray &oCenter, double &oRadius)=0 |
| 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. | |
| virtual const char * | giveClassName () const =0 |
| virtual const char * | giveInputRecordName () const =0 |
| 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 | postInitialize () |
| Performs post initialization steps. Called after all components are created and initialized. | |
| 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). | |
Static Public Member Functions | |
| 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) |
Protected Member Functions | |
| virtual void | evalLevelSetNormal (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const =0 |
| virtual void | evalLevelSetTangential (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const =0 |
| virtual void | evalGradLevelSetNormal (FloatArray &oGradLevelSet, const FloatArray &iGlobalCoord, const FloatMatrix &idNdX, const IntArray &iNodeInd) const =0 |
| virtual void | updateNodeEnrMarker (XfemManager &ixFemMan)=0 |
Protected Attributes | |
| 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. | |
Static Protected Attributes | |
| static const double | mLevelSetTol = 1.0e-12 |
| static const double | mLevelSetRelTol = 1.0e-3 |
Abstract class representing entity, which is included in the FE model using one (or more) global functions. Such entity may represent crack, material interface, etc. As the geometry of such entity may be represented in a number of ways, the hierarchy of classes derived from base Geometry class is used to achieve flexibility of geometry representation.
Each EnrichmentItem keeps its DOF labels (assigned/allocated by XFemManager, its geometry representation, and keeps the list of its EnrichmentFunctions.
Definition at line 107 of file enrichmentitem.h.
| oofem::EnrichmentItem::EnrichmentItem | ( | int | n, |
| XfemManager * | xm, | ||
| Domain * | aDomain ) |
Constructor / destructor.
Definition at line 68 of file enrichmentitem.C.
References endOfDofIdPool, oofem::FEMComponent::FEMComponent(), mEnrFrontIndex, mInheritBoundaryConditions, mInheritOrderedBoundaryConditions, mLevelSetsNeedUpdate, mLevelSetTol2, mpEnrichesDofsWithIdArray, mPropLawIndex, and startOfDofIdPool.
Referenced by oofem::GeometryBasedEI::GeometryBasedEI(), and oofem::ListBasedEI::ListBasedEI().
|
virtual |
Definition at line 80 of file enrichmentitem.C.
|
pure virtual |
Implemented in oofem::Delamination, and oofem::GeometryBasedEI.
Referenced by oofem::StructuralFE2MaterialStatus::copyStateVariables().
|
static |
Definition at line 391 of file enrichmentitem.C.
References oofem::FloatArray::at(), oofem::distance(), oofem::FloatArray::dotProduct(), M_PI, oofem::EfInput::mArcPos, oofem::EfInput::mLevelSet, oofem::FloatArray::times(), and oofem::Vec2().
Referenced by giveElementTipCoord().
|
static |
Definition at line 372 of file enrichmentitem.C.
References mLevelSetTol.
Referenced by oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::GeometryBasedEI::computeIntersectionPoints(), giveElementTipCoord(), and oofem::GeometryBasedEI::updateNodeEnrMarker().
|
virtual |
Reimplemented in oofem::Crack.
Definition at line 457 of file enrichmentitem.C.
Referenced by oofem::GnuplotExportModule::doOutput().
|
inlinevirtual |
Reimplemented in oofem::Inclusion.
Definition at line 142 of file enrichmentitem.h.
Referenced by oofem::XfemManager::updateNodeEnrichmentItemMap().
|
virtual |
Compute Id's of enriched dofs for a given DofManager.
Definition at line 180 of file enrichmentitem.C.
References oofem::IntArray::at(), giveEnrichesDofsWithIdArray(), giveNumDofManEnrichments(), oofem::IntArray::giveSize(), giveStartOfDofIdPool(), oofem::DofManager::hasDofID(), and oofem::IntArray::resize().
Referenced by createEnrichedDofs(), oofem::PlaneStress2dXfem::giveDofManDofIDMask(), oofem::QTrPlaneStress2dXFEM::giveDofManDofIDMask(), and oofem::TrPlaneStress2dXFEM::giveDofManDofIDMask().
|
virtual |
TODO: add choise of inheriting only specific BC.
Definition at line 270 of file enrichmentitem.C.
References oofem::IntArray::at(), computeEnrichedDofManDofIdArray(), oofem::IntArray::containsOnlyZeroes(), oofem::IntArray::findNonzeros(), oofem::IntArray::followedBy(), oofem::FEMComponent::giveDomain(), giveEndOfDofIdPool(), oofem::IntArray::giveSize(), giveStartOfDofIdPool(), isDofManEnriched(), mEIDofIdArray, mInheritBoundaryConditions, mInheritOrderedBoundaryConditions, and oofem::DofManager::removeDof().
Referenced by oofem::GeometryBasedEI::updateGeometry(), oofem::ListBasedEI::updateGeometry(), and updateNodeEnrMarker().
|
protectedpure virtual |
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.
Implemented in oofem::Delamination, oofem::DirectEI, and oofem::HybridEI.
Referenced by oofem::GeometryBasedEI::evaluateEnrFuncDerivAt().
|
protectedpure virtual |
Evaluate the normal direction level set in the point iGlobalCoord. To improve performance, basis function values corresponding to that point should also be provided.
Implemented in oofem::Delamination, oofem::DirectEI, and oofem::HybridEI.
Referenced by oofem::GeometryBasedEI::evaluateEnrFuncAt(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), oofem::GeometryBasedEI::evaluateEnrFuncJumps(), and tipIsTouchingEI().
| bool oofem::EnrichmentItem::evalLevelSetNormalInNode | ( | double & | oLevelSet, |
| int | iNodeInd, | ||
| const FloatArray & | iGlobalCoord ) const |
Definition at line 234 of file enrichmentitem.C.
References mLevelSetNormalDirMap.
Referenced by oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::GeometryBasedEI::computeIntersectionPoints(), evaluateEnrFuncDerivAt(), oofem::Shell7BaseXFEM::EvaluateEnrFuncInDofMan(), oofem::GeometryBasedEI::evaluateEnrFuncInNode(), oofem::VTKXMLXFemExportModule::getNodalVariableFromXFEMST(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), oofem::HybridEI::interpGradLevelSet(), oofem::HybridEI::interpLevelSet(), oofem::XfemElementInterface::partitionEdgeSegment(), and oofem::GeometryBasedEI::updateNodeEnrMarker().
|
protectedpure virtual |
Evaluate the tangential direction level set in the point iGlobalCoord. To improve performance, basis function values corresponding to that point should also be provided.
Implemented in oofem::Delamination, oofem::DirectEI, and oofem::HybridEI.
Referenced by tipIsTouchingEI().
| bool oofem::EnrichmentItem::evalLevelSetTangInNode | ( | double & | oLevelSet, |
| int | iNodeInd, | ||
| const FloatArray & | iGlobalCoord ) const |
Definition at line 246 of file enrichmentitem.C.
References mLevelSetTangDirMap.
Referenced by oofem::GeometryBasedEI::computeIntersectionPoints(), evaluateEnrFuncDerivAt(), oofem::VTKXMLXFemExportModule::getNodalVariableFromXFEMST(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::Shell7BaseXFEM::giveCZExportData(), oofem::Shell7BaseXFEM::giveShellExportData(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), oofem::HybridEI::interpLevelSetTangential(), and oofem::XfemElementInterface::partitionEdgeSegment().
| bool oofem::EnrichmentItem::evalNodeEnrMarkerInNode | ( | double & | oNodeEnrMarker, |
| int | iNodeInd ) const |
Definition at line 258 of file enrichmentitem.C.
References mNodeEnrMarkerMap.
Referenced by evaluateEnrFuncDerivAt(), oofem::VTKXMLXFemExportModule::getNodalVariableFromXFEMST(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::Shell7BaseXFEM::giveCZExportData(), oofem::Shell7BaseXFEM::giveShellExportData(), and oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData().
|
pure virtual |
Implemented in oofem::Delamination, and oofem::GeometryBasedEI.
Referenced by oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::Shell7BaseXFEM::computeEnrichedBmatrixAt(), oofem::Shell7BaseXFEM::computeEnrichedNmatrixAt(), oofem::Shell7BaseXFEM::edgeComputeEnrichedBmatrixAt(), oofem::Shell7BaseXFEM::edgeComputeEnrichedNmatrixAt(), oofem::Shell7BaseXFEM::EvaluateEnrFuncInDofMan(), and oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt().
|
pure virtual |
Implemented in oofem::Delamination, and oofem::GeometryBasedEI.
|
pure virtual |
Implemented in oofem::Delamination, and oofem::GeometryBasedEI.
Referenced by oofem::XfemElementInterface::ComputeBOrBHMatrix().
|
pure virtual |
Implemented in oofem::Delamination, and oofem::GeometryBasedEI.
References evalLevelSetNormalInNode(), evalLevelSetTangInNode(), and evalNodeEnrMarkerInNode().
|
pure virtual |
Implemented in oofem::Delamination, and oofem::GeometryBasedEI.
Referenced by oofem::XfemElementInterface::ComputeBOrBHMatrix(), and oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt().
|
pure virtual |
Implemented in oofem::GeometryBasedEI, and oofem::ListBasedEI.
|
virtual |
Reimplemented in oofem::Crack.
Definition at line 100 of file enrichmentitem.C.
References giveEnrichesDofsWithIdArray(), and giveNumberOfEnrDofs().
Referenced by oofem::Delamination::instanciateYourself(), oofem::GeometryBasedEI::instanciateYourself(), and oofem::GeometryBasedEI::updateDofIdPool().
|
virtual |
Definition at line 214 of file enrichmentitem.C.
References oofem::IntArray::at(), giveEnrichesDofsWithIdArray(), oofem::IntArray::giveSize(), giveStartOfDofIdPool(), and oofem::IntArray::resize().
Referenced by oofem::Shell7BaseXFEM::computeDiscGeneralizedStrainVector(), oofem::Shell7BaseXFEM::computeOrderingArray(), oofem::Shell7BaseXFEM::giveDofManDofIDMask(), oofem::Shell7BaseXFEM::giveInternalForcesVector(), oofem::Shell7BaseXFEM::giveNumberOfDofs(), and oofem::Shell7BaseXFEM::vtkEvalUpdatedGlobalCoordinateAt().
|
pure virtual |
Implemented in oofem::GeometryBasedEI, and oofem::ListBasedEI.
References calcPolarCoord(), and calcXiZeroLevel().
|
inline |
Definition at line 159 of file enrichmentitem.h.
References endOfDofIdPool.
Referenced by createEnrichedDofs(), and givePotentialEIDofIdArray().
|
inline |
Definition at line 130 of file enrichmentitem.h.
References mpEnrichesDofsWithIdArray.
Referenced by computeEnrichedDofManDofIdArray(), oofem::Crack::giveDofPoolSize(), giveDofPoolSize(), and giveEIDofIdArray().
|
inline |
Definition at line 234 of file enrichmentitem.h.
References mpEnrichmentFrontEnd.
Referenced by oofem::XfemStructuralElementInterface::giveIntersectionsTouchingCrack(), oofem::XfemStructureManager::mergeCloseCracks(), and oofem::GnuplotExportModule::outputXFEM().
|
inline |
Definition at line 231 of file enrichmentitem.h.
References mpEnrichmentFrontStart.
Referenced by oofem::XfemStructuralElementInterface::giveIntersectionsTouchingCrack(), oofem::XfemStructureManager::mergeCloseCracks(), and oofem::GnuplotExportModule::outputXFEM().
|
inline |
Definition at line 227 of file enrichmentitem.h.
References mNodeEnrMarkerMap.
Referenced by oofem::XfemManager::updateNodeEnrichmentItemMap().
|
inlineoverridevirtual |
Note the special treatment here, the "normal" syntax would be giveInputRecord(DynamicInputRecord &input). Passing the entire DataReader instead allows us to have separate InputRecords for the EnrichmentDomain, EnrichmentFront and PropagationLaw without have to keep track of them globally.
Reimplemented from oofem::FEMComponent.
Definition at line 126 of file enrichmentitem.h.
References OOFEM_ERROR.
| int oofem::EnrichmentItem::giveNumberOfEnrDofs | ( | ) | const |
Definition at line 106 of file enrichmentitem.C.
References oofem::max(), mpEnrichmentFrontEnd, mpEnrichmentFrontStart, and mpEnrichmentFunc.
Referenced by oofem::Crack::giveDofPoolSize(), and giveDofPoolSize().
| int oofem::EnrichmentItem::giveNumDofManEnrichments | ( | const DofManager & | iDMan | ) | const |
Definition at line 132 of file enrichmentitem.C.
References oofem::DofManager::giveGlobalNumber(), mNodeEnrMarkerMap, mpEnrichmentFrontEnd, mpEnrichmentFrontStart, oofem::NodeEnr_BULK, oofem::NodeEnr_END_TIP, oofem::NodeEnr_NONE, oofem::NodeEnr_START_AND_END_TIP, and oofem::NodeEnr_START_TIP.
Referenced by computeEnrichedDofManDofIdArray(), oofem::XfemElementInterface::computeNCohesive(), and oofem::XfemElementInterface::XfemElementInterface_giveNumDofManEnrichments().
|
virtual |
Definition at line 227 of file enrichmentitem.C.
References oofem::IntArray::clear(), oofem::IntArray::followedBy(), giveEndOfDofIdPool(), and giveStartOfDofIdPool().
|
inline |
Definition at line 219 of file enrichmentitem.h.
References mpPropagationLaw.
|
inline |
Definition at line 158 of file enrichmentitem.h.
References startOfDofIdPool.
Referenced by computeEnrichedDofManDofIdArray(), createEnrichedDofs(), giveEIDofIdArray(), and givePotentialEIDofIdArray().
|
inlinevirtual |
Reimplemented in oofem::Delamination.
Definition at line 155 of file enrichmentitem.h.
|
virtual |
Reimplemented in oofem::Delamination.
Definition at line 170 of file enrichmentitem.C.
References mpPropagationLaw.
Referenced by propagateFronts().
|
inline |
Definition at line 221 of file enrichmentitem.h.
References mPropLawIndex.
|
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::Inclusion, and oofem::ShellCrack.
Definition at line 84 of file enrichmentitem.C.
References _IFT_EnrichmentItem_front, _IFT_EnrichmentItem_inheritbc, _IFT_EnrichmentItem_inheritorderedbc, _IFT_EnrichmentItem_propagationlaw, oofem::InputRecord::clone(), oofem::InputRecord::giveGroupCount(), oofem::InputRecord::hasChild(), oofem::InputRecord::hasField(), mEnrFrontIndex, mInheritBoundaryConditions, mInheritOrderedBoundaryConditions, mPropLawIndex, and thisIr.
|
pure virtual |
Implemented in oofem::Delamination, and oofem::GeometryBasedEI.
|
inline |
Definition at line 304 of file enrichmentitem.h.
References oofem::DofManager::giveGlobalNumber(), and mNodeEnrMarkerMap.
Referenced by oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::Shell7BaseXFEM::computeEnrichedBmatrixAt(), oofem::Shell7BaseXFEM::computeEnrichedNmatrixAt(), oofem::XfemElementInterface::computeNCohesive(), oofem::Shell7BaseXFEM::computeOrderingArray(), createEnrichedDofs(), oofem::Node::drawYourself(), oofem::Shell7BaseXFEM::EvaluateEnrFuncInDofMan(), oofem::PlaneStress2dXfem::giveDofManDofIDMask(), oofem::QTrPlaneStress2dXFEM::giveDofManDofIDMask(), oofem::Shell7BaseXFEM::giveDofManDofIDMask(), oofem::TrPlaneStress2dXFEM::giveDofManDofIDMask(), oofem::Shell7BaseXFEM::giveNumberOfDofs(), isElementEnriched(), oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt(), and oofem::XfemElementInterface::XfemElementInterface_giveNumDofManEnrichments().
| bool oofem::EnrichmentItem::isElementEnriched | ( | const Element * | element | ) | const |
Definition at line 121 of file enrichmentitem.C.
References oofem::Element::giveDofManager(), oofem::Element::giveNumberOfDofManagers(), and isDofManEnriched().
Referenced by oofem::Shell7BaseXFEM::computeBoundaryEdgeLoadVector(), oofem::Shell7BaseXFEM::computeCohesiveTangent(), oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::Shell7BaseXFEM::computeStiffnessMatrix(), oofem::Shell7BaseXFEM::evalCovarBaseVectorsAt(), oofem::Shell7BaseXFEM::giveInternalForcesVector(), oofem::Shell7BaseXFEM::giveRecoveredTransverseInterfaceStress(), oofem::Shell7BaseXFEM::OLDcomputeStiffnessMatrix(), oofem::Shell7BaseXFEM::postInitialize(), oofem::Shell7BaseXFEM::recoverShearStress(), and oofem::Shell7BaseXFEM::vtkEvalUpdatedGlobalCoordinateAt().
|
virtual |
Reimplemented in oofem::Inclusion.
Definition at line 165 of file enrichmentitem.C.
Referenced by oofem::XfemStructuralElementInterface::XfemElementInterface_computeConstitutiveMatrixAt(), and oofem::XfemStructuralElementInterface::XfemElementInterface_computeStressVector().
|
pure virtual |
Implemented in oofem::Delamination, oofem::GeometryBasedEI, and oofem::ListBasedEI.
References hasPropagatingFronts().
| void oofem::EnrichmentItem::setEnrichmentFrontEnd | ( | std::unique_ptr< EnrichmentFront > | ipEnrichmentFrontEnd, |
| bool | iDeleteOld = true ) |
Definition at line 471 of file enrichmentitem.C.
References mpEnrichmentFrontEnd.
Referenced by oofem::XfemStructureManager::mergeCloseCracks().
| void oofem::EnrichmentItem::setEnrichmentFrontStart | ( | std::unique_ptr< EnrichmentFront > | ipEnrichmentFrontStart, |
| bool | iDeleteOld = true ) |
Definition at line 462 of file enrichmentitem.C.
References mpEnrichmentFrontStart.
Referenced by oofem::XfemStructureManager::mergeCloseCracks().
|
inline |
Definition at line 239 of file enrichmentitem.h.
References mpEnrichmentFunc.
| void oofem::EnrichmentItem::setPropagationLaw | ( | std::unique_ptr< PropagationLaw > | ipPropagationLaw | ) |
Definition at line 451 of file enrichmentitem.C.
References mpPropagationLaw, and mPropLawIndex.
| bool oofem::EnrichmentItem::tipIsTouchingEI | ( | const TipInfo & | iTipInfo | ) |
Definition at line 480 of file enrichmentitem.C.
References oofem::Element::computeLocalCoordinates(), evalLevelSetNormal(), evalLevelSetTangential(), oofem::FEInterpolation::evalN(), oofem::Element::giveDofManArray(), oofem::FEMComponent::giveDomain(), oofem::SpatialLocalizer::giveElementContainingPoint(), oofem::Element::giveInterpolation(), oofem::TipInfo::mGlobalCoord, and N.
Referenced by oofem::XfemStructuralElementInterface::giveIntersectionsTouchingCrack().
|
pure virtual |
Implemented in oofem::GeometryBasedEI, and oofem::ListBasedEI.
|
inlinevirtual |
Definition at line 149 of file enrichmentitem.h.
Referenced by oofem::FractureManager::updateXFEM().
|
inlinevirtual |
Definition at line 150 of file enrichmentitem.h.
|
protectedpure virtual |
Implemented in oofem::GeometryBasedEI, and oofem::ListBasedEI.
References createEnrichedDofs().
|
inlinevirtual |
Reimplemented in oofem::GeometryBasedEI.
Definition at line 133 of file enrichmentitem.h.
|
protected |
Definition at line 273 of file enrichmentitem.h.
Referenced by EnrichmentItem(), giveEndOfDofIdPool(), oofem::Delamination::instanciateYourself(), oofem::GeometryBasedEI::instanciateYourself(), and oofem::GeometryBasedEI::updateDofIdPool().
|
protected |
Definition at line 293 of file enrichmentitem.h.
Referenced by createEnrichedDofs().
|
protected |
mEnrFrontIndex: nonzero if an enrichment front is present, zero otherwise.
Definition at line 248 of file enrichmentitem.h.
Referenced by oofem::Delamination::appendInputRecords(), oofem::GeometryBasedEI::appendInputRecords(), EnrichmentItem(), initializeFrom(), oofem::Delamination::instanciateYourself(), and oofem::GeometryBasedEI::instanciateYourself().
|
protected |
If newly created enriched dofs should inherit boundary conditions from the node they are introduced in. Default is false, i.e. XFEM dofs are free by default. Two alternatives exists: mInheritBoundaryConditions takes the first Dirichlet BC it finds in the node. Therefore, we may get in trouble if the node has different Dirichlet BCs for different dofs. mInheritOrderedBoundaryConditions assumes that the enriched dofs are of the same type and in the same order as the original dofs and uses the same BC on the enriched dofs NB: These routines basically only works for zero Dirichlet BC, since enriched dofs often are related to the existing dofs. If nonzero BC are prescibed this will be a problem.
Definition at line 269 of file enrichmentitem.h.
Referenced by oofem::GeometryBasedEI::appendInputRecords(), createEnrichedDofs(), EnrichmentItem(), and initializeFrom().
|
protected |
Definition at line 270 of file enrichmentitem.h.
Referenced by oofem::GeometryBasedEI::appendInputRecords(), createEnrichedDofs(), EnrichmentItem(), and initializeFrom().
|
protected |
Definition at line 282 of file enrichmentitem.h.
Referenced by evalLevelSetNormalInNode(), oofem::GeometryBasedEI::updateLevelSets(), and oofem::GeometryBasedEI::updateNodeEnrMarker().
|
staticprotected |
Definition at line 298 of file enrichmentitem.h.
Referenced by oofem::GeometryBasedEI::computeIntersectionPoints().
|
protected |
Definition at line 295 of file enrichmentitem.h.
Referenced by EnrichmentItem(), and oofem::GeometryBasedEI::updateLevelSets().
|
protected |
Definition at line 286 of file enrichmentitem.h.
Referenced by evalLevelSetTangInNode(), oofem::GeometryBasedEI::updateLevelSets(), and oofem::GeometryBasedEI::updateNodeEnrMarker().
|
staticprotected |
Definition at line 297 of file enrichmentitem.h.
Referenced by calcXiZeroLevel(), oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::GeometryBasedEI::computeIntersectionPoints(), and oofem::GeometryBasedEI::updateNodeEnrMarker().
|
protected |
Definition at line 299 of file enrichmentitem.h.
Referenced by oofem::GeometryBasedEI::computeIntersectionPoints(), and EnrichmentItem().
|
protected |
Definition at line 290 of file enrichmentitem.h.
Referenced by evalNodeEnrMarkerInNode(), oofem::GeometryBasedEI::evaluateEnrFuncAt(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), oofem::GeometryBasedEI::evaluateEnrFuncInNode(), oofem::GeometryBasedEI::evaluateEnrFuncJumps(), giveEnrNodeMap(), giveNumDofManEnrichments(), isDofManEnriched(), oofem::GeometryBasedEI::updateNodeEnrMarker(), and oofem::ListBasedEI::updateNodeEnrMarker().
|
protected |
Geometry associated with EnrichmentItem.
Definition at line 276 of file enrichmentitem.h.
Referenced by EnrichmentItem(), and giveEnrichesDofsWithIdArray().
|
protected |
Definition at line 245 of file enrichmentitem.h.
Referenced by oofem::Delamination::appendInputRecords(), oofem::GeometryBasedEI::appendInputRecords(), oofem::GeometryBasedEI::evaluateEnrFuncAt(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), oofem::GeometryBasedEI::evaluateEnrFuncInNode(), oofem::GeometryBasedEI::evaluateEnrFuncJumps(), oofem::GeometryBasedEI::giveBoundingSphere(), giveEnrichmentFrontEnd(), giveNumberOfEnrDofs(), giveNumDofManEnrichments(), oofem::Delamination::instanciateYourself(), oofem::GeometryBasedEI::instanciateYourself(), oofem::GeometryBasedEI::propagateFronts(), setEnrichmentFrontEnd(), and oofem::GeometryBasedEI::updateNodeEnrMarker().
|
protected |
Definition at line 245 of file enrichmentitem.h.
Referenced by oofem::Delamination::appendInputRecords(), oofem::GeometryBasedEI::appendInputRecords(), oofem::GeometryBasedEI::evaluateEnrFuncAt(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), oofem::GeometryBasedEI::evaluateEnrFuncInNode(), oofem::GeometryBasedEI::evaluateEnrFuncJumps(), oofem::GeometryBasedEI::giveBoundingSphere(), giveEnrichmentFrontStart(), giveNumberOfEnrDofs(), giveNumDofManEnrichments(), oofem::Delamination::instanciateYourself(), oofem::GeometryBasedEI::instanciateYourself(), oofem::Delamination::propagateFronts(), oofem::GeometryBasedEI::propagateFronts(), oofem::ListBasedEI::propagateFronts(), setEnrichmentFrontStart(), oofem::GeometryBasedEI::updateNodeEnrMarker(), and oofem::ListBasedEI::updateNodeEnrMarker().
|
protected |
Definition at line 243 of file enrichmentitem.h.
Referenced by oofem::Delamination::appendInputRecords(), oofem::GeometryBasedEI::appendInputRecords(), oofem::Delamination::evaluateEnrFuncAt(), oofem::Delamination::evaluateEnrFuncAt(), oofem::GeometryBasedEI::evaluateEnrFuncAt(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), oofem::GeometryBasedEI::evaluateEnrFuncInNode(), oofem::GeometryBasedEI::evaluateEnrFuncJumps(), giveNumberOfEnrDofs(), oofem::Delamination::instanciateYourself(), oofem::GeometryBasedEI::instanciateYourself(), and setEnrichmentFunction().
|
protected |
Definition at line 250 of file enrichmentitem.h.
Referenced by oofem::Delamination::appendInputRecords(), oofem::GeometryBasedEI::appendInputRecords(), givePropagationLaw(), hasPropagatingFronts(), oofem::Delamination::instanciateYourself(), oofem::GeometryBasedEI::instanciateYourself(), oofem::Delamination::propagateFronts(), oofem::GeometryBasedEI::propagateFronts(), oofem::ListBasedEI::propagateFronts(), and setPropagationLaw().
|
protected |
mPropLawIndex: nonzero if a propagation law is present, zero otherwise.
Definition at line 253 of file enrichmentitem.h.
Referenced by oofem::Delamination::appendInputRecords(), oofem::GeometryBasedEI::appendInputRecords(), EnrichmentItem(), hasPropagationLaw(), initializeFrom(), oofem::Delamination::instanciateYourself(), oofem::GeometryBasedEI::instanciateYourself(), and setPropagationLaw().
|
protected |
Definition at line 272 of file enrichmentitem.h.
Referenced by EnrichmentItem(), giveStartOfDofIdPool(), oofem::Delamination::instanciateYourself(), oofem::GeometryBasedEI::instanciateYourself(), and oofem::GeometryBasedEI::updateDofIdPool().
|
protected |
Definition at line 301 of file enrichmentitem.h.
Referenced by initializeFrom(), oofem::Delamination::instanciateYourself(), and oofem::GeometryBasedEI::instanciateYourself().