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

EnrichmentItem with geometry described by BasicGeometry. More...

#include <geometrybasedei.h>

+ Inheritance diagram for oofem::GeometryBasedEI:
+ Collaboration diagram for oofem::GeometryBasedEI:

Public Member Functions

 GeometryBasedEI (int n, XfemManager *xm, Domain *aDomain)
 
virtual ~GeometryBasedEI ()
 
virtual int instanciateYourself (DataReader &dr)
 
virtual void updateDofIdPool ()
 
virtual void appendInputRecords (DynamicDataReader &oDR)
 
virtual const char * giveClassName () const
 
virtual const char * giveInputRecordName () const
 
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 IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record. More...
 
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 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)
 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

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)
 
- Protected Member Functions inherited from oofem::EnrichmentItem
virtual void evalLevelSetNormal (double &oLevelSet, const FloatArray &iGlobalCoord, const FloatArray &iN, const IntArray &iNodeInd) const =0
 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 =0
 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 =0
 Evaluate the gradient of the normal direction level set in the point iGlobalCoord. More...
 
- Static Protected Attributes inherited from oofem::EnrichmentItem
static const double mLevelSetTol = 1.0e-12
 
static const double mLevelSetRelTol = 1.0e-3
 

Detailed Description

EnrichmentItem with geometry described by BasicGeometry.

Author
Erik Svenning
Date
Sep 9, 2014

Definition at line 54 of file geometrybasedei.h.

Constructor & Destructor Documentation

oofem::GeometryBasedEI::GeometryBasedEI ( int  n,
XfemManager xm,
Domain aDomain 
)

Definition at line 64 of file geometrybasedei.C.

oofem::GeometryBasedEI::~GeometryBasedEI ( )
virtual

Definition at line 68 of file geometrybasedei.C.

Member Function Documentation

void oofem::GeometryBasedEI::evaluateEnrFuncAt ( std::vector< double > &  oEnrFunc,
const FloatArray iGlobalCoord,
const FloatArray iLocalCoord,
int  iNodeInd,
const Element iEl 
) const
virtual
void oofem::GeometryBasedEI::evaluateEnrFuncDerivAt ( std::vector< FloatArray > &  oEnrFuncDeriv,
const FloatArray iGlobalCoord,
const FloatArray iLocalCoord,
int  iNodeInd,
const Element iEl 
) const
virtual
virtual const char* oofem::GeometryBasedEI::giveClassName ( ) const
inlinevirtual
Returns
Class name of the receiver.

Implements oofem::EnrichmentItem.

Reimplemented in oofem::Inclusion, oofem::ShellCrack, oofem::HybridEI, oofem::DirectEI, and oofem::Crack.

Definition at line 66 of file geometrybasedei.h.

Referenced by instanciateYourself().

bool oofem::GeometryBasedEI::giveElementTipCoord ( FloatArray oCoord,
double &  oArcPos,
Element iEl,
const FloatArray iElCenter 
) const
virtual
virtual const char* oofem::GeometryBasedEI::giveInputRecordName ( ) const
inlinevirtual
Returns
Input record name of the receiver.

Implements oofem::FEMComponent.

Reimplemented in oofem::Inclusion, oofem::ShellCrack, oofem::HybridEI, oofem::DirectEI, and oofem::Crack.

Definition at line 67 of file geometrybasedei.h.

References _IFT_GeometryBasedEI_Name.

void oofem::GeometryBasedEI::giveSubPolygon ( std::vector< FloatArray > &  oPoints,
const double &  iXiStart,
const double &  iXiEnd 
) const
void oofem::GeometryBasedEI::setGeometry ( std::unique_ptr< BasicGeometry > &&  ipBasicGeometry)
inline

Definition at line 99 of file geometrybasedei.h.

void oofem::GeometryBasedEI::updateGeometry ( )
virtual
void oofem::GeometryBasedEI::updateNodeEnrMarker ( XfemManager ixFemMan)
virtual
void oofem::GeometryBasedEI::writeVtkDebug ( ) const
virtual

Member Data Documentation


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