Go to the documentation of this file.
60 double xi = lcoords(0);
61 n.
at(1) = ( 1. - xi ) * 0.5;
62 n.
at(2) = ( 1. + xi ) * 0.5;
79 double xi = (x2_x1) ? ( sqrt( dx*dx*(1 + (y2_y1 / x2_x1)*(y2_y1 / x2_x1) )) ) / ( sqrt(x2_x1 * x2_x1 + y2_y1 * y2_y1) ) : sqrt(dy*dy) / ( sqrt(x2_x1 * x2_x1 + y2_y1 * y2_y1) );
84 answer(0) =
clamp(xi, -1., 1.);
88void FEI2dLineConst :: edgeEvaldNds(
FloatArray &answer,
int iedge,
107 return sqrt(x2_x1 * x2_x1 + y2_y1 * y2_y1) / 2.0;
115IntArray FEI2dLineConst :: computeLocalEdgeMapping(
int iedge)
const
126 this->
evalN(answer, lcoords, cellgeo);
133 return sqrt(x2_x1 * x2_x1 + y2_y1 * y2_y1);
136double FEI2dLineConst :: evalNXIntegral(
int iEdge,
const FEICellGeometry &cellgeo)
const
139 double x1 = node1.
at(
xind);
140 double y1 = node1.at(
yind);
143 double x2 = node2.
at(
xind);
144 double y2 = node2.at(
yind);
146 return x2 * y1 - x1 * y2;
151 auto iRule = std::make_unique<GaussIntegrationRule>(1,
nullptr);
152 int points = iRule->getRequiredNumberOfIntegrationPoints(
_Line,
order + 0);
153 iRule->SetUpPointsOnLine(points, _Unknown);
154 return std::move(iRule);
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.
double normalize_giveNorm()
*Sets size of receiver to be an empty matrix It will have zero rows and zero columns size void clear()
FloatArrayF< N > max(const FloatArrayF< N > &a, const FloatArrayF< N > &b)
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