OOFEM 3.0
Loading...
Searching...
No Matches
oofem::XfemManager Class Reference

#include <xfemmanager.h>

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

Public Member Functions

InternalStateValueType giveXFEMStateValueType (XFEMStateType type)
 XfemManager (Domain *domain)
 Constructor.
virtual ~XfemManager ()
 Destructor.
 XfemManager (const XfemManager &)=delete
XfemManageroperator= (const XfemManager &)=delete
int giveNumGpPerTri () const
int giveNumTriRefs () const
 Number of Gauss points per sub-triangle in cut elements.
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 void initializeFrom (InputRecord &ir)
 Initializes receiver according to object description stored in input record.
virtual void giveInputRecord (DynamicInputRecord &input)
virtual int instanciateYourself (DataReader &dr)
virtual const char * giveClassName () const
virtual const char * giveInputRecordName () const
virtual void postInitialize ()
DomaingiveDomain ()
void setDomain (Domain *ipDomain)
void saveContext (DataStream &stream, ContextMode mode)
void restoreContext (DataStream &stream, ContextMode mode)
virtual void updateYourself (TimeStep *tStep)
virtual void propagateFronts (bool &oAnyFronHasPropagated)
void initiateFronts (bool &oAnyFronHasPropagated, TimeStep *tStep)
bool hasPropagatingFronts ()
bool hasInitiationCriteria ()
void clearEnrichmentItems ()
 Remove all enrichment items.
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

Protected Attributes

Domaindomain
std::shared_ptr< InputRecordthisIr
std ::vector< std ::unique_ptr< EnrichmentItem > > enrichmentItemList
 Enrichment item list.
int numberOfEnrichmentItems
int numberOfNucleationCriteria
int mNumGpPerTri
int mNumTriRef
double mEnrDofScaleFac
bool doVTKExport
bool mDebugVTK
 If extra debug vtk files should be written.
std ::vector< std ::vector< int > > mNodeEnrichmentItemIndices
std ::unordered_map< int, std ::vector< int > > mElementEnrichmentItemIndices
std ::vector< int > mMaterialModifyingEnrItemIndices
std::vector< std ::unique_ptr< NucleationCriterion > > mNucleationCriteria
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

◆ XfemManager() [1/2]

oofem::XfemManager::XfemManager ( Domain * domain)

Constructor.

References domain, and XfemManager().

Referenced by operator=(), XfemManager(), and XfemManager().

◆ ~XfemManager()

oofem::XfemManager::~XfemManager ( )
virtual

Destructor.

Definition at line 83 of file xfemmanager.C.

◆ XfemManager() [2/2]

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

References XfemManager().

Member Function Documentation

◆ appendEnrichmentItems()

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

◆ clearEnrichmentItems()

void oofem::XfemManager::clearEnrichmentItems ( )

Remove all enrichment items.

Definition at line 463 of file xfemmanager.C.

References enrichmentItemList, and updateNodeEnrichmentItemMap().

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

◆ createEnrichedDofs()

void oofem::XfemManager::createEnrichedDofs ( )

Definition at line 127 of file xfemmanager.C.

References enrichmentItemList, and mXFEMPotentialDofIDs.

◆ giveClassName()

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

Reimplemented in oofem::XfemStructureManager.

Definition at line 200 of file xfemmanager.h.

◆ giveDomain()

◆ giveElementEnrichmentItemIndices()

void oofem::XfemManager::giveElementEnrichmentItemIndices ( std ::vector< int > & oElemEnrInd,
int iElementIndex ) const

◆ giveEnrDofScaleFactor()

double oofem::XfemManager::giveEnrDofScaleFactor ( ) const
inline

◆ giveEnrichedDofIDs() [1/2]

const IntArray & oofem::XfemManager::giveEnrichedDofIDs ( ) const
inline

◆ giveEnrichedDofIDs() [2/2]

IntArray oofem::XfemManager::giveEnrichedDofIDs ( const DofManager & iDMan) const

◆ giveEnrichmentItem()

EnrichmentItem * oofem::XfemManager::giveEnrichmentItem ( int n)
inline

