55 "Must set factor in BLPoints key");
57 if (fabs(r - 1.0) < 1e-6)
60 for (
size_t i = 0; i < npts; ++i)
67 NekDouble a = 2.0 * (1.0 - r) / (1.0 - pow(r, (
double)(npts - 1)));
70 for (
size_t i = 1; i < npts; ++i)
80 std::vector<NekDouble> tmp(npts);
81 for (
size_t i = 0; i < npts; ++i)
86 for (
size_t i = 0; i < npts; ++i)
105 std::shared_ptr<Points<NekDouble>> returnval(
108 returnval->Initialize();
116 ASSERTL0(
false,
"CreateMatrix not available for Boundary Layer Points");
124 ASSERTL0(
false,
"Interp not available for Boundary Layer Points");
132 ASSERTL0(
false,
"Interp not available for Boundary Layer Points");
138 [[maybe_unused]]
size_t numpoints,
141 ASSERTL0(
false,
"Interp not available for Boundary Layer Points");
147 [[maybe_unused]]
size_t npts,
152 "CalculateInterpMatrix not available for Boundary Layer Points");
#define ASSERTL0(condition, msg)
void v_CalculatePoints() override
static std::shared_ptr< PointsBaseType > Create(const PointsKey &key)
void v_CalculateDerivMatrix() override
std::shared_ptr< NekMatrix< NekDouble > > CreateMatrix(const PointsKey &pkey)
void v_CalculateWeights() override
const MatrixSharedPtrType v_GetI(const PointsKey &pkey) final
static bool initPointsManager[]
void CalculateInterpMatrix(size_t npts, const Array< OneD, const NekDouble > &xpoints, Array< OneD, NekDouble > &interp)
bool RegisterCreator(const KeyType &key, const CreateFuncType &createFunc)
Register the given function and associate it with the key. The return value is just to facilitate cal...
Stores a set of points of datatype DataT, defined by a PointKey.
Array< OneD, DataType > m_points[3]
Storage for the point locations, allowing for up to a 3D points storage.
virtual void v_CalculatePoints()
PointsKey m_pointsKey
Points type for this points distributions.
Defines a specification for a set of points.
PointsType GetPointsType() const
size_t GetNumPoints() const
NekDouble GetFactor() const
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
PointsManagerT & PointsManager(void)
@ eBoundaryLayerPoints
1D power law distribution for boundary layer points
@ eBoundaryLayerPointsRev
1D power law distribution for boundary layer points
static const NekDouble kNekUnsetDouble