53 size_t index = 0, isum = 0;
54 const size_t offset = 5;
59 for (
size_t i = 0; i < numPoints - 2; ++i)
83 for (
size_t j = 0; j < 4; ++j)
100 for (
size_t j = 0; j < 6; ++j)
117 for (
size_t j = 0; j < 12; ++j)
134 for (
size_t j = 0; j < 12; ++j)
151 for (
size_t j = 0; j < 12; ++j)
168 for (
size_t j = 0; j < 24; ++j)
187 "sum not equal to npts");
218 std::shared_ptr<NekMatrix<NekDouble>> mat =
219 m_util->GetInterpolationMatrix(xi);
220 Vmath::Vcopy(mat->GetRows() * mat->GetColumns(), mat->GetRawPtr(), 1,
227 PointsBaseType::v_CalculateDerivMatrix();
236 std::shared_ptr<PointsBaseType> returnval(
238 returnval->Initialize();
247 const size_t nVerts = 4;
249 const size_t nFaceInteriorPoints =
253 const size_t nAllPoints =
255 if (nEdgeInteriorPoints == 0)
262 for (
size_t i = cnt = istart; i < nAllPoints; i++)
275 iend = istart + nEdgeInteriorPoints;
276 for (
size_t i = istart; i < iend; i++)
278 for (
size_t j = istart + 1; j < iend; j++)
291 for (
size_t i = cnt = istart; i < nAllPoints; i++)
304 iend = istart + nEdgeInteriorPoints;
305 for (
size_t i = istart; i < iend; i++)
307 for (
size_t j = istart + 1; j < iend; j++)
320 for (
size_t i = cnt = istart; i < nAllPoints; i++)
333 iend = istart + nEdgeInteriorPoints;
334 for (
size_t i = istart; i < iend; i++)
336 for (
size_t j = istart + 1; j < iend; j++)
349 for (
size_t i = cnt = istart; i < nAllPoints; i++)
362 iend = istart + nEdgeInteriorPoints;
363 for (
size_t i = istart; i < iend; i++)
365 for (
size_t j = istart + 1; j < iend; j++)
378 for (
size_t i = cnt = istart; i < nAllPoints; i++)
391 iend = istart + nEdgeInteriorPoints;
392 for (
size_t i = istart; i < iend; i++)
394 for (
size_t j = istart + 1; j < iend; j++)
407 for (
size_t i = cnt = istart; i < nAllPoints; i++)
420 iend = istart + nEdgeInteriorPoints;
421 for (
size_t i = istart; i < iend; i++)
423 for (
size_t j = istart + 1; j < iend; j++)
442 for (
size_t i = cnt = istart; i < nAllPoints; i++)
454 iend = istart + nFaceInteriorPoints;
459 for (
size_t i = istart; i < iend - 1; i++)
478 for (
size_t i = offset + istart; i < offset + istart + npl - 1; i++)
495 for (
size_t i = cnt = istart; i < nAllPoints; i++)
507 iend = istart + nFaceInteriorPoints;
512 for (
size_t i = istart; i < iend - 1; i++)
531 for (
size_t i = offset + istart; i < offset + istart + npl - 1; i++)
548 for (
size_t i = cnt = istart; i < nAllPoints; i++)
561 iend = istart + nFaceInteriorPoints;
566 for (
size_t i = istart; i < iend - 1; i++)
585 for (
size_t i = offset + istart; i < offset + istart + npl - 1; i++)
602 for (
size_t i = cnt = istart; i < nAllPoints; i++)
614 iend = istart + nFaceInteriorPoints;
619 for (
size_t i = istart; i < iend - 1; i++)
638 for (
size_t i = offset + istart; i < offset + istart + npl - 1; i++)
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
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...
static std::shared_ptr< PointsBaseType > Create(const PointsKey &key)
static bool initPointsManager[]
virtual void v_CalculateDerivMatrix() override final
virtual void v_CalculateWeights() override final
virtual void v_CalculatePoints() override final
void CalculateInterpMatrix(const Array< OneD, const NekDouble > &xia, const Array< OneD, const NekDouble > &yia, const Array< OneD, const NekDouble > &zia, Array< OneD, NekDouble > &interp)
void NodalPointReorder3d()
std::shared_ptr< NodalUtilTetrahedron > m_util
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 perm24_3d[24][4]
static const size_t perm12B_3d[12][4]
PointsManagerT & PointsManager(void)
static const size_t perm12C_3d[12][4]
static const NekDouble NodalTetElecData[][9]
static const size_t perm12A_3d[12][4]
@ eNodalTetElec
3D Nodal Electrostatic Points on a Tetrahedron
static const size_t perm6_3d[6][4]
static const size_t perm4_3d[4][4]
static const size_t NodalTetElecNPTS[NodalTetElecAvailable]
static const NekDouble kNekZeroTol
std::vector< double > w(NPUPPER)
std::vector< double > d(NPUPPER *NPUPPER)
The above copyright notice and this permission notice shall be included.
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)