50    size_t index = 0, isum = 0;
 
   51    const size_t offset = 3; 
 
   56    for (
size_t i = 0; i < numPoints - 2; ++i)
 
   76            for (
size_t j = 0; j < 3; ++j)
 
   89            for (
size_t j = 0; j < 3; ++j)
 
  102            for (
size_t j = 0; j < 6; ++j)
 
  117             "sum not equal to npts");
 
  145    std::shared_ptr<NekMatrix<NekDouble>> mat =
 
  146        m_util->GetInterpolationMatrix(xi);
 
  147    Vmath::Vcopy(mat->GetRows() * mat->GetColumns(), mat->GetRawPtr(), 1,
 
  156    PointsBaseType::v_CalculateDerivMatrix();
 
  164    std::shared_ptr<PointsBaseType> returnval(
 
  166    returnval->Initialize();
 
  176    const size_t nVerts              = 3;
 
  178    const size_t nBoundaryPoints     = 3 * nEdgeInteriorPoints + 3;
 
  180    if (nEdgeInteriorPoints == 0)
 
  187    for (i = cnt = istart; i < nBoundaryPoints; i++)
 
  198    iend = istart + nEdgeInteriorPoints;
 
  199    for (i = istart; i < iend; i++)
 
  201        for (j = istart + 1; j < iend; j++)
 
  213    for (i = cnt = istart; i < nBoundaryPoints; i++)
 
  224    iend = istart + nEdgeInteriorPoints;
 
  225    for (i = istart; i < iend; i++)
 
  227        for (j = istart + 1; j < iend; j++)
 
  239    for (i = cnt = istart; i < nBoundaryPoints; i++)
 
  249    iend = istart + nEdgeInteriorPoints;
 
  250    for (i = istart; i < iend; i++)
 
  252        for (j = istart + 1; j < iend; j++)
 
  291        for (i = 0; i < xc.size() - 1; i++)
 
  293            if (yc[i] > yc[i + 1])
 
  295                std::swap(xc[i], xc[i + 1]);
 
  296                std::swap(yc[i], yc[i + 1]);
 
  310            for (i = offset; i < offset + npl - 1; i++)
 
  312                if (xc[i] > xc[i + 1])
 
  314                    std::swap(xc[i], xc[i + 1]);
 
  315                    std::swap(yc[i], yc[i + 1]);
 
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
 
size_type size() const
Returns the array's size.
 
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...
 
void NodalPointReorder2d()
 
static bool initPointsManager[]
 
void CalculateInterpMatrix(const Array< OneD, const NekDouble > &xi, const Array< OneD, const NekDouble > &yi, Array< OneD, NekDouble > &interp)
 
void v_CalculateWeights() final
 
void v_CalculatePoints() final
 
void v_CalculateDerivMatrix() final
 
std::shared_ptr< NodalUtilTriangle > m_util
 
static std::shared_ptr< PointsBaseType > Create(const PointsKey &key)
 
Array< OneD, DataType > m_points[3]
Storage for the point locations, allowing for up to a 3D points storage.
 
MatrixSharedPtrType m_derivmatrix[3]
Derivative matrices.
 
virtual void v_CalculatePoints()
 
size_t GetNumPoints() const
 
PointsKey m_pointsKey
Points type for this points distributions.
 
Array< OneD, DataType > m_weights
Quadrature weights for the weights.
 
virtual void v_CalculateWeights()
 
Defines a specification for a set of points.
 
size_t GetTotNumPoints() const
 
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
 
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
 
static const size_t perm3A_2d[3][3]
 
PointsManagerT & PointsManager(void)
 
static const size_t perm6_2d[6][3]
 
static const NekDouble NodalTriFeketeData[][6]
 
static const size_t NodalTriFeketeNPTS[NodalTriFeketeAvailable]
 
@ eNodalTriFekete
2D Nodal Fekete Points on a Triangle
 
static const size_t perm3B_2d[3][3]
 
static const NekDouble kNekZeroTol
 
std::vector< double > w(NPUPPER)
 
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)