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

This class manages the xfem part. More...

#include <xfemmanager.h>

+ Inheritance diagram for oofem::XfemManager:
+ Collaboration diagram for oofem::XfemManager:

Public Member Functions

InternalStateValueType giveXFEMStateValueType (XFEMStateType type)
 
 XfemManager (Domain *domain)
 Constructor. More...
 
virtual ~XfemManager ()
 Destructor. More...
 
 XfemManager (const XfemManager &)=delete
 
XfemManageroperator= (const XfemManager &)=delete
 
int giveNumGpPerTri () const
 
int giveNumTriRefs () const
 Number of Gauss points per sub-triangle in cut elements. More...
 
double giveEnrDofScaleFactor () const
 
bool isElementEnriched (const Element *elem)
 
EnrichmentItemgiveEnrichmentItem (int n)
 
int giveNumberOfEnrichmentItems () const
 
NucleationCriteriongiveNucleationCriterion (int n)
 
int giveNumberOfNucleationCriteria () const
 
void createEnrichedDofs ()
 
const IntArraygiveEnrichedDofIDs () const
 
IntArray giveEnrichedDofIDs (const DofManager &iDMan) const
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record. More...
 
virtual void giveInputRecord (DynamicInputRecord &input)
 
virtual int instanciateYourself (DataReader &dr)
 
virtual const char * giveClassName () const
 
virtual const char * giveInputRecordName () const
 
DomaingiveDomain ()
 
void setDomain (Domain *ipDomain)
 
contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Stores the state of receiver to output stream. More...
 
contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Restores the state of receiver from output stream. More...
 
virtual void updateYourself (TimeStep *tStep)
 Update enrichment items (level sets). More...
 
virtual void propagateFronts (bool &oAnyFronHasPropagated)
 
void initiateFronts (bool &oAnyFronHasPropagated, TimeStep *tStep)
 
bool hasPropagatingFronts ()
 
bool hasInitiationCriteria ()
 
void clearEnrichmentItems ()
 Remove all enrichment items. More...
 
void appendEnrichmentItems (std::vector< std::unique_ptr< EnrichmentItem > > &iEIlist)
 
void nucleateEnrichmentItems (bool &oNewItemsWereNucleated)
 
bool hasNucleationCriteria ()
 
bool giveVtkDebug () const
 
void setVtkDebug (bool iDebug)
 
void updateNodeEnrichmentItemMap ()
 
const std::vector< int > & giveNodeEnrichmentItemIndices (int iNodeIndex) const
 
void giveElementEnrichmentItemIndices (std::vector< int > &oElemEnrInd, int iElementIndex) const
 
const std::vector< int > & giveMaterialModifyingEnrItemIndices () const
 

Public Attributes

IntArray vtkExportFields
 List with the fields that should be exported to VTK. More...
 

Protected Attributes

Domaindomain
 
std::vector< std::unique_ptr< EnrichmentItem > > enrichmentItemList
 Enrichment item list. More...
 
int numberOfEnrichmentItems
 
int numberOfNucleationCriteria
 
int mNumGpPerTri
 The number of Gauss points to be used in each sub-triangle when subdividing cut elements. More...
 
int mNumTriRef
 The number of times a subtriangle should be refined. More...
 
double mEnrDofScaleFac
 
bool doVTKExport
 
bool mDebugVTK
 If extra debug vtk files should be written. More...
 
std::vector< std::vector< int > > mNodeEnrichmentItemIndices
 Let the XfemManager keep track of enrichment items enriching each node and each element, to allow more efficient computations. More...
 
std::unordered_map< int, std::vector< int > > mElementEnrichmentItemIndices
 
std::vector< int > mMaterialModifyingEnrItemIndices
 Keep track of enrichment items that may assign a different material to some Gauss points. More...
 
std::vector< std::unique_ptr< NucleationCriterion > > mNucleationCriteria
 Nucleation of new enrichment items. More...
 
IntArray mXFEMPotentialDofIDs
 

Detailed Description

This class manages the xfem part.

Author
Ruzena Chamrova
Jim Brouzoulis
Erik Svenning

Definition at line 109 of file xfemmanager.h.

Constructor & Destructor Documentation

oofem::XfemManager::XfemManager ( Domain domain)

Constructor.

oofem::XfemManager::~XfemManager ( )
virtual

Destructor.

Definition at line 83 of file xfemmanager.C.

