51 double ksi = lcoords.
at(1);
54 answer.
at(1) = ( 1. - ksi ) * 0.5;
55 answer.
at(2) = ( 1. + ksi ) * 0.5;
66 double l2_inv = 0.5 / detJ;
69 answer.
at(1, 1) = -vec.
at(1) * l2_inv;
70 answer.
at(2, 1) = vec.
at(1) * l2_inv;
71 answer.
at(1, 2) = -vec.
at(2) * l2_inv;
72 answer.
at(2, 2) = vec.
at(2) * l2_inv;
73 answer.
at(1, 3) = -vec.
at(3) * l2_inv;
74 answer.
at(2, 3) = vec.
at(3) * l2_inv;
89 double ksi = lcoords.
at(1);
106 answer.
at(1) =
clamp(answer.
at(1), -1.0, 1.0);
121 this->
evalN(answer, lcoords, cellgeo);
128 double l_inv = 1.0 / this->
giveLength(cellgeo);
131 answer.
at(1, 1) = -l_inv;
132 answer.
at(2, 1) = l_inv;
199 jacobianMatrix.
resize(1, 1);
200 jacobianMatrix.
at(1, 1) = 1.0;
virtual void computeLocalSurfaceMapping(IntArray &surfNodes, int isurf)
double & at(int i)
Coefficient access function.
virtual const FloatArray * giveVertexCoordinates(int i) const =0
virtual void computeLocalEdgeMapping(IntArray &edgeNodes, int iedge)
virtual double surfaceEvalNormal(FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the normal out of the surface at given point.
Class representing a general abstraction for cell geometry.
virtual IntegrationRule * giveIntegrationRule(int order)
Sets up a suitable integration rule for numerical integrating over volume.
virtual double surfaceGiveTransformationJacobian(int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the edge jacobian of transformation between local and global coordinates.
virtual double giveTransformationJacobian(const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the determinant of the transformation.
virtual void local2global(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates global coordinates from given local ones.
virtual void evald2Ndx2(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of second derivatives of interpolation functions (shape functions) at given poin...
Class implementing an array of integers.
virtual double evaldNdx(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point...
Abstract base class representing integration rule.
void beDifferenceOf(const FloatArray &a, const FloatArray &b)
Sets receiver to be a - b.
virtual void surfaceEvalN(FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of edge interpolation functions (shape functions) at given point.
double distance(const FloatArray &x) const
Computes the distance between position represented by receiver and position given as parameter...
void beScaled(double s, const FloatArray &b)
Sets receiver to be .
virtual void surfaceLocal2global(FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates edge global coordinates from given local ones.
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.
double dotProduct(const FloatArray &x) const
Computes the dot product (or inner product) of receiver and argument.
virtual void edgeLocal2global(FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates edge global coordinates from given local ones.
virtual IntegrationRule * giveBoundaryIntegrationRule(int order, int boundary)
Sets up a suitable integration rule for integrating over the requested boundary.
double computeSquaredNorm() const
Computes the square of the norm.
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of interpolation functions (shape functions) at given point.
virtual double edgeGiveTransformationJacobian(int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the edge jacobian of transformation between local and global coordinates.
virtual void giveJacobianMatrixAt(FloatMatrix &jacobianMatrix, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Gives the jacobian matrix at the local coordinates.
double at(int i, int j) const
Coefficient access function.
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.
virtual int SetUpPointsOnLine(int, MaterialMode mode)
Sets up receiver's integration points on unit line integration domain.
virtual double giveLength(const FEICellGeometry &cellgeo) const
void zero()
Zeroes all coefficient of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void edgeEvaldNdx(FloatMatrix &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point...
void add(const FloatArray &src)
Adds array src to receiver.
virtual int global2local(FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo)
Evaluates local coordinates from given global ones.
Class representing Gaussian-quadrature integration rule.
void resize(int s)
Resizes receiver towards requested size.