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

#include <xfemelementinterface.h>

Inheritance diagram for oofem::XfemElementInterface:
Collaboration diagram for oofem::XfemElementInterface:

Public Member Functions

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 bool XfemElementInterface_updateIntegrationRule ()
 Updates integration rule based on the 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

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

Static Protected Attributes

static ParamKey IPK_XfemElementInterface_CohesiveZoneMaterial
static ParamKey IPK_XfemElementInterface_NumIntPointsCZ
static ParamKey IPK_XfemElementInterface_PlaneStrain

Detailed Description

Provides Xfem interface for an element.

Author
Erik Svenning

Definition at line 64 of file xfemelementinterface.h.

Constructor & Destructor Documentation

◆ XfemElementInterface() [1/2]

◆ ~XfemElementInterface()

oofem::XfemElementInterface::~XfemElementInterface ( )
virtual

Definition at line 72 of file xfemelementinterface.C.

◆ XfemElementInterface() [2/2]

oofem::XfemElementInterface::XfemElementInterface ( const XfemElementInterface & src)
delete

Member Function Documentation

◆ ComputeBOrBHMatrix()

void oofem::XfemElementInterface::ComputeBOrBHMatrix ( FloatMatrix & oAnswer,
GaussPoint & iGP,
Element & iEl,
bool iComputeBH,
const FloatArray & iNaturalGpCoord )

◆ computeDisplacementJump()

void oofem::XfemElementInterface::computeDisplacementJump ( GaussPoint & iGP,
FloatArray & oJump,
const FloatArray & iSolVec,
const FloatMatrix & iNMatrix )

◆ computeNCohesive()

◆ errorInfo()

std::string oofem::XfemElementInterface::errorInfo ( const char * func) const
inline

Definition at line 89 of file xfemelementinterface.h.

References giveClassName().

◆ giveClassName()

const char * oofem::XfemElementInterface::giveClassName ( ) const
inlineoverridevirtual

Implements oofem::Interface.

Definition at line 88 of file xfemelementinterface.h.

Referenced by errorInfo().

◆ giveMaterialMode()

MaterialMode oofem::XfemElementInterface::giveMaterialMode ( )

Definition at line 977 of file xfemelementinterface.C.

References mUsePlaneStrain.

◆ operator=()

◆ partitionEdgeSegment()

void oofem::XfemElementInterface::partitionEdgeSegment ( int iBndIndex,
std ::vector< Line > & oSegments,
std ::vector< FloatArray > & oIntersectionPoints,
const double & iTangDistPadding = 0.0 )

◆ putPointsInCorrectPartition()

void oofem::XfemElementInterface::putPointsInCorrectPartition ( std ::vector< std ::vector< FloatArray > > & oPointPartitions,
const std ::vector< FloatArray > & iIntersecPoints,
const std ::vector< const FloatArray * > & iNodeCoord ) const

◆ updateYourselfCZ()

void oofem::XfemElementInterface::updateYourselfCZ ( TimeStep * tStep)

Definition at line 986 of file xfemelementinterface.C.

References mpCZExtraIntegrationRules, and mpCZIntegrationRules.

◆ XfemElementInterface_createEnrBHmatrixAt()

void oofem::XfemElementInterface::XfemElementInterface_createEnrBHmatrixAt ( FloatMatrix & oAnswer,
GaussPoint & iGP,
Element & iEl )

◆ XfemElementInterface_createEnrBmatrixAt()

void oofem::XfemElementInterface::XfemElementInterface_createEnrBmatrixAt ( FloatMatrix & oAnswer,
GaussPoint & iGP,
Element & iEl )

◆ XfemElementInterface_createEnrNmatrixAt() [1/2]

◆ XfemElementInterface_createEnrNmatrixAt() [2/2]

◆ XfemElementInterface_giveNumDofManEnrichments()

int oofem::XfemElementInterface::XfemElementInterface_giveNumDofManEnrichments ( const DofManager & iDMan,
XfemManager & iXMan ) const

◆ XfemElementInterface_partitionElement()

void oofem::XfemElementInterface::XfemElementInterface_partitionElement ( std ::vector< Triangle > & oTriangles,
const std ::vector< FloatArray > & iPoints )
virtual

◆ XfemElementInterface_prepareNodesForDelaunay() [1/2]

void oofem::XfemElementInterface::XfemElementInterface_prepareNodesForDelaunay ( std ::vector< std ::vector< FloatArray > > & oPointPartitions,
double & oCrackStartXi,
double & oCrackEndXi,
const Triangle & iTri,
int iEnrItemIndex,
bool & oIntersection )
virtual

◆ XfemElementInterface_prepareNodesForDelaunay() [2/2]

void oofem::XfemElementInterface::XfemElementInterface_prepareNodesForDelaunay ( std ::vector< std ::vector< FloatArray > > & oPointPartitions,
double & oCrackStartXi,
double & oCrackEndXi,
int iEnrItemIndex,
bool & oIntersection )
virtual

◆ XfemElementInterface_updateIntegrationRule()

Member Data Documentation

◆ element

◆ IPK_XfemElementInterface_CohesiveZoneMaterial

ParamKey oofem::XfemElementInterface::IPK_XfemElementInterface_CohesiveZoneMaterial
staticprotected

◆ IPK_XfemElementInterface_NumIntPointsCZ

ParamKey oofem::XfemElementInterface::IPK_XfemElementInterface_NumIntPointsCZ
staticprotected

◆ IPK_XfemElementInterface_PlaneStrain

ParamKey oofem::XfemElementInterface::IPK_XfemElementInterface_PlaneStrain
staticprotected

◆ mCZEnrItemIndices

std :: vector< int > oofem::XfemElementInterface::mCZEnrItemIndices

◆ mCZTouchingEnrItemIndices

std :: vector< std :: vector< int > > oofem::XfemElementInterface::mCZTouchingEnrItemIndices

Indices of enrichment items that give cohesive zone contributions to a given GP, even though the GP is not located on any of these enrichment items.

Definition at line 83 of file xfemelementinterface.h.

Referenced by oofem::XfemStructuralElementInterface::computeCohesiveForces(), oofem::XfemStructuralElementInterface::computeCohesiveTangent(), and oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule().

◆ mIntRule_tmp

std :: vector< std :: unique_ptr< IntegrationRule > > oofem::XfemElementInterface::mIntRule_tmp

◆ mpCZExtraIntegrationRules

◆ mpCZExtraIntegrationRules_tmp

std :: vector< std :: unique_ptr< IntegrationRule > > oofem::XfemElementInterface::mpCZExtraIntegrationRules_tmp

◆ mpCZIntegrationRules

◆ mpCZIntegrationRules_tmp

std :: vector< std :: unique_ptr< IntegrationRule > > oofem::XfemElementInterface::mpCZIntegrationRules_tmp

◆ mUsePlaneStrain


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