oofem::XfemManager::XfemManager ( const XfemManager )
delete

Member Function Documentation

void oofem::XfemManager::appendEnrichmentItems ( std::vector< std::unique_ptr< EnrichmentItem > > &  iEIlist)
void oofem::XfemManager::clearEnrichmentItems ( )

Remove all enrichment items.

Definition at line 461 of file xfemmanager.C.

References enrichmentItemList, and updateNodeEnrichmentItemMap().

Referenced by oofem::StructuralFE2MaterialStatus::copyStateVariables().

void oofem::XfemManager::createEnrichedDofs ( )
virtual const char* oofem::XfemManager::giveClassName ( ) const
inlinevirtual

Reimplemented in oofem::XfemStructureManager.

Definition at line 199 of file xfemmanager.h.

Referenced by instanciateYourself().

void oofem::XfemManager::giveElementEnrichmentItemIndices ( std::vector< int > &  oElemEnrInd,
int  iElementIndex 
) const
const IntArray& oofem::XfemManager::giveEnrichedDofIDs ( ) const
inline
IntArray oofem::XfemManager::giveEnrichedDofIDs ( const DofManager iDMan) const
EnrichmentItem* oofem::XfemManager::giveEnrichmentItem ( int  n)
inline

Definition at line 184 of file xfemmanager.h.

