Go to the documentation of this file.
49EnrFrontLinearBranchFuncOneEl :: EnrFrontLinearBranchFuncOneEl() :
53EnrFrontLinearBranchFuncOneEl :: ~EnrFrontLinearBranchFuncOneEl() { }
56void EnrFrontLinearBranchFuncOneEl :: 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)
61int EnrFrontLinearBranchFuncOneEl :: giveNumEnrichments(
const DofManager &iDMan)
const
66void EnrFrontLinearBranchFuncOneEl :: evaluateEnrFuncAt(std :: vector< double > &oEnrFunc,
const EfInput &iEfInput)
const
78 bool flipTangent =
false;
81 double r = 0.0, theta = 0.0;
82 EnrichmentItem :: calcPolarCoord(r, theta, xTip, pos, n, t, iEfInput, flipTangent);
87 for (
double val:oEnrFunc ) {
88 if ( !std :: isfinite(val) ) {
89 printf(
"r: %e theta: %e\n", r, theta);
96void EnrFrontLinearBranchFuncOneEl :: evaluateEnrFuncDerivAt(std :: vector< FloatArray > &oEnrFuncDeriv,
const EfInput &iEfInput,
const FloatArray &iGradLevelSet)
const
102 bool flipTangent =
false;
105 double r = 0.0, theta = 0.0;
106 EnrichmentItem :: calcPolarCoord(r, theta, xTip, iEfInput.
mPos, n, t, iEfInput, flipTangent);
109 size_t sizeStart = oEnrFuncDeriv.size();
110 mpBranchFunc.evaluateEnrFuncDerivAt(oEnrFuncDeriv, r, theta);
121 for (
size_t j = sizeStart; j < oEnrFuncDeriv.size(); j++ ) {
124 oEnrFuncDeriv [ j ] = enrFuncDerivGlob;
128void EnrFrontLinearBranchFuncOneEl :: evaluateEnrFuncJumps(std :: vector< double > &oEnrFuncJumps,
GaussPoint &iGP,
int iNodeInd,
bool iGPLivesOnCurrentCrack,
const double &iNormalSignDist)
const
133 double radius =
distance(gpCoord, xTip);
135 std :: vector< double >jumps;
138 oEnrFuncJumps.insert( oEnrFuncJumps.end(), jumps.begin(), jumps.end() );
141void EnrFrontLinearBranchFuncOneEl :: initializeFrom(
InputRecord &ir)
#define REGISTER_EnrichmentFront(class)
const char * giveInputRecordName() const override
LinElBranchFunction mpBranchFunc
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