Go to the documentation of this file.
47 double ksi = lcoords.
at(1);
53 answer.
at(1) = 0.25 * ( 1.0 - ksi ) * ( 1.0 - ksi ) * ( 2.0 + ksi );
54 answer.
at(2) = 0.125 * l * ( 1.0 - ksi ) * ( 1.0 - ksi ) * ( 1.0 + ksi );
55 answer.
at(3) = 0.25 * ( 1.0 + ksi ) * ( 1.0 + ksi ) * ( 2.0 - ksi );
56 answer.
at(4) = -0.125 * l * ( 1.0 + ksi ) * ( 1.0 + ksi ) * ( 1.0 - ksi );
59std::pair<double, FloatMatrixF<1,4>>
63 double l_inv = 1.0 / l;
65 1.5 * ( -1.0 + ksi * ksi ) * l_inv,
66 0.25 * ( ksi - 1.0 ) * ( 1.0 + 3.0 * ksi ),
67 -1.5 * ( -1.0 + ksi * ksi ) * l_inv,
68 0.25 * ( ksi - 1.0 ) * ( 1.0 + 3.0 * ksi )
70 return {0.5 * l, ans};
77 double l_inv = 1.0 / l;
78 double ksi = lcoords.
at(1);
83 answer.
at(1, 1) = 1.5 * ( -1.0 + ksi * ksi ) * l_inv;
84 answer.
at(1, 2) = 0.25 * ( ksi - 1.0 ) * ( 1.0 + 3.0 * ksi );
85 answer.
at(1, 3) = -1.5 * ( -1.0 + ksi * ksi ) * l_inv;
86 answer.
at(1, 4) = 0.25 * ( ksi - 1.0 ) * ( 1.0 + 3.0 * ksi );
94 double l_inv = 1.0 / this->
giveLength(cellgeo);
97 l_inv * 6.0 * ksi * l_inv,
98 l_inv * ( 3.0 * ksi - 1.0 ),
99 -l_inv * 6.0 * ksi * l_inv,
100 l_inv * ( 3.0 * ksi + 1.0 )
108 double l_inv = 1.0 / this->
giveLength(cellgeo);
109 double ksi = lcoords.
at(1);
113 answer.
at(1, 1) = l_inv * 6.0 * ksi * l_inv;
114 answer.
at(1, 2) = l_inv * ( 3.0 * ksi - 1.0 );
115 answer.
at(1, 3) = -l_inv * 6.0 * ksi * l_inv;
116 answer.
at(1, 4) = l_inv * ( 3.0 * ksi + 1.0 );
123 this->
evalN(n, lcoords, cellgeo);
137 double ksi = ( 2.0 * coords.
at(1) - ( x1 + x2 ) ) / ( x2 - x1 );
139 answer.
at(1) =
clamp(ksi, -1., 1.);
140 return fabs(ksi) <= 1.0;
double giveLength(const FEICellGeometry &cellgeo) const override
void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
virtual const FloatArray giveVertexCoordinates(int i) const =0
void zero()
Zeroes all coefficients of receiver.
void resize(Index rows, Index cols)
void zero()
Zeroes all coefficient of receiver.
double at(std::size_t i, std::size_t j) const
double clamp(int a, int lower, int upper)
Returns the clamped value of a between upper and lower.
This page is part of the
OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak
Bořek Patzák
Project e-mail:
oofem@fsv.cvut.cz
Generated at for OOFEM by
doxygen
1.15.0 written by Dimitri van Heesch,
© 1997-2011