44 double xi = lcoords(0);
46 answer.
at(1) = ( 1. - xi ) * 0.5;
47 answer.
at(2) = ( 1. + xi ) * 0.5;
67 this->
evalN(n, lcoords, cellgeo);
85 xi = ( x2_x1 * gcoords(0) + y2_y1 * gcoords(1) ) / ( sqrt(x2_x1 * x2_x1 + y2_y1 * y2_y1) );
90 answer(0) =
clamp(xi, -1., 1.);
97 double xi = lcoords(0);
99 answer(0) = -0.5 * xi;
100 answer(1) = 0.5 * xi;
107 double J = sqrt(es1 * es1 + es2 * es2);
125 return sqrt(x2_x1 * x2_x1 + y2_y1 * y2_y1) / 2.0;
144 this->
evalN(answer, lcoords, cellgeo);
152 return sqrt(x2_x1 * x2_x1 + y2_y1 * y2_y1);
158 double x1, x2, y1, y2;
168 return x2 * y1 - x1 * y2;
virtual double giveTransformationJacobian(const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the determinant of the transformation.
virtual void computeLocalEdgeMapping(IntArray &edgeNodes, int iedge)
virtual double edgeEvalNormal(FloatArray &normal, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the normal on the given edge.
double & at(int i)
Coefficient access function.
int max(int i, int j)
Returns bigger value form two given decimals.
virtual const FloatArray * giveVertexCoordinates(int i) const =0
Class representing a general abstraction for cell geometry.
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of interpolation functions (shape functions) at given point.
virtual void evaldNdxi(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point...
virtual int global2local(FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo)
Default implementation using Newton's method to find the local coordinates.
Class implementing an array of integers.
Abstract base class representing integration rule.
virtual double evalNXIntegral(int iEdge, const FEICellGeometry &cellgeo)
Computes the integral .
virtual void edgeEvaldNds(FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point...
virtual void boundaryEdgeGiveNodes(IntArray &answer, int boundary)
Gives the boundary nodes for requested boundary number.
double edgeComputeLength(IntArray &edgeNodes, const FEICellGeometry &cellgeo)
virtual IntegrationRule * giveIntegrationRule(int order)
Sets up a suitable integration rule for numerical integrating over volume.
virtual void edgeEvalN(FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of edge interpolation functions (shape functions) at given point.
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
double clamp(int a, int lower, int upper)
Returns the clamped value of a between upper and lower.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
virtual int getRequiredNumberOfIntegrationPoints(integrationDomain dType, int approxOrder)
Abstract service.
void zero()
Zeroes all coefficients of receiver.
virtual int SetUpPointsOnLine(int, MaterialMode mode)
Sets up receiver's integration points on unit line integration domain.
void times(double s)
Multiplies receiver with scalar.
the oofem namespace is to define a context or scope in which all oofem names are defined.
void clear()
Sets size of receiver to be an empty matrix. It will have zero rows and zero columns size...
double normalize()
Normalizes receiver.
virtual double evaldNdx(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point...
virtual void local2global(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates global coordinates from given local ones.
Class representing Gaussian-quadrature integration rule.
void resize(int s)
Resizes receiver towards requested size.