16 #ifndef GEOS_FINITEELEMENT_ELEMENTFORMULATIONS_ELEMENTFORMULATIONS_LAGRANGEBASIS3GL_HPP_
17 #define GEOS_FINITEELEMENT_ELEMENTFORMULATIONS_ELEMENTFORMULATIONS_LAGRANGEBASIS3GL_HPP_
82 switch( supportPointIndex )
151 return -(5.0/8.0)*(xi*xi*xi-xi*xi-(1.0/5.0)*xi+1.0/5.0);
187 return (5.0/8.0)*(xi*xi*xi+xi*xi-(1.0/5.0)*xi-1.0/5.0);
237 return -(5.0/8.0)*(3.0*xi*xi-2.0*xi-(1.0/5.0));
250 return (5.0*
sqrt5/8.0)*(3.0*xi*xi-(2.0/
sqrt5)*xi-1.0);
263 return -(5.0*
sqrt5/8.0)*(3.0*xi*xi+(2.0/
sqrt5)*xi-1.0);
276 return (5.0/8.0)*(3.0*xi*xi+2.0*xi-(1.0/5.0));;
294 return p == 0 ? -3.0 : -0.80901699437494742410;
296 return p == 0 ? 4.0450849718747371205 : 0.0;
298 return p == 0 ? -1.5450849718747371205 : 1.1180339887498948482;
300 return p == 0 ? 0.5 : -0.30901699437494742410;
386 for(
int a=0; a<4; ++a )
388 for(
int b=0; b<4; ++b )
453 return i + 4 * j + 16 * k;
496 for(
int a=0; a<4; ++a )
498 for(
int b=0; b<4; ++b )
500 for(
int c=0; c<4; ++c )
#define GEOS_HOST_DEVICE
Marks a host-device function.
#define GEOS_FORCE_INLINE
Marks a function or lambda for inlining.
constexpr static GEOS_HOST_DEVICE real64 parentSupportCoord(const localIndex supportPointIndex)
Calculate the parent coordinates for the xi0 direction, given the linear index of a support point.
constexpr static GEOS_HOST_DEVICE real64 gradient1(const real64 xi)
The gradient of the basis function for support point 1 evaluated at a point along the axes.
constexpr static GEOS_HOST_DEVICE real64 value3(const real64 xi)
The value of the basis function for support point 3.
constexpr static GEOS_HOST_DEVICE real64 gradient3(const real64 xi)
The gradient of the basis function for support point 3 evaluated at a point along the axes.
constexpr static GEOS_HOST_DEVICE real64 value0(const real64 xi)
The value of the basis function for support point 0.
constexpr static GEOS_HOST_DEVICE real64 gradient0(const real64 xi)
The gradient of the basis function for support point 0 evaluated at a point along the axes.
constexpr static real64 sqrt5
sqrt(5)
constexpr static GEOS_HOST_DEVICE real64 value(const int index, const real64 xi)
The value of the basis function for a support point evaluated at a point along the axes.
constexpr static localIndex numSupportPoints
The number of support points for the basis.
constexpr static GEOS_HOST_DEVICE real64 gradient2(const real64 xi)
The gradient of the basis function for support point 1 evaluated at a point along the axes.
constexpr static GEOS_HOST_DEVICE real64 value2(const real64 xi)
The value of the basis function for support point 2.
constexpr static GEOS_HOST_DEVICE real64 weight(const int q)
The value of the weight for the given support point.
constexpr static GEOS_HOST_DEVICE real64 value1(const real64 xi)
The value of the basis function for support point 1.
GEOS_HOST_DEVICE constexpr static GEOS_FORCE_INLINE real64 gradientAt(const int q, const int p)
The gradient of the basis function for a support point evaluated at a given support point....
constexpr static GEOS_HOST_DEVICE real64 gradient(const int index, const real64 xi)
The gradient of the basis function for a support point evaluated at a point along the axes.
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
constexpr static localIndex numSupportPoints
The number of support points in the 2D tensor product.
constexpr static GEOS_HOST_DEVICE int linearIndex(const int i, const int j)
Calculates the linear index for support/quadrature points from ij coordinates.
constexpr static GEOS_HOST_DEVICE void multiIndex(int const linearIndex, int &i0, int &i1)
Calculate the Cartesian/TensorProduct index given the linear index of a support point.
static GEOS_HOST_DEVICE void value(const real64(&coords)[2], real64(&N)[numSupportPoints])
The value of the basis function for a support point evaluated at a point along the axes.
constexpr static GEOS_HOST_DEVICE int linearIndex(const int i, const int j, const int k)
Calculates the linear index for support/quadrature points from ijk coordinates.
constexpr static localIndex numSupportPoints
The number of support points in the 3D tensor product.
static GEOS_HOST_DEVICE void value(const real64(&coords)[3], real64(&N)[numSupportPoints])
The value of the basis function for a support point evaluated at a point along the axes.
constexpr static GEOS_HOST_DEVICE void multiIndex(int const linearIndex, int &i0, int &i1, int &i2)
Calculate the Cartesian/TensorProduct index given the linear index of a support point.