Definition at line 185 of file xfemmanager.h.

References enrichmentItemList.

Referenced by oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::XfemElementInterface::computeNCohesive(), oofem::XfemStructureManager::computeTotalCrackLength(), oofem::StructuralFE2MaterialStatus::copyStateVariables(), oofem::GnuplotExportModule::doOutput(), oofem::Node::drawYourself(), oofem::VTKXMLXFemExportModule::exportIntVars2(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::Shell7BaseXFEM::giveCZExportData(), oofem::VTKXMLXFemExportModule::giveDataHeaders(), oofem::PlaneStress2dXfem::giveDofManDofIDMask(), oofem::QTrPlaneStress2dXFEM::giveDofManDofIDMask(), oofem::TrPlaneStress2dXFEM::giveDofManDofIDMask(), oofem::XfemStructuralElementInterface::giveIntersectionsTouchingCrack(), oofem::Shell7BaseXFEM::giveShellExportData(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), isElementEnriched(), oofem::XfemStructureManager::mergeCloseCracks(), oofem::XfemElementInterface::partitionEdgeSegment(), postInitialize(), oofem::PLCZdamageRadius::propagateInterface(), oofem::XfemStructureManager::removeShortCracks(), restoreContext(), saveContext(), oofem::XfemStructureManager::splitCracks(), updateNodeEnrichmentItemMap(), oofem::FractureManager::updateXFEM(), oofem::VTKXMLXFemExportModule::writeXFEMVars(), oofem::XfemStructuralElementInterface::XfemElementInterface_computeConstitutiveMatrixAt(), oofem::XfemStructuralElementInterface::XfemElementInterface_computeStressVector(), oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt(), oofem::XfemElementInterface::XfemElementInterface_giveNumDofManEnrichments(), oofem::XfemElementInterface::XfemElementInterface_prepareNodesForDelaunay(), oofem::XfemElementInterface::XfemElementInterface_prepareNodesForDelaunay(), and oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule().

◆ giveInputRecord()

◆ giveInputRecordName()

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

Reimplemented in oofem::XfemStructureManager.

Definition at line 201 of file xfemmanager.h.

References _IFT_XfemManager_Name.

Referenced by giveInputRecord().

◆ giveMaterialModifyingEnrItemIndices()

const std ::vector< int > & oofem::XfemManager::giveMaterialModifyingEnrItemIndices ( ) const
inline

◆ giveNodeEnrichmentItemIndices()

◆ giveNucleationCriterion()

NucleationCriterion * oofem::XfemManager::giveNucleationCriterion ( int n)
inline

Definition at line 188 of file xfemmanager.h.

References mNucleationCriteria.

Referenced by postInitialize().

◆ giveNumberOfEnrichmentItems()

◆ giveNumberOfNucleationCriteria()

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

Definition at line 189 of file xfemmanager.h.

References mNucleationCriteria.

Referenced by giveInputRecord().

◆ giveNumGpPerTri()

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

◆ giveNumTriRefs()

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

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

Definition at line 180 of file xfemmanager.h.

References mNumTriRef.

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

◆ giveVtkDebug()

◆ giveXFEMStateValueType()

◆ hasInitiationCriteria()

bool oofem::XfemManager::hasInitiationCriteria ( )

Definition at line 452 of file xfemmanager.C.

References enrichmentItemList.

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

◆ hasNucleationCriteria()

bool oofem::XfemManager::hasNucleationCriteria ( )

Definition at line 511 of file xfemmanager.C.

References mNucleationCriteria.

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

◆ hasPropagatingFronts()

bool oofem::XfemManager::hasPropagatingFronts ( )

Definition at line 441 of file xfemmanager.C.

References enrichmentItemList.

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

◆ initializeFrom()

◆ initiateFronts()

void oofem::XfemManager::initiateFronts ( bool & oAnyFronHasPropagated,
TimeStep * tStep )

◆ instanciateYourself()

◆ isElementEnriched()

◆ nucleateEnrichmentItems()

void oofem::XfemManager::nucleateEnrichmentItems ( bool & oNewItemsWereNucleated)

◆ operator=()

XfemManager & oofem::XfemManager::operator= ( const XfemManager & )
delete

References XfemManager().

◆ postInitialize()

void oofem::XfemManager::postInitialize ( )
virtual

◆ propagateFronts()

void oofem::XfemManager::propagateFronts ( bool & oAnyFronHasPropagated)
virtual

◆ restoreContext()

void oofem::XfemManager::restoreContext ( DataStream & stream,
ContextMode mode )

Restores the state of receiver from output stream.

Parameters
streamContext file.
modeDetermines amount of info in stream.
Exceptions
ContextIOERRexception if error encountered.

Definition at line 298 of file xfemmanager.C.

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

◆ saveContext()

void oofem::XfemManager::saveContext ( DataStream & stream,
ContextMode mode )

Stores the state of receiver to output stream.

Parameters
streamContext stream.
modeDetermines amount of info in stream.
Exceptions
ContextIOERRIf error encountered.

Definition at line 277 of file xfemmanager.C.

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

◆ setDomain()

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

Definition at line 268 of file xfemmanager.C.

References domain, and enrichmentItemList.

◆ setVtkDebug()

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

Definition at line 243 of file xfemmanager.h.

References mDebugVTK.

◆ updateNodeEnrichmentItemMap()

◆ updateYourself()

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

Update enrichment items (level sets).

Reimplemented in oofem::XfemStructureManager.

Definition at line 326 of file xfemmanager.C.

References enrichmentItemList, and updateNodeEnrichmentItemMap().

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

Member Data Documentation

◆ domain

Domain* oofem::XfemManager::domain
protected

◆ doVTKExport

bool oofem::XfemManager::doVTKExport
protected

Definition at line 137 of file xfemmanager.h.

Referenced by giveInputRecord(), and initializeFrom().

◆ enrichmentItemList

◆ mDebugVTK

bool oofem::XfemManager::mDebugVTK
protected

If extra debug vtk files should be written.

Definition at line 140 of file xfemmanager.h.

Referenced by giveInputRecord(), giveVtkDebug(), initializeFrom(), and setVtkDebug().

◆ mElementEnrichmentItemIndices

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

Definition at line 147 of file xfemmanager.h.

Referenced by giveElementEnrichmentItemIndices(), and updateNodeEnrichmentItemMap().

◆ mEnrDofScaleFac

double oofem::XfemManager::mEnrDofScaleFac
protected

Definition at line 135 of file xfemmanager.h.

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

◆ mMaterialModifyingEnrItemIndices

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 153 of file xfemmanager.h.

Referenced by giveMaterialModifyingEnrItemIndices(), and updateNodeEnrichmentItemMap().

◆ mNodeEnrichmentItemIndices

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 146 of file xfemmanager.h.

Referenced by giveNodeEnrichmentItemIndices(), isElementEnriched(), and updateNodeEnrichmentItemMap().

◆ mNucleationCriteria

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

Nucleation of new enrichment items. (For example, nucleation of new cracks.)

Definition at line 158 of file xfemmanager.h.

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

◆ mNumGpPerTri

int oofem::XfemManager::mNumGpPerTri
protected

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

Definition at line 125 of file xfemmanager.h.

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

◆ mNumTriRef

int oofem::XfemManager::mNumTriRef
protected

The number of times a subtriangle should be refined.

Definition at line 130 of file xfemmanager.h.

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

◆ mXFEMPotentialDofIDs

IntArray oofem::XfemManager::mXFEMPotentialDofIDs
protected

Definition at line 161 of file xfemmanager.h.

Referenced by createEnrichedDofs(), giveEnrichedDofIDs(), and giveEnrichedDofIDs().

◆ numberOfEnrichmentItems

◆ numberOfNucleationCriteria

int oofem::XfemManager::numberOfNucleationCriteria
protected

Definition at line 119 of file xfemmanager.h.

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

◆ thisIr

std::shared_ptr<InputRecord> oofem::XfemManager::thisIr
protected

Definition at line 113 of file xfemmanager.h.

Referenced by initializeFrom(), and instanciateYourself().

◆ vtkExportFields


The documentation for this class was generated from the following files:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011