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

EnrichmentItem describing an inclusion. More...

#include <inclusion.h>

+ Inheritance diagram for oofem::Inclusion:
+ Collaboration diagram for oofem::Inclusion:

Public Member Functions

 Inclusion (int n, XfemManager *xm, Domain *aDomain)
 
virtual ~Inclusion ()
 
virtual bool canModifyMaterial () const
 
virtual bool isMaterialModified (GaussPoint &iGP, Element &iEl, CrossSection *&opCS) const
 
virtual const char * giveClassName () const
 
virtual const char * giveInputRecordName () const
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record. More...
 
CrossSectiongiveCrossSection ()
 
- Public Member Functions inherited from oofem::HybridEI
 HybridEI (int n, XfemManager *xm, Domain *aDomain)
 
virtual ~HybridEI ()
 
virtual void evalLevelSetNormal (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const
 Evaluate the normal direction level set in the point iGlobalCoord. More...
 
virtual void evalLevelSetTangential (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const
 Evaluate the tangential direction level set in the point iGlobalCoord. More...
 
virtual void evalGradLevelSetNormal (FloatArray &oGradLevelSet, const FloatArray &iGlobalCoord, const FloatMatrix &idNdX, const IntArray &iNodeInd) const
 Evaluate the gradient of the normal direction level set in the point iGlobalCoord. More...
 
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 ()
 
virtual int instanciateYourself (DataReader &dr)
 
virtual void updateDofIdPool ()
 
virtual void appendInputRecords (DynamicDataReader &oDR)
 
virtual void updateGeometry ()
 
virtual void updateNodeEnrMarker (XfemManager &ixFemMan)
 
void updateLevelSets (XfemManager &ixFemMan)
 
virtual void evaluateEnrFuncInNode (std::vector< double > &oEnrFunc, const Node &iNode) const
 
virtual void evaluateEnrFuncAt (std::vector< double > &oEnrFunc, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl) const
 
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
 
virtual void evaluateEnrFuncDerivAt (std::vector< FloatArray > &oEnrFuncDeriv, const FloatArray &iGlobalCoord, const FloatArray &iLocalCoord, int iNodeInd, const Element &iEl) const
 
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
 
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
 
virtual void writeVtkDebug () const
 
void giveSubPolygon (std::vector< FloatArray > &oPoints, const double &iXiStart, const double &iXiEnd) const
 
virtual void propagateFronts (bool &oFrontsHavePropagated)
 
virtual bool giveElementTipCoord (FloatArray &oCoord, double &oArcPos, Element &iEl, const FloatArray &iElCenter) const
 
virtual void giveBoundingSphere (FloatArray &oCenter, double &oRadius)
 
BasicGeometrygiveGeometry ()
 
void setGeometry (std::unique_ptr< BasicGeometry > &&ipBasicGeometry)
 
- Public Member Functions inherited from oofem::EnrichmentItem
 EnrichmentItem (int n, XfemManager *xm, Domain *aDomain)
 Constructor / destructor. More...
 
virtual ~EnrichmentItem ()
 
virtual void giveInputRecord (DynamicInputRecord &input)
 Note the special treatment here, the "normal" syntax would be giveInputRecord(DynamicInputRecord &input). More...
 
const IntArraygiveEnrichesDofsWithIdArray () const
 
int giveNumberOfEnrDofs () const
 
bool isElementEnriched (const Element *element) const
 
bool isDofManEnriched (const DofManager &iDMan) const
 
int giveNumDofManEnrichments (const DofManager &iDMan) 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)
 Compute Id's of enriched dofs for a given DofManager. More...
 
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 ()
 
PropagationLawgivePropagationLaw ()
 
void setPropagationLaw (PropagationLaw *ipPropagationLaw)
 
bool hasPropagationLaw ()
 
virtual void callGnuplotExportModule (GnuplotExportModule &iExpMod, TimeStep *tStep)
 
const std::unordered_map< int, NodeEnrichmentType > & giveEnrNodeMap () const
 
EnrichmentFrontgiveEnrichmentFrontStart ()
 
void setEnrichmentFrontStart (EnrichmentFront *ipEnrichmentFrontStart, bool iDeleteOld=true)
 
EnrichmentFrontgiveEnrichmentFrontEnd ()
 
void setEnrichmentFrontEnd (EnrichmentFront *ipEnrichmentFrontEnd, bool iDeleteOld=true)
 
bool tipIsTouchingEI (const TipInfo &iTipInfo)
 
void setEnrichmentFunction (EnrichmentFunction *ipEnrichmentFunc)
 
- Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
 Regular constructor, creates component with given number and belonging to given domain. More...
 
virtual ~FEMComponent ()
 Virtual destructor. More...
 
DomaingiveDomain () const
 
virtual void setDomain (Domain *d)
 Sets associated Domain. More...
 
int giveNumber () const
 
void setNumber (int num)
 Sets number of receiver. More...
 
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
 Local renumbering support. More...
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Stores receiver state to output stream. More...
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Restores the receiver state previously written in stream. More...
 
virtual int checkConsistency ()
 Allows programmer to test some internal data, before computation begins. More...
 
virtual void printOutputAt (FILE *file, TimeStep *tStep)
 Prints output of receiver to stream, for given time step. More...
 
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging. More...
 
virtual InterfacegiveInterface (InterfaceType t)
 Interface requesting service. More...
 
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros). More...
 

