OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
EnrichmentItem with direct geometry description in the following sense: We have a BasicGeometry to describe the underlying geometry, and we use this BasicGeometry directly to compute level set fields. More...
#include <directei.h>
Public Member Functions | |
DirectEI (int n, XfemManager *xm, Domain *aDomain) | |
virtual | ~DirectEI () |
virtual const char * | giveClassName () const |
virtual const char * | giveInputRecordName () const |
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... | |
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) |
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. 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 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) |
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 () |
PropagationLaw * | givePropagationLaw () |
void | setPropagationLaw (PropagationLaw *ipPropagationLaw) |
bool | hasPropagationLaw () |
virtual void | callGnuplotExportModule (GnuplotExportModule &iExpMod, TimeStep *tStep) |
const std::unordered_map< int, NodeEnrichmentType > & | giveEnrNodeMap () const |
EnrichmentFront * | giveEnrichmentFrontStart () |
void | setEnrichmentFrontStart (EnrichmentFront *ipEnrichmentFrontStart, bool iDeleteOld=true) |
EnrichmentFront * | giveEnrichmentFrontEnd () |
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... | |
Domain * | giveDomain () 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 Interface * | giveInterface (InterfaceType t) |
Interface requesting service. More... | |
std::string | errorInfo (const char *func) const |
Returns string for prepending output (used by error reporting macros). 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 Attributes inherited from oofem::GeometryBasedEI | |
std::unique_ptr< BasicGeometry > | mpBasicGeometry |
Protected Attributes inherited from oofem::EnrichmentItem | |
EnrichmentFunction * | mpEnrichmentFunc |
EnrichmentFront * | mpEnrichmentFrontStart |
EnrichmentFront * | mpEnrichmentFrontEnd |
int | mEnrFrontIndex |
mEnrFrontIndex: nonzero if an enrichment front is present, zero otherwise. More... | |
PropagationLaw * | mpPropagationLaw |
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, NodeEnrichmentType > | mNodeEnrMarkerMap |
IntArray | mEIDofIdArray |
bool | mLevelSetsNeedUpdate |
const double | mLevelSetTol2 |
Protected Attributes inherited from oofem::FEMComponent | |
int | number |
Component number. More... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
Static Protected Attributes inherited from oofem::EnrichmentItem | |
static const double | mLevelSetTol = 1.0e-12 |
static const double | mLevelSetRelTol = 1.0e-3 |
EnrichmentItem with direct geometry description in the following sense: We have a BasicGeometry to describe the underlying geometry, and we use this BasicGeometry directly to compute level set fields.
Definition at line 53 of file directei.h.
oofem::DirectEI::DirectEI | ( | int | n, |
XfemManager * | xm, | ||
Domain * | aDomain | ||
) |
Definition at line 39 of file directei.C.
|
virtual |
Definition at line 43 of file directei.C.
|
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.
Implements oofem::EnrichmentItem.
Definition at line 57 of file directei.C.
References oofem::GeometryBasedEI::mpBasicGeometry.
Referenced by giveInputRecordName().
|
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.
Implements oofem::EnrichmentItem.
Definition at line 46 of file directei.C.
References oofem::GeometryBasedEI::mpBasicGeometry.
Referenced by giveInputRecordName().
|
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.
Implements oofem::EnrichmentItem.
Definition at line 51 of file directei.C.
References oofem::GeometryBasedEI::mpBasicGeometry.
Referenced by giveInputRecordName().
|
inlinevirtual |
Reimplemented from oofem::GeometryBasedEI.
Definition at line 59 of file directei.h.
|
inlinevirtual |
Reimplemented from oofem::GeometryBasedEI.
Definition at line 60 of file directei.h.
References _IFT_DirectEI_Name, evalGradLevelSetNormal(), evalLevelSetNormal(), and evalLevelSetTangential().