44 double ksi = lcoords.
at(1);
50 answer.
at(1) = 0.25 * ( 1.0 - ksi ) * ( 1.0 - ksi ) * ( 2.0 + ksi );
51 answer.
at(2) = 0.125 * l * ( 1.0 - ksi ) * ( 1.0 - ksi ) * ( 1.0 + ksi );
52 answer.
at(3) = 0.25 * ( 1.0 + ksi ) * ( 1.0 + ksi ) * ( 2.0 - ksi );
53 answer.
at(4) = -0.125 * l * ( 1.0 + ksi ) * ( 1.0 + ksi ) * ( 1.0 - ksi );
60 double l_inv = 1.0 / l;
61 double ksi = lcoords.
at(1);
66 answer.
at(1, 1) = 1.5 * ( -1.0 + ksi * ksi ) * l_inv;
67 answer.
at(1, 2) = 0.25 * ( ksi - 1.0 ) * ( 1.0 + 3.0 * ksi );
68 answer.
at(1, 3) = -1.5 * ( -1.0 + ksi * ksi ) * l_inv;
69 answer.
at(1, 4) = 0.25 * ( ksi - 1.0 ) * ( 1.0 + 3.0 * ksi );
77 double l_inv = 1.0 / this->
giveLength(cellgeo);
78 double ksi = lcoords.
at(1);
82 answer.
at(1, 1) = l_inv * 6.0 * ksi * l_inv;
83 answer.
at(1, 2) = l_inv * ( 3.0 * ksi - 1.0 );
84 answer.
at(1, 3) = -l_inv * 6.0 * ksi * l_inv;
85 answer.
at(1, 4) = l_inv * ( 3.0 * ksi + 1.0 );
94 this->
evalN(n, lcoords, cellgeo);
108 ksi = ( 2.0 * coords.
at(1) - ( x1 + x2 ) ) / ( x2 - x1 );
109 answer.
at(1) =
clamp(ksi, -1., 1.);
110 return fabs(ksi) <= 1.0;
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of interpolation functions (shape functions) at given point.
double & at(int i)
Coefficient access function.
virtual const FloatArray * giveVertexCoordinates(int i) const =0
Class representing a general abstraction for cell geometry.
virtual double giveLength(const FEICellGeometry &cellgeo) const
Computes the exact length.
virtual void local2global(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates global coordinates from given local ones.
double at(int i, int j) const
Coefficient access function.
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 double giveTransformationJacobian(const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the determinant of the transformation.
Class representing vector of real numbers.
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...
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.
void zero()
Zeroes all coefficients of receiver.
void zero()
Zeroes all coefficient of receiver.
virtual int global2local(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates local coordinates from given global ones.
the oofem namespace is to define a context or scope in which all oofem names are defined.
void resize(int s)
Resizes receiver towards requested size.