|
OOFEM 3.0
|
#include <hybridei.h>
Public Member Functions | |
| 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 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). | |
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) |
| 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. | |
| Static Protected Attributes inherited from oofem::EnrichmentItem | |
| static const double | mLevelSetTol = 1.0e-12 |
| static const double | mLevelSetRelTol = 1.0e-3 |
EnrichmentItem with hybrid geometry description in the following sense: We have a BasicGeometry to describe the underlying geometry, and we use this BasicGeometry to compute nodal level set fields. The enrichment is based on interpolation of these nodal fields.
Definition at line 54 of file hybridei.h.
| oofem::HybridEI::HybridEI | ( | int | n, |
| XfemManager * | xm, | ||
| Domain * | aDomain ) |
References HybridEI().
Referenced by HybridEI().
|
virtual |
Definition at line 52 of file hybridei.C.
|
overridevirtual |
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 65 of file hybridei.C.
References interpGradLevelSet().
|
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 55 of file hybridei.C.
References interpLevelSet().
|
overridevirtual |
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 60 of file hybridei.C.
References interpLevelSetTangential().
|
inlineoverridevirtual |
Reimplemented from oofem::GeometryBasedEI.
Reimplemented in oofem::Inclusion, and oofem::ShellCrack.
Definition at line 60 of file hybridei.h.
|
inlineoverridevirtual |
Reimplemented from oofem::GeometryBasedEI.
Reimplemented in oofem::Inclusion, and oofem::ShellCrack.
Definition at line 61 of file hybridei.h.
References _IFT_HybridEI_Name.
| void oofem::HybridEI::interpGradLevelSet | ( | FloatArray & | oGradLevelSet, |
| const FloatMatrix & | idNdX, | ||
| const IntArray & | iNodeInd ) const |
Definition at line 94 of file hybridei.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::EnrichmentItem::evalLevelSetNormalInNode(), oofem::FEMComponent::giveDomain(), oofem::FloatMatrix::giveNumberOfColumns(), oofem::FloatMatrix::giveNumberOfRows(), oofem::FloatArray::giveSize(), oofem::FloatArray::resize(), and oofem::FloatArray::zero().
Referenced by evalGradLevelSetNormal().
| void oofem::HybridEI::interpLevelSet | ( | double & | oLevelSet, |
| const FloatArray & | iN, | ||
| const IntArray & | iNodeInd ) const |
Definition at line 70 of file hybridei.C.
References oofem::FloatArray::at(), oofem::EnrichmentItem::evalLevelSetNormalInNode(), oofem::FEMComponent::giveDomain(), and oofem::FloatArray::giveSize().
Referenced by evalLevelSetNormal(), oofem::Shell7BaseXFEM::evaluateLevelSet(), and oofem::Inclusion::isMaterialModified().
| void oofem::HybridEI::interpLevelSetTangential | ( | double & | oLevelSet, |
| const FloatArray & | iN, | ||
| const IntArray & | iNodeInd ) const |
Definition at line 82 of file hybridei.C.
References oofem::FloatArray::at(), oofem::EnrichmentItem::evalLevelSetTangInNode(), oofem::FEMComponent::giveDomain(), and oofem::FloatArray::giveSize().
Referenced by evalLevelSetTangential().