Referenced by oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::Shell7BaseXFEM::computeBoundaryEdgeLoadVector(), oofem::Shell7BaseXFEM::computeCohesiveTangent(), oofem::XfemElementInterface::computeNCohesive(), oofem::Shell7BaseXFEM::computeStiffnessMatrix(), oofem::XfemStructureManager::computeTotalCrackLength(), oofem::StructuralFE2MaterialStatus::copyStateVariables(), oofem::GnuplotExportModule::doOutput(), oofem::Node::drawYourself(), oofem::Shell7BaseXFEM::evalCovarBaseVectorsAt(), oofem::VTKXMLExportModule::exportIntVars(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::Shell7BaseXFEM::giveCZExportData(), oofem::PlaneStress2dXfem::giveDofManDofIDMask(), oofem::TrPlaneStress2dXFEM::giveDofManDofIDMask(), oofem::QTrPlaneStress2dXFEM::giveDofManDofIDMask(), oofem::Shell7BaseXFEM::giveDofManDofIDMask(), oofem::Shell7BaseXFEM::giveInternalForcesVector(), oofem::XfemStructuralElementInterface::giveIntersectionsTouchingCrack(), oofem::Shell7BaseXFEM::giveNumberOfDofs(), oofem::Shell7BaseXFEM::giveRecoveredTransverseInterfaceStress(), oofem::Shell7BaseXFEM::giveShellExportData(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), isElementEnriched(), oofem::XfemStructureManager::mergeCloseCracks(), oofem::Shell7BaseXFEM::OLDcomputeStiffnessMatrix(), oofem::XfemElementInterface::partitionEdgeSegment(), oofem::Shell7BaseXFEM::postInitialize(), oofem::PLCZdamageRadius::propagateInterface(), oofem::Shell7BaseXFEM::recoverShearStress(), oofem::XfemStructureManager::removeShortCracks(), restoreContext(), saveContext(), oofem::XfemStructureManager::splitCracks(), oofem::Tr2Shell7XFEM::updateIntegrationRuleMultiCrack(), updateNodeEnrichmentItemMap(), oofem::FractureManager::updateXFEM(), oofem::Shell7BaseXFEM::vtkEvalUpdatedGlobalCoordinateAt(), oofem::VTKXMLExportModule::writeXFEMVars(), oofem::XfemStructuralElementInterface::XfemElementInterface_computeConstitutiveMatrixAt(), oofem::XfemStructuralElementInterface::XfemElementInterface_computeStressVector(), oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt(), oofem::XfemElementInterface::XfemElementInterface_giveNumDofManEnrichments(), oofem::XfemElementInterface::XfemElementInterface_prepareNodesForDelaunay(), and oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule().

virtual const char* oofem::XfemManager::giveInputRecordName ( ) const
inlinevirtual

Reimplemented in oofem::XfemStructureManager.

Definition at line 200 of file xfemmanager.h.

References _IFT_XfemManager_Name.

Referenced by giveInputRecord().

const std :: vector< int >& oofem::XfemManager::giveMaterialModifyingEnrItemIndices ( ) const
inline
NucleationCriterion* oofem::XfemManager::giveNucleationCriterion ( int  n)
inline

Definition at line 187 of file xfemmanager.h.

int oofem::XfemManager::giveNumberOfEnrichmentItems ( ) const
inline

Definition at line 185 of file xfemmanager.h.

Referenced by oofem::Shell7BaseXFEM::computeBoundaryEdgeLoadVector(), oofem::Shell7BaseXFEM::computeCohesiveTangent(), oofem::Tr2Shell7XFEM::computeGaussPoints(), oofem::Shell7BaseXFEM::computeStiffnessMatrix(), oofem::XfemStructureManager::computeTotalCrackLength(), oofem::StructuralFE2MaterialStatus::copyStateVariables(), oofem::GnuplotExportModule::doOutput(), oofem::Node::drawYourself(), oofem::Shell7BaseXFEM::evalCovarBaseVectorsAt(), oofem::VTKXMLExportModule::exportIntVars(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::Shell7BaseXFEM::giveCZExportData(), oofem::Shell7BaseXFEM::giveDofManDofIDMask(), giveInputRecord(), oofem::Shell7BaseXFEM::giveInternalForcesVector(), oofem::Shell7BaseXFEM::giveNumberOfDofs(), oofem::Shell7BaseXFEM::giveRecoveredTransverseInterfaceStress(), oofem::Shell7BaseXFEM::giveShellExportData(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), isElementEnriched(), oofem::XfemStructureManager::mergeCloseCracks(), oofem::NCPrincipalStrain::nucleateEnrichmentItems(), oofem::NCPrincipalStress::nucleateEnrichmentItems(), oofem::Shell7BaseXFEM::OLDcomputeStiffnessMatrix(), oofem::XfemElementInterface::partitionEdgeSegment(), oofem::Shell7BaseXFEM::postInitialize(), oofem::Shell7BaseXFEM::recoverShearStress(), oofem::XfemStructureManager::removeShortCracks(), oofem::XfemStructureManager::splitCracks(), oofem::Tr2Shell7XFEM::updateIntegrationRuleMultiCrack(), updateNodeEnrichmentItemMap(), oofem::FractureManager::updateXFEM(), oofem::Shell7BaseXFEM::vtkEvalUpdatedGlobalCoordinateAt(), and oofem::VTKXMLExportModule::writeXFEMVars().

int oofem::XfemManager::giveNumberOfNucleationCriteria ( ) const
inline

Definition at line 188 of file xfemmanager.h.

Referenced by giveInputRecord().

int oofem::XfemManager::giveNumTriRefs ( ) const
inline

Number of Gauss points per sub-triangle in cut elements.

Definition at line 179 of file xfemmanager.h.

Referenced by oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule().

InternalStateValueType oofem::XfemManager::giveXFEMStateValueType ( XFEMStateType  type)
bool oofem::XfemManager::hasInitiationCriteria ( )

Definition at line 450 of file xfemmanager.C.

References enrichmentItemList.

Referenced by oofem::XfemSolverInterface::propagateXfemInterfaces().

bool oofem::XfemManager::hasNucleationCriteria ( )

Definition at line 508 of file xfemmanager.C.

References mNucleationCriteria.

Referenced by oofem::XfemSolverInterface::propagateXfemInterfaces().

bool oofem::XfemManager::hasPropagatingFronts ( )

Definition at line 439 of file xfemmanager.C.

References enrichmentItemList.

Referenced by oofem::XfemSolverInterface::propagateXfemInterfaces().

void oofem::XfemManager::initiateFronts ( bool &  oAnyFronHasPropagated,
TimeStep tStep 
)
void oofem::XfemManager::nucleateEnrichmentItems ( bool &  oNewItemsWereNucleated)
XfemManager& oofem::XfemManager::operator= ( const XfemManager )
delete
void oofem::XfemManager::propagateFronts ( bool &  oAnyFronHasPropagated)
virtual
contextIOResultType oofem::XfemManager::restoreContext ( DataStream stream,
ContextMode  mode,
void *  obj = NULL 
)

Restores the state of receiver from output stream.

Parameters
streamContext file.
modeDetermines amount of info in stream.
objSpecial parameter for sending extra information.
Returns
contextIOResultType.
Exceptions
ContextIOERRexception if error encountered.

Definition at line 295 of file xfemmanager.C.

References oofem::CIO_IOERR, oofem::CIO_OK, oofem::classFactory, CM_Definition, oofem::ClassFactory::createEnrichmentItem(), domain, enrichmentItemList, giveEnrichmentItem(), numberOfEnrichmentItems, oofem::DataStream::read(), oofem::FEMComponent::restoreContext(), and THROW_CIOERR.

contextIOResultType oofem::XfemManager::saveContext ( DataStream stream,
ContextMode  mode,
void *  obj = NULL 
)

Stores the state of receiver to output stream.

Parameters
streamContext stream.
modeDetermines amount of info in stream.
objSpecial parameter, used to pass optional parameters.
Returns
contextIOResultType.
Exceptions
ContextIOERRIf error encountered.

Definition at line 268 of file xfemmanager.C.

References oofem::CIO_IOERR, oofem::CIO_OK, CM_Definition, giveEnrichmentItem(), oofem::FEMComponent::giveInputRecordName(), numberOfEnrichmentItems, oofem::FEMComponent::saveContext(), THROW_CIOERR, and oofem::DataStream::write().

void oofem::XfemManager::setDomain ( Domain ipDomain)

Definition at line 259 of file xfemmanager.C.

References domain, and enrichmentItemList.

void oofem::XfemManager::setVtkDebug ( bool  iDebug)
inline

Definition at line 244 of file xfemmanager.h.

void oofem::XfemManager::updateYourself ( TimeStep tStep)
virtual

Update enrichment items (level sets).

Reimplemented in oofem::XfemStructureManager.

Definition at line 329 of file xfemmanager.C.

References enrichmentItemList, and updateNodeEnrichmentItemMap().

Referenced by oofem::XfemStructureManager::updateYourself().

Member Data Documentation

Domain* oofem::XfemManager::domain
protected
bool oofem::XfemManager::doVTKExport
protected

Definition at line 136 of file xfemmanager.h.

Referenced by giveInputRecord(), and initializeFrom().

bool oofem::XfemManager::mDebugVTK
protected

If extra debug vtk files should be written.

Definition at line 139 of file xfemmanager.h.

Referenced by giveInputRecord(), and initializeFrom().

std :: unordered_map< int, std :: vector< int > > oofem::XfemManager::mElementEnrichmentItemIndices
protected

Definition at line 146 of file xfemmanager.h.

Referenced by giveElementEnrichmentItemIndices(), and updateNodeEnrichmentItemMap().

double oofem::XfemManager::mEnrDofScaleFac
protected

Definition at line 134 of file xfemmanager.h.

Referenced by giveInputRecord(), and initializeFrom().

std :: vector< int > oofem::XfemManager::mMaterialModifyingEnrItemIndices
protected

Keep track of enrichment items that may assign a different material to some Gauss points.

Definition at line 152 of file xfemmanager.h.

Referenced by updateNodeEnrichmentItemMap().

std :: vector< std :: vector< int > > oofem::XfemManager::mNodeEnrichmentItemIndices
protected

Let the XfemManager keep track of enrichment items enriching each node and each element, to allow more efficient computations.

Definition at line 145 of file xfemmanager.h.

Referenced by isElementEnriched(), and updateNodeEnrichmentItemMap().

std::vector< std :: unique_ptr< NucleationCriterion > > oofem::XfemManager::mNucleationCriteria
protected

Nucleation of new enrichment items.

(For example, nucleation of new cracks.)

Definition at line 157 of file xfemmanager.h.

Referenced by hasNucleationCriteria(), instanciateYourself(), and nucleateEnrichmentItems().

int oofem::XfemManager::mNumGpPerTri
protected

The number of Gauss points to be used in each sub-triangle when subdividing cut elements.

Definition at line 124 of file xfemmanager.h.

Referenced by giveInputRecord(), and initializeFrom().

int oofem::XfemManager::mNumTriRef
protected

The number of times a subtriangle should be refined.

Definition at line 129 of file xfemmanager.h.

Referenced by giveInputRecord(), and initializeFrom().

IntArray oofem::XfemManager::mXFEMPotentialDofIDs
protected

Definition at line 160 of file xfemmanager.h.

Referenced by createEnrichedDofs(), and giveEnrichedDofIDs().

int oofem::XfemManager::numberOfNucleationCriteria
protected

Definition at line 118 of file xfemmanager.h.

Referenced by giveInputRecord(), initializeFrom(), and instanciateYourself().


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