35#include <boost/core/ignore_unused.hpp>
59 "Must set factor in BLPoints key");
61 if (fabs(r - 1.0) < 1e-6)
64 for (
size_t i = 0; i < npts; ++i)
71 NekDouble a = 2.0 * (1.0 - r) / (1.0 - pow(r, (
double)(npts - 1)));
74 for (
size_t i = 1; i < npts; ++i)
84 std::vector<NekDouble> tmp(npts);
85 for (
size_t i = 0; i < npts; ++i)
90 for (
size_t i = 0; i < npts; ++i)
109 std::shared_ptr<Points<NekDouble>> returnval(
112 returnval->Initialize();
120 boost::ignore_unused(pkey);
122 ASSERTL0(
false,
"CreateMatrix not available for Boundary Layer Points");
130 boost::ignore_unused(pkey);
132 ASSERTL0(
false,
"Interp not available for Boundary Layer Points");
140 boost::ignore_unused(x);
142 ASSERTL0(
false,
"Interp not available for Boundary Layer Points");
150 boost::ignore_unused(numpoints, x);
152 ASSERTL0(
false,
"Interp not available for Boundary Layer Points");
161 boost::ignore_unused(npts, xpoints, interp);
164 "CalculateInterpMatrix not available for Boundary Layer Points");
#define ASSERTL0(condition, msg)
virtual void v_CalculatePoints() override
static std::shared_ptr< PointsBaseType > Create(const PointsKey &key)
virtual void v_CalculateDerivMatrix() override
std::shared_ptr< NekMatrix< NekDouble > > CreateMatrix(const PointsKey &pkey)
virtual void v_CalculateWeights() override
virtual const MatrixSharedPtrType v_GetI(const PointsKey &pkey) override 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
The above copyright notice and this permission notice shall be included.