74 if ( closestEl != NULL ) {
81 printf(
"Could not find closest element.\n");
86 std::unordered_map<int, double> weightInNodes;
88 for (
int elIndex : elList ) {
93 for (
int nodeInd : elNodes ) {
102 for(
int elIndex : elList ) {
107 OOFEM_ERROR(
"Could not cast to NLStructuralElement.")
115 const FloatArray &pos = gp->giveGlobalCoordinates();
122 interp->
evaldNdx(dNdx, gp->giveNaturalCoordinates(), geomWrapper);
126 weightInElNodes.
resize( elNodes.giveSize() );
127 for(
int i = 0; i < weightInElNodes.
giveSize(); i++) {
128 weightInElNodes[i] = weightInNodes[elNodes[i]];
172 oMatForce.
add(contrib);
187 double r = iTipCoord.
distance(iCoord);
190 weight = 1.0 - r/iRadius;
The base class for all spatial localizers.
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
Access method for default integration rule.
Abstract base class for "structural" finite elements with geometrical nonlinearities.
bool isEmpty() const
Checks if receiver is empty (i.e., zero sized).
void beSubMatrixOf(const FloatMatrix &src, int topRow, int bottomRow, int topCol, int bottomCol)
Assigns to the receiver the sub-matrix of another matrix.
int giveGlobalNumber() const
TipInfo gathers useful information about a crack tip, like its position and tangent direction...
void clear()
Clears receiver (zero size).
bool insertSortedOnce(int value, int allocChunk=0)
Inserts given value into a receiver, which is assumed to be sorted.
virtual void giveAllElementsWithNodesWithinBox(elementContainerType &elemSet, const FloatArray &coords, const double radius)
Returns container (set) of all domain elements having node within given box.
virtual FloatArray * giveCoordinates()
Abstract base class for all finite elements.
Base class for dof managers.
Class implementing an array of integers.
virtual FEInterpolation * giveInterpolation() const
void beMatrixForm(const FloatArray &aArray)
double distance(const FloatArray &x) const
Computes the distance between position represented by receiver and position given as parameter...
Class representing a general abstraction for finite element interpolation class.
void beScaled(double s, const FloatArray &b)
Sets receiver to be .
virtual ~MaterialForceEvaluator()
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
const IntArray & giveDofManArray() const
static void giveFullVectorForm(FloatArray &answer, const FloatArray &strainVector, MaterialMode matMode)
Converts the reduced symmetric Voigt vector (2nd order tensor) to full form.
double computeWeightFunctionInPoint(const FloatArray &iCoord, const FloatArray &iTipCoord, const double &iRadius) const
Element * giveElement(int n)
Service for accessing particular domain fe element.
SpatialLocalizer * giveSpatialLocalizer()
Returns receiver's associated spatial localizer.
Wrapper around element definition to provide FEICellGeometry interface.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
void beTProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix^T and anArray.
Class representing vector of real numbers.
virtual void computeDeformationGradientVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Computes the deformation gradient in Voigt form at integration point ip and at time step tStep...
Implementation of matrix containing floating point numbers.
void computeMaterialForce(FloatArray &oMatForce, Domain &iDomain, const TipInfo &iTipInfo, TimeStep *tStep, const double &iRadius)
double computeNorm() const
Computes the norm (or length) of the vector.
virtual Element * giveElementClosestToPoint(FloatArray &lcoords, FloatArray &closest, const FloatArray &coords, int region=0)=0
Returns the element closest to a given point.
void times(double s)
Multiplies receiver with scalar.
int giveElementPlaceInArray(int iGlobalElNum) const
Returns the array index of the element with global number iGlobalElNum, so that it can be fetched by ...
virtual void giveEshelbyStresses(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedvF, TimeStep *tStep)
Computes the Eshelby stress vector.
int giveSize() const
Returns the size of receiver.
Abstract base class for all structural cross section models.
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.
Class representing solution step.
void add(const FloatArray &src)
Adds array src to receiver.
virtual double evaldNdx(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point...
void resize(int s)
Resizes receiver towards requested size.