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

#include <xfemstructuralelementinterface.h>

Inheritance diagram for oofem::XfemStructuralElementInterface:
Collaboration diagram for oofem::XfemStructuralElementInterface:

Public Member Functions

 XfemStructuralElementInterface (Element *e)
bool XfemElementInterface_updateIntegrationRule () override
 Updates integration rule based on the triangulation.
MaterialStatusgiveClosestGP_MatStat (double &oClosestDist, std ::vector< std ::unique_ptr< IntegrationRule > > &iRules, const FloatArray &iCoord)
double computeEffectiveSveSize (StructuralFE2MaterialStatus *iFe2Ms)
virtual void XfemElementInterface_computeConstitutiveMatrixAt (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *, TimeStep *tStep)
virtual void XfemElementInterface_computeStressVector (FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
virtual bool hasCohesiveZone () const
virtual void computeCohesiveForces (FloatArray &answer, TimeStep *tStep)
virtual void computeGlobalCohesiveTractionVector (FloatArray &oT, const FloatArray &iJump, const FloatArray &iCrackNormal, const FloatMatrix &iNMatrix, GaussPoint &iGP, TimeStep *tStep)
virtual void computeCohesiveTangent (FloatMatrix &answer, TimeStep *tStep)
virtual void computeCohesiveTangentAt (FloatMatrix &answer, TimeStep *tStep)
virtual void XfemElementInterface_computeConsistentMassMatrix (FloatMatrix &answer, TimeStep *tStep, double &mass, const double *ipDensity=NULL)
virtual void initializeCZFrom (InputRecord &ir, int priority)
virtual void giveCZInputRecord (DynamicInputRecord &input)
virtual void postInitialize ()
virtual void initializeCZMaterial ()
bool useNonStdCz ()
virtual void XfemElementInterface_computeDeformationGradientVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
void giveIntersectionsTouchingCrack (std ::vector< int > &oTouchingEnrItemIndices, const std ::vector< int > &iCandidateIndices, int iEnrItemIndex, XfemManager &iXMan)
void giveSubtriangulationCompositeExportData (std ::vector< ExportRegion > &vtkPieces, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep)
 VTK Interface.
void computeIPAverageInTriangle (FloatArray &answer, IntegrationRule *iRule, Element *elem, InternalStateType isType, TimeStep *tStep, const Triangle &iTri)
 Help functions for VTK export.
Public Member Functions inherited from oofem::XfemElementInterface
const char * giveClassName () const override
std::string errorInfo (const char *func) const
 XfemElementInterface (Element *e)
 Constructor.
virtual ~XfemElementInterface ()
 XfemElementInterface (const XfemElementInterface &src)=delete
XfemElementInterfaceoperator= (const XfemElementInterface &src)=delete
void XfemElementInterface_createEnrBmatrixAt (FloatMatrix &oAnswer, GaussPoint &iGP, Element &iEl)
 Creates enriched B-matrix.
void XfemElementInterface_createEnrBHmatrixAt (FloatMatrix &oAnswer, GaussPoint &iGP, Element &iEl)
 Creates enriched BH-matrix.
void ComputeBOrBHMatrix (FloatMatrix &oAnswer, GaussPoint &iGP, Element &iEl, bool iComputeBH, const FloatArray &iNaturalGpCoord)
void XfemElementInterface_createEnrNmatrixAt (FloatMatrix &oAnswer, const FloatArray &iLocCoord, Element &iEl, bool iSetDiscontContribToZero)
 Creates enriched N-matrix.
void XfemElementInterface_createEnrNmatrixAt (FloatMatrix &oAnswer, const FloatArray &iLocCoord, Element &iEl, const std ::vector< int > &iLocNodeInd, bool iSetDiscontContribToZero)
int XfemElementInterface_giveNumDofManEnrichments (const DofManager &iDMan, XfemManager &iXMan) const
virtual void XfemElementInterface_partitionElement (std ::vector< Triangle > &oTriangles, const std ::vector< FloatArray > &iPoints)
 Partitions the element into patches by a triangulation.
virtual void XfemElementInterface_prepareNodesForDelaunay (std ::vector< std ::vector< FloatArray > > &oPointPartitions, double &oCrackStartXi, double &oCrackEndXi, int iEnrItemIndex, bool &oIntersection)
 Returns an array of array of points. Each array of points defines the points of a subregion of the element.
virtual void XfemElementInterface_prepareNodesForDelaunay (std ::vector< std ::vector< FloatArray > > &oPointPartitions, double &oCrackStartXi, double &oCrackEndXi, const Triangle &iTri, int iEnrItemIndex, bool &oIntersection)
void putPointsInCorrectPartition (std ::vector< std ::vector< FloatArray > > &oPointPartitions, const std ::vector< FloatArray > &iIntersecPoints, const std ::vector< const FloatArray * > &iNodeCoord) const
void partitionEdgeSegment (int iBndIndex, std ::vector< Line > &oSegments, std ::vector< FloatArray > &oIntersectionPoints, const double &iTangDistPadding=0.0)
MaterialMode giveMaterialMode ()
void updateYourselfCZ (TimeStep *tStep)
void computeDisplacementJump (GaussPoint &iGP, FloatArray &oJump, const FloatArray &iSolVec, const FloatMatrix &iNMatrix)
void computeNCohesive (FloatMatrix &oN, GaussPoint &iGP, int iEnrItemIndex, const std ::vector< int > &iTouchingEnrItemIndices)
Public Member Functions inherited from oofem::Interface
 Interface ()
 Constructor.
virtual ~Interface ()

Public Attributes

MaterialmpCZMat = nullptr
int mCZMaterialNum = -1
int mCSNumGaussPoints = 4
bool mIncludeBulkJump = true
bool mIncludeBulkCorr = true
std ::vector< TrianglemSubTri
Public Attributes inherited from oofem::XfemElementInterface
Elementelement
std ::vector< int > mCZEnrItemIndices
 Index of enrichment items associated with cohesive zones.
std ::vector< std ::vector< int > > mCZTouchingEnrItemIndices
bool mUsePlaneStrain
 Flag that tells if plane stress or plane strain is assumed.
std ::vector< std ::unique_ptr< IntegrationRule > > mpCZIntegrationRules
std ::vector< std ::unique_ptr< IntegrationRule > > mpCZExtraIntegrationRules
std ::vector< std ::unique_ptr< IntegrationRule > > mpCZIntegrationRules_tmp
std ::vector< std ::unique_ptr< IntegrationRule > > mpCZExtraIntegrationRules_tmp
std ::vector< std ::unique_ptr< IntegrationRule > > mIntRule_tmp

Additional Inherited Members

Static Protected Attributes inherited from oofem::XfemElementInterface
static ParamKey IPK_XfemElementInterface_CohesiveZoneMaterial
static ParamKey IPK_XfemElementInterface_NumIntPointsCZ
static ParamKey IPK_XfemElementInterface_PlaneStrain

Detailed Description

Provides Xfem interface for a structural element.

Author
Erik Svenning
Date
Feb 14, 2014

Definition at line 50 of file xfemstructuralelementinterface.h.

Constructor & Destructor Documentation

◆ XfemStructuralElementInterface()

Member Function Documentation

◆ computeCohesiveForces()

◆ computeCohesiveTangent()

void oofem::XfemStructuralElementInterface::computeCohesiveTangent ( FloatMatrix & answer,
TimeStep * tStep )
virtual

Definition at line 1039 of file xfemstructuralelementinterface.C.

References oofem::FloatArray::add(), oofem::FloatMatrix::add(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::FloatMatrix::beProductOf(), oofem::FloatMatrix::beProductTOf(), oofem::FloatMatrix::beTProductOf(), oofem::FloatMatrix::beTranspositionOf(), oofem::FloatMatrix::beUnitMatrix(), oofem::FloatArray::beVectorProductOf(), oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::XfemElementInterface::computeDisplacementJump(), computeEffectiveSveSize(), computeGlobalCohesiveTractionVector(), oofem::XfemElementInterface::computeNCohesive(), oofem::CS_Thickness, oofem::XfemElementInterface::element, oofem::CrossSection::give(), oofem::StructuralFE2Material::give3dMaterialStiffnessMatrix(), oofem::StructuralMaterial::give3dMaterialStiffnessMatrix(), oofem::StructuralInterfaceMaterial::give3dStiffnessMatrix_dTdj(), oofem::GaussPoint::giveGlobalCoordinates(), oofem::GaussPoint::giveMaterialStatus(), oofem::StructuralFE2MaterialStatus::giveNormal(), oofem::StructuralInterfaceMaterialStatus::giveNormal(), oofem::GaussPoint::giveWeight(), oofem::StructuralInterfaceMaterial::hasAnalyticalTangentStiffness(), hasCohesiveZone(), oofem::XfemElementInterface::mCZEnrItemIndices, oofem::XfemElementInterface::mCZTouchingEnrItemIndices, mIncludeBulkCorr, mIncludeBulkJump, oofem::XfemElementInterface::mpCZExtraIntegrationRules, oofem::XfemElementInterface::mpCZIntegrationRules, mpCZMat, OOFEM_ERROR, oofem::FloatMatrix::resize(), oofem::FloatMatrix::setColumn(), oofem::FloatMatrix::times(), useNonStdCz(), oofem::Vec3(), and oofem::FloatMatrix::zero().

◆ computeCohesiveTangentAt()

void oofem::XfemStructuralElementInterface::computeCohesiveTangentAt ( FloatMatrix & answer,
TimeStep * tStep )
virtual

Definition at line 1385 of file xfemstructuralelementinterface.C.

References hasCohesiveZone().

◆ computeEffectiveSveSize()

◆ computeGlobalCohesiveTractionVector()

void oofem::XfemStructuralElementInterface::computeGlobalCohesiveTractionVector ( FloatArray & oT,
const FloatArray & iJump,
const FloatArray & iCrackNormal,
const FloatMatrix & iNMatrix,
GaussPoint & iGP,
TimeStep * tStep )
virtual

◆ computeIPAverageInTriangle()

void oofem::XfemStructuralElementInterface::computeIPAverageInTriangle ( FloatArray & answer,
IntegrationRule * iRule,
Element * elem,
InternalStateType isType,
TimeStep * tStep,
const Triangle & iTri )

◆ giveClosestGP_MatStat()

MaterialStatus * oofem::XfemStructuralElementInterface::giveClosestGP_MatStat ( double & oClosestDist,
std ::vector< std ::unique_ptr< IntegrationRule > > & iRules,
const FloatArray & iCoord )

◆ giveCZInputRecord()

◆ giveIntersectionsTouchingCrack()

void oofem::XfemStructuralElementInterface::giveIntersectionsTouchingCrack ( std ::vector< int > & oTouchingEnrItemIndices,
const std ::vector< int > & iCandidateIndices,
int iEnrItemIndex,
XfemManager & iXMan )

◆ giveSubtriangulationCompositeExportData()

◆ hasCohesiveZone()

virtual bool oofem::XfemStructuralElementInterface::hasCohesiveZone ( ) const
inlinevirtual

◆ initializeCZFrom()

◆ initializeCZMaterial()

void oofem::XfemStructuralElementInterface::initializeCZMaterial ( )
virtual

◆ postInitialize()

virtual void oofem::XfemStructuralElementInterface::postInitialize ( )
inlinevirtual

◆ useNonStdCz()

bool oofem::XfemStructuralElementInterface::useNonStdCz ( )

◆ XfemElementInterface_computeConsistentMassMatrix()

◆ XfemElementInterface_computeConstitutiveMatrixAt()

◆ XfemElementInterface_computeDeformationGradientVector()

◆ XfemElementInterface_computeStressVector()

◆ XfemElementInterface_updateIntegrationRule()

bool oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule ( )
overridevirtual

Updates integration rule based on the triangulation.

Reimplemented from oofem::XfemElementInterface.

Definition at line 87 of file xfemstructuralelementinterface.C.

References oofem::Crack::AppendCohesiveZoneGaussPoint(), oofem::FloatArray::at(), oofem::FloatArray::beDifferenceOf(), oofem::FloatArray::computeSquaredNorm(), oofem::MaterialStatusMapperInterface::copyStateVariables(), oofem::StructuralCrossSection::createMaterialStatus(), oofem::distance(), oofem::XfemElementInterface::element, oofem::StructuralFE2MaterialStatus::giveBC(), giveClosestGP_MatStat(), oofem::EngngModel::giveCurrentStep(), oofem::XfemManager::giveDomain(), oofem::XfemManager::giveElementEnrichmentItemIndices(), oofem::Domain::giveElementPlaceInArray(), oofem::Domain::giveEngngModel(), oofem::XfemManager::giveEnrichmentItem(), giveIntersectionsTouchingCrack(), oofem::XfemManager::giveNumGpPerTri(), oofem::XfemManager::giveNumTriRefs(), oofem::StructuralElement::giveStructuralCrossSection(), oofem::GeometryBasedEI::giveSubPolygon(), oofem::TimeStep::giveTargetTime(), oofem::XfemStructureManager::giveUseNonStdCz(), oofem::XfemManager::giveVtkDebug(), initializeCZMaterial(), oofem::XfemManager::isElementEnriched(), oofem::StructuralFE2MaterialStatus::letNormalBe(), oofem::StructuralInterfaceMaterialStatus::letNormalBe(), mCSNumGaussPoints, oofem::XfemElementInterface::mCZEnrItemIndices, mCZMaterialNum, oofem::XfemElementInterface::mCZTouchingEnrItemIndices, mIncludeBulkCorr, oofem::XfemElementInterface::mIntRule_tmp, oofem::XfemElementInterface::mpCZExtraIntegrationRules, oofem::XfemElementInterface::mpCZExtraIntegrationRules_tmp, oofem::XfemElementInterface::mpCZIntegrationRules, oofem::XfemElementInterface::mpCZIntegrationRules_tmp, mpCZMat, mSubTri, oofem::FloatArray::normalize(), OOFEM_ERROR, oofem::PrescribedGradientBCWeak::recomputeTractionMesh(), oofem::Triangle::refineTriangle(), oofem::PrescribedGradientBCWeak::setPeriodicityNormal(), oofem::Vec2(), oofem::Vec3(), oofem::XfemElementInterface::XfemElementInterface_partitionElement(), and oofem::XfemElementInterface::XfemElementInterface_prepareNodesForDelaunay().

Referenced by oofem::PlaneStress2dXfem::computeGaussPoints(), oofem::QTrPlaneStress2dXFEM::computeGaussPoints(), and oofem::TrPlaneStress2dXFEM::computeGaussPoints().

Member Data Documentation

◆ mCSNumGaussPoints

int oofem::XfemStructuralElementInterface::mCSNumGaussPoints = 4

◆ mCZMaterialNum

int oofem::XfemStructuralElementInterface::mCZMaterialNum = -1

◆ mIncludeBulkCorr

bool oofem::XfemStructuralElementInterface::mIncludeBulkCorr = true

◆ mIncludeBulkJump

bool oofem::XfemStructuralElementInterface::mIncludeBulkJump = true

◆ mpCZMat

◆ mSubTri


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