OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
XfemStructureManager: XFEM manager with extra functionality specific for the sm module. More...
#include <xfemstructuremanager.h>
Public Member Functions | |
XfemStructureManager (Domain *domain) | |
virtual | ~XfemStructureManager () |
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 |
virtual void | propagateFronts (bool &oAnyFronHasPropagated) |
virtual void | updateYourself (TimeStep *tStep) |
Update enrichment items (level sets). More... | |
void | splitCracks () |
void | removeShortCracks () |
bool | tipsHaveOppositeDirection (EnrichmentFront *iEf1, EnrichmentFront *iEf2) |
void | mergeCloseCracks () |
bool | giveUseNonStdCz () const |
double | computeTotalCrackLength () |
Compute the total length of all cracks in the domain. More... | |
Public Member Functions inherited from oofem::XfemManager | |
InternalStateValueType | giveXFEMStateValueType (XFEMStateType type) |
XfemManager (Domain *domain) | |
Constructor. More... | |
virtual | ~XfemManager () |
Destructor. More... | |
XfemManager (const XfemManager &)=delete | |
XfemManager & | operator= (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) |
EnrichmentItem * | giveEnrichmentItem (int n) |
int | giveNumberOfEnrichmentItems () const |
NucleationCriterion * | giveNucleationCriterion (int n) |
int | giveNumberOfNucleationCriteria () const |
void | createEnrichedDofs () |
const IntArray & | giveEnrichedDofIDs () const |
IntArray | giveEnrichedDofIDs (const DofManager &iDMan) const |
Domain * | giveDomain () |
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... | |
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 |
Protected Attributes | |
bool | mSplitCracks |
If cracks should be splitted at intersections as a pre-processing step. More... | |
bool | mNonstandardCz |
If a non-standard cohesive zone formulation should be used. More... | |
double | mMinCrackLength |
Cracks shorter than this length are automatically removed. More... | |
double | mCrackMergeTol |
Cracks with tips closer than this distance are automatically merged. More... | |
std::unique_ptr< MaterialForceEvaluator > | mpMatForceEvaluator |
Evaluator for material forces. More... | |
Protected Attributes inherited from oofem::XfemManager | |
Domain * | domain |
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 |
Additional Inherited Members | |
Public Attributes inherited from oofem::XfemManager | |
IntArray | vtkExportFields |
List with the fields that should be exported to VTK. More... | |
XfemStructureManager: XFEM manager with extra functionality specific for the sm module.
Definition at line 62 of file xfemstructuremanager.h.
oofem::XfemStructureManager::XfemStructureManager | ( | Domain * | domain | ) |
|
virtual |
Definition at line 60 of file xfemstructuremanager.C.
double oofem::XfemStructureManager::computeTotalCrackLength | ( | ) |
Compute the total length of all cracks in the domain.
Definition at line 574 of file xfemstructuremanager.C.
References oofem::Crack::computeLength(), oofem::XfemManager::giveEnrichmentItem(), and oofem::XfemManager::giveNumberOfEnrichmentItems().
Referenced by oofem::StructuralFE2MaterialStatus::copyStateVariables(), and oofem::StructuralFE2Material::giveRealStressVector_3d().
|
inlinevirtual |
Reimplemented from oofem::XfemManager.
Definition at line 73 of file xfemstructuremanager.h.
|
virtual |
Reimplemented from oofem::XfemManager.
Definition at line 95 of file xfemstructuremanager.C.
References _IFT_XfemStructureManager_crackMergeTol, _IFT_XfemStructureManager_minCrackLength, _IFT_XfemStructureManager_nonstandardCZ, _IFT_XfemStructureManager_splitCracks, oofem::XfemManager::giveInputRecord(), mCrackMergeTol, mMinCrackLength, mNonstandardCz, mSplitCracks, and oofem::DynamicInputRecord::setField().
|
inlinevirtual |
Reimplemented from oofem::XfemManager.
Definition at line 74 of file xfemstructuremanager.h.
References _IFT_XfemStructureManager_Name.
|
inline |
Definition at line 90 of file xfemstructuremanager.h.
Referenced by oofem::XfemStructuralElementInterface::useNonStdCz(), and oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule().
|
virtual |
Initializes receiver according to object description stored in input record.
Reimplemented from oofem::XfemManager.
Definition at line 63 of file xfemstructuremanager.C.
References _IFT_XfemStructureManager_crackMergeTol, _IFT_XfemStructureManager_minCrackLength, _IFT_XfemStructureManager_nonstandardCZ, _IFT_XfemStructureManager_splitCracks, oofem::XfemManager::initializeFrom(), IR_GIVE_OPTIONAL_FIELD, mCrackMergeTol, mMinCrackLength, mNonstandardCz, mSplitCracks, and splitCracks().
|
virtual |
Reimplemented from oofem::XfemManager.
Definition at line 112 of file xfemstructuremanager.C.
References oofem::XfemManager::instanciateYourself(), mergeCloseCracks(), mSplitCracks, splitCracks(), and oofem::XfemManager::updateNodeEnrichmentItemMap().
void oofem::XfemStructureManager::mergeCloseCracks | ( | ) |
Definition at line 369 of file xfemstructuremanager.C.
References oofem::BasicGeometry::clear(), oofem::Crack::computeLength(), oofem::FloatArray::distance(), oofem::XfemManager::enrichmentItemList, oofem::EnrichmentItem::giveEnrichmentFrontEnd(), oofem::EnrichmentItem::giveEnrichmentFrontStart(), oofem::XfemManager::giveEnrichmentItem(), oofem::GeometryBasedEI::giveGeometry(), oofem::BasicGeometry::giveNrVertices(), oofem::XfemManager::giveNumberOfEnrichmentItems(), oofem::BasicGeometry::giveTips(), oofem::BasicGeometry::giveVertex(), oofem::BasicGeometry::insertVertexBack(), oofem::BasicGeometry::insertVertexFront(), mCrackMergeTol, oofem::TipInfo::mGlobalCoord, oofem::XfemManager::numberOfEnrichmentItems, OOFEM_ERROR, oofem::BasicGeometry::removeDuplicatePoints(), removeShortCracks(), oofem::EnrichmentItem::setEnrichmentFrontEnd(), oofem::EnrichmentItem::setEnrichmentFrontStart(), and tipsHaveOppositeDirection().
Referenced by instanciateYourself().
|
virtual |
Reimplemented from oofem::XfemManager.
Definition at line 127 of file xfemstructuremanager.C.
References oofem::XfemManager::enrichmentItemList, and oofem::XfemManager::updateNodeEnrichmentItemMap().
void oofem::XfemStructureManager::removeShortCracks | ( | ) |
Definition at line 325 of file xfemstructuremanager.C.
References oofem::BasicGeometry::clear(), oofem::Crack::computeLength(), oofem::XfemManager::giveEnrichmentItem(), oofem::GeometryBasedEI::giveGeometry(), oofem::XfemManager::giveNumberOfEnrichmentItems(), oofem::BasicGeometry::insertVertexBack(), and mMinCrackLength.
Referenced by mergeCloseCracks(), and splitCracks().
void oofem::XfemStructureManager::splitCracks | ( | ) |
Definition at line 150 of file xfemstructuremanager.C.
References oofem::GeometryBasedEI::appendInputRecords(), oofem::Crack::computeArcPoints(), oofem::Crack::computeCrackIntersectionPoints(), oofem::PolygonLine::cropPolygon(), oofem::FloatArray::dotProduct(), oofem::XfemManager::enrichmentItemList, oofem::XfemManager::giveDomain(), oofem::XfemManager::giveEnrichmentItem(), oofem::GeometryBasedEI::giveGeometry(), oofem::DynamicDataReader::giveInputRecord(), oofem::PolygonLine::giveNormal(), oofem::XfemManager::giveNumberOfEnrichmentItems(), oofem::PolygonLine::giveTangent(), oofem::DataReader::IR_enrichItemRec, oofem::XfemManager::numberOfEnrichmentItems, OOFEM_ERROR, removeShortCracks(), oofem::EnrFrontIntersection::setTangent(), and oofem::FloatArray::times().
Referenced by initializeFrom(), and instanciateYourself().
bool oofem::XfemStructureManager::tipsHaveOppositeDirection | ( | EnrichmentFront * | iEf1, |
EnrichmentFront * | iEf2 | ||
) |
Definition at line 361 of file xfemstructuremanager.C.
References oofem::FloatArray::dotProduct(), oofem::EnrichmentFront::giveTipInfo(), and oofem::TipInfo::mTangDir.
Referenced by mergeCloseCracks().
|
virtual |
Update enrichment items (level sets).
Reimplemented from oofem::XfemManager.
Definition at line 145 of file xfemstructuremanager.C.
References oofem::XfemManager::updateYourself().
|
protected |
Cracks with tips closer than this distance are automatically merged.
Definition at line 115 of file xfemstructuremanager.h.
Referenced by giveInputRecord(), initializeFrom(), and mergeCloseCracks().
|
protected |
Cracks shorter than this length are automatically removed.
Definition at line 110 of file xfemstructuremanager.h.
Referenced by giveInputRecord(), initializeFrom(), and removeShortCracks().
|
protected |
If a non-standard cohesive zone formulation should be used.
Definition at line 105 of file xfemstructuremanager.h.
Referenced by giveInputRecord(), and initializeFrom().
|
protected |
Evaluator for material forces.
Definition at line 120 of file xfemstructuremanager.h.
|
protected |
If cracks should be splitted at intersections as a pre-processing step.
Definition at line 100 of file xfemstructuremanager.h.
Referenced by giveInputRecord(), initializeFrom(), and instanciateYourself().