Go to the documentation of this file.
29void EnrFrontCohesiveBranchFuncOneEl :: MarkNodesAsFront(std :: unordered_map< int, NodeEnrichmentType > &ioNodeEnrMarkerMap,
XfemManager &ixFemMan,
const std :: unordered_map< int, double > &iLevelSetNormalDirMap,
const std :: unordered_map< int, double > &iLevelSetTangDirMap,
const TipInfo &iTipInfo)
34int EnrFrontCohesiveBranchFuncOneEl :: giveNumEnrichments(
const DofManager &iDMan)
const
39void EnrFrontCohesiveBranchFuncOneEl :: evaluateEnrFuncAt(std :: vector< double > &oEnrFunc,
const EfInput &iEfInput)
const
51 bool flipTangent =
false;
54 double r = 0.0, theta = 0.0;
55 EnrichmentItem :: calcPolarCoord(r, theta, xTip, pos, n, t, iEfInput, flipTangent);
60 for (
double val:oEnrFunc ) {
61 if ( !std :: isfinite(val) ) {
62 printf(
"r: %e theta: %e\n", r, theta);
69void EnrFrontCohesiveBranchFuncOneEl :: evaluateEnrFuncDerivAt(std :: vector< FloatArray > &oEnrFuncDeriv,
const EfInput &iEfInput,
const FloatArray &iGradLevelSet)
const
75 bool flipTangent =
false;
78 double r = 0.0, theta = 0.0;
79 EnrichmentItem :: calcPolarCoord(r, theta, xTip, iEfInput.
mPos, n, t, iEfInput, flipTangent);
82 size_t sizeStart = oEnrFuncDeriv.size();
83 mpBranchFunc.evaluateEnrFuncDerivAt(oEnrFuncDeriv, r, theta);
94 for (
size_t j = sizeStart; j < oEnrFuncDeriv.size(); j++ ) {
97 oEnrFuncDeriv [ j ] = enrFuncDerivGlob;
101void EnrFrontCohesiveBranchFuncOneEl :: evaluateEnrFuncJumps(std :: vector< double > &oEnrFuncJumps,
GaussPoint &iGP,
int iNodeInd,
bool iGPLivesOnCurrentCrack,
const double &iNormalSignDist)
const
106 double radius =
distance(gpCoord, xTip);
108 std :: vector< double >jumps;
111 oEnrFuncJumps.insert( oEnrFuncJumps.end(), jumps.begin(), jumps.end() );
114void EnrFrontCohesiveBranchFuncOneEl :: initializeFrom(
InputRecord &ir)
#define REGISTER_EnrichmentFront(class)
CohesiveBranchFunction mpBranchFunc
const char * giveInputRecordName() const override
virtual ~EnrFrontCohesiveBranchFuncOneEl()
EnrFrontCohesiveBranchFuncOneEl()
void MarkTipElementNodesAsFront(std ::unordered_map< int, NodeEnrichmentType > &ioNodeEnrMarkerMap, XfemManager &ixFemMan, const std ::unordered_map< int, double > &iLevelSetNormalDirMap, const std ::unordered_map< int, double > &iLevelSetTangDirMap, const TipInfo &iTipInfo)
TipInfo mTipInfo
reference to the associated enrichment item
void computeCrackTangent(FloatArray &oTangent, FloatArray &oNormal, bool &oFlipTangent, const EfInput &iEfInput) const
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
const FloatArray & giveGlobalCoordinates()
static FloatArray Vec2(const double &a, const double &b)
double distance(const FloatArray &x, const FloatArray &y)
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