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

EnrichmentItem with geometry defined by a set of nodes to be enriched. More...

#include <listbasedei.h>

+ Inheritance diagram for oofem::ListBasedEI:
+ Collaboration diagram for oofem::ListBasedEI:

Public Member Functions

 ListBasedEI (int n, XfemManager *xm, Domain *aDomain)
 
virtual ~ListBasedEI ()
 
virtual const char * giveClassName () const
 
virtual const char * giveInputRecordName () const
 
virtual void updateGeometry ()
 
virtual void propagateFronts (bool &oFrontsHavePropagated)
 
virtual void initiateFronts (bool &oFrontsHavePropagated, IntArray &initiateDofMans)
 
virtual void updateNodeEnrMarker (XfemManager &ixFemMan)
 
virtual bool giveElementTipCoord (FloatArray &oCoord, double &oArcPos, Element &iEl, const FloatArray &iElCenter) const
 
virtual void giveBoundingSphere (FloatArray &oCenter, double &oRadius)
 
- 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...
 
virtual void appendInputRecords (DynamicDataReader &oDR)=0
 
virtual int instanciateYourself (DataReader &dr)=0
 
const IntArraygiveEnrichesDofsWithIdArray () 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 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
 
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 ()
 
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::vector< int > dofManList
 
double xi
 
int setNumber
 
- 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 defined by a set of nodes to be enriched.

Author
Erik Svenning
Date
Sep 9, 2014

Definition at line 54 of file listbasedei.h.

Constructor & Destructor Documentation

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

Definition at line 49 of file listbasedei.C.

oofem::ListBasedEI::~ListBasedEI ( )
virtual

Definition at line 53 of file listbasedei.C.

Member Function Documentation

virtual void oofem::ListBasedEI::giveBoundingSphere ( FloatArray oCenter,
double &  oRadius 
)
inlinevirtual

Implements oofem::EnrichmentItem.

Definition at line 70 of file listbasedei.h.

References OOFEM_ERROR.

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

Implements oofem::EnrichmentItem.

Reimplemented in oofem::Delamination.

Definition at line 60 of file listbasedei.h.

bool oofem::ListBasedEI::giveElementTipCoord ( FloatArray oCoord,
double &  oArcPos,
Element iEl,
const FloatArray iElCenter 
) const
virtual

Implements oofem::EnrichmentItem.

Definition at line 156 of file listbasedei.C.

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

Implements oofem::FEMComponent.

Reimplemented in oofem::Delamination.

Definition at line 61 of file listbasedei.h.

References _IFT_ListBasedEI_Name.

void oofem::ListBasedEI::initiateFronts ( bool &  oFrontsHavePropagated,
IntArray initiateDofMans 
)
virtual

Member Data Documentation

int oofem::ListBasedEI::setNumber
protected

Definition at line 75 of file listbasedei.h.

double oofem::ListBasedEI::xi
protected

Definition at line 74 of file listbasedei.h.


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