Protected Attributes

CrossSectionmpCrossSection
 
- Protected Attributes inherited from oofem::GeometryBasedEI
std::unique_ptr< BasicGeometrympBasicGeometry
 
- Protected Attributes inherited from oofem::EnrichmentItem
EnrichmentFunctionmpEnrichmentFunc
 
EnrichmentFrontmpEnrichmentFrontStart
 
EnrichmentFrontmpEnrichmentFrontEnd
 
int mEnrFrontIndex
 mEnrFrontIndex: nonzero if an enrichment front is present, zero otherwise. More...
 
PropagationLawmpPropagationLaw
 
int mPropLawIndex
 mPropLawIndex: nonzero if a propagation law is present, zero otherwise. More...
 
bool mInheritBoundaryConditions
 If newly created enriched dofs should inherit boundary conditions from the node they are introduced in. More...
 
bool mInheritOrderedBoundaryConditions
 
int startOfDofIdPool
 
int endOfDofIdPool
 
IntArray mpEnrichesDofsWithIdArray
 Geometry associated with EnrichmentItem. More...
 
std::unordered_map< int, double > mLevelSetNormalDirMap
 
std::unordered_map< int, double > mLevelSetTangDirMap
 
std::unordered_map< int, NodeEnrichmentTypemNodeEnrMarkerMap
 
IntArray mEIDofIdArray
 
bool mLevelSetsNeedUpdate
 
const double mLevelSetTol2
 
- Protected Attributes inherited from oofem::FEMComponent
int number
 Component number. More...
 
Domaindomain
 Link to domain object, useful for communicating with other FEM components. More...
 

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
 

Detailed Description

EnrichmentItem describing an inclusion.

Author
Erik Svenning (among others)
Date
Sep 9, 2014

Definition at line 50 of file inclusion.h.

Constructor & Destructor Documentation

oofem::Inclusion::Inclusion ( int  n,
XfemManager xm,
Domain aDomain 
)
oofem::Inclusion::~Inclusion ( )
virtual

Definition at line 58 of file inclusion.C.

References mpCrossSection.

Member Function Documentation

virtual bool oofem::Inclusion::canModifyMaterial ( ) const
inlinevirtual

Reimplemented from oofem::EnrichmentItem.

Definition at line 60 of file inclusion.h.

virtual const char* oofem::Inclusion::giveClassName ( ) const
inlinevirtual
Returns
Class name of the receiver.

Reimplemented from oofem::HybridEI.

Definition at line 66 of file inclusion.h.

CrossSection* oofem::Inclusion::giveCrossSection ( )
inline

Definition at line 69 of file inclusion.h.

virtual const char* oofem::Inclusion::giveInputRecordName ( ) const
inlinevirtual
Returns
Input record name of the receiver.

Reimplemented from oofem::HybridEI.

Definition at line 67 of file inclusion.h.

References _IFT_Inclusion_Name.

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

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.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
Returns
IRResultType

Reimplemented from oofem::EnrichmentItem.

Definition at line 86 of file inclusion.C.

References _IFT_Inclusion_CrossSection, oofem::Domain::giveCrossSection(), oofem::FEMComponent::giveDomain(), oofem::EnrichmentItem::initializeFrom(), IR_GIVE_FIELD, and mpCrossSection.

bool oofem::Inclusion::isMaterialModified ( GaussPoint iGP,
Element iEl,
CrossSection *&  opCS 
) const
virtual

Member Data Documentation

CrossSection* oofem::Inclusion::mpCrossSection
protected

Definition at line 53 of file inclusion.h.

Referenced by initializeFrom(), isMaterialModified(), and ~Inclusion().


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:36 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011