48 mEnrichmentRadius(0.0)
77 for (
int i = 1; i <= nNodes; i++ ) {
117 bool flipTangent =
false;
120 double r = 0.0, theta = 0.0;
132 bool flipTangent =
false;
135 double r = 0.0, theta = 0.0;
139 size_t sizeStart = oEnrFuncDeriv.size();
151 for (
size_t j = sizeStart; j < oEnrFuncDeriv.size(); j++ ) {
153 enrFuncDerivGlob.
beProductOf(E, oEnrFuncDeriv [ j ]);
154 oEnrFuncDeriv [ j ] = enrFuncDerivGlob;
162 double radius = gpCoord.
distance(xTip);
164 std :: vector< double >jumps;
167 oEnrFuncJumps.insert( oEnrFuncJumps.end(), jumps.begin(), jumps.end() );
#define _IFT_EnrFrontLinearBranchFuncRadius_Radius
TipInfo mTipInfo
reference to the associated enrichment item
int giveNumberOfDofManagers() const
Returns number of dof managers in domain.
virtual void giveJump(std::vector< double > &oJumps) const
double & at(int i)
Coefficient access function.
TipInfo gathers useful information about a crack tip, like its position and tangent direction...
virtual int giveNumEnrichments(const DofManager &iDMan) const
virtual void evaluateEnrFuncDerivAt(std::vector< FloatArray > &oEnrFuncDeriv, const EfInput &iEfInput, const FloatArray &iGradLevelSet) const
virtual FloatArray * giveCoordinates()
Base class for dof managers.
virtual void giveInputRecord(DynamicInputRecord &input)
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)
Several enrichment fronts enrich all nodes in the tip element.
double distance(const FloatArray &x) const
Computes the distance between position represented by receiver and position given as parameter...
virtual void evaluateEnrFuncAt(std::vector< double > &oEnrFunc, const double &iR, const double &iTheta) const
EnrFrontLinearBranchFuncRadius.
virtual const char * giveInputRecordName() const
virtual ~EnrFrontLinearBranchFuncRadius()
virtual IRResultType initializeFrom(InputRecord *ir)
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
virtual void evaluateEnrFuncAt(std::vector< double > &oEnrFunc, const EfInput &iEfInput) const
double distance_square(const FloatArray &iP1, const FloatArray &iP2, double &oXi, double &oXiUnbounded) const
const FloatArray & giveGlobalCoordinates()
Class representing vector of real numbers.
void computeCrackTangent(FloatArray &oTangent, FloatArray &oNormal, bool &oFlipTangent, const EfInput &iEfInput) const
Implementation of matrix containing floating point numbers.
This class manages the xfem part.
IRResultType
Type defining the return values of InputRecord reading operations.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
static void calcPolarCoord(double &oR, double &oTheta, const FloatArray &iOrigin, const FloatArray &iPos, const FloatArray &iN, const FloatArray &iT, const EfInput &iEfInput, bool iFlipTangent)
void setColumn(const FloatArray &src, int c)
Sets the values of the matrix in specified column.
virtual void evaluateEnrFuncJumps(std::vector< double > &oEnrFuncJumps, GaussPoint &iGP, int iNodeInd, bool iGPLivesOnCurrentCrack, const double &iNormalSignDist) const
LinElBranchFunction * mpBranchFunc
REGISTER_EnrichmentFront(EnrFrontCohesiveBranchFuncOneEl)
virtual void evaluateEnrFuncDerivAt(std::vector< FloatArray > &oEnrFuncDeriv, const double &iR, const double &iTheta) const
the oofem namespace is to define a context or scope in which all oofem names are defined.
DofManager * giveDofManager(int n)
Service for accessing particular domain dof manager.
virtual void 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)
MarkNodesAsFront: Intput: -ioNodeEnrMarker: A vector with the same size as the number of nodes in the...
Class representing the four classical linear elastic branch functions.
Class representing integration point in finite element program.