44 namespace LibUtilities
57 int index = 0, isum = 0;
63 for (
unsigned int i = 0; i < numPoints - 2; ++i)
87 for (
unsigned int j = 0; j < 4; ++j)
104 for (
unsigned int j = 0; j < 6; ++j)
121 for (
unsigned int j = 0; j < 12; ++j)
138 for (
unsigned int j = 0; j < 12; ++j)
155 for (
unsigned int j = 0; j < 12; ++j)
172 for (
unsigned int j = 0; j < 24; ++j)
191 "sum not equal to npts");
222 std::shared_ptr<NekMatrix<NekDouble>> mat =
223 m_util->GetInterpolationMatrix(xi);
224 Vmath::Vcopy(mat->GetRows() * mat->GetColumns(), mat->GetRawPtr(), 1,
240 std::shared_ptr<PointsBaseType> returnval(
242 returnval->Initialize();
251 const int nVerts = 4;
253 const int nFaceInteriorPoints =
257 const int nAllPoints =
259 if (nEdgeInteriorPoints == 0)
266 for (
int i = cnt = istart; i < nAllPoints; i++)
279 iend = istart + nEdgeInteriorPoints;
280 for (
int i = istart; i < iend; i++)
282 for (
int j = istart + 1; j < iend; j++)
295 for (
int i = cnt = istart; i < nAllPoints; i++)
308 iend = istart + nEdgeInteriorPoints;
309 for (
int i = istart; i < iend; i++)
311 for (
int j = istart + 1; j < iend; j++)
324 for (
int i = cnt = istart; i < nAllPoints; i++)
337 iend = istart + nEdgeInteriorPoints;
338 for (
int i = istart; i < iend; i++)
340 for (
int j = istart + 1; j < iend; j++)
353 for (
int i = cnt = istart; i < nAllPoints; i++)
366 iend = istart + nEdgeInteriorPoints;
367 for (
int i = istart; i < iend; i++)
369 for (
int j = istart + 1; j < iend; j++)
382 for (
int i = cnt = istart; i < nAllPoints; i++)
395 iend = istart + nEdgeInteriorPoints;
396 for (
int i = istart; i < iend; i++)
398 for (
int j = istart + 1; j < iend; j++)
411 for (
int i = cnt = istart; i < nAllPoints; i++)
424 iend = istart + nEdgeInteriorPoints;
425 for (
int i = istart; i < iend; i++)
427 for (
int j = istart + 1; j < iend; j++)
446 for (
int i = cnt = istart; i < nAllPoints; i++)
458 iend = istart + nFaceInteriorPoints;
463 for (
int i = istart; i < iend - 1; i++)
482 for (
int i = offset + istart; i < offset + istart + npl - 1; i++)
499 for (
int i = cnt = istart; i < nAllPoints; i++)
511 iend = istart + nFaceInteriorPoints;
516 for (
int i = istart; i < iend - 1; i++)
535 for (
int i = offset + istart; i < offset + istart + npl - 1; i++)
552 for (
int i = cnt = istart; i < nAllPoints; i++)
565 iend = istart + nFaceInteriorPoints;
570 for (
int i = istart; i < iend - 1; i++)
589 for (
int i = offset + istart; i < offset + istart + npl - 1; i++)
606 for (
int i = cnt = istart; i < nAllPoints; i++)
618 iend = istart + nFaceInteriorPoints;
623 for (
int i = istart; i < iend - 1; i++)
642 for (
int 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_CalculatePoints() override
virtual void v_CalculateDerivMatrix() override
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()
virtual void v_CalculateWeights() override
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()
PointsKey m_pointsKey
Points type for this points distributions.
unsigned int GetNumPoints() const
Array< OneD, DataType > m_weights
Quadrature weights for the weights.
virtual void v_CalculateDerivMatrix()
virtual void v_CalculateWeights()
Defines a specification for a set of points.
unsigned int 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.
Array< OneD, DataType > & GetPtr()
unsigned int GetRows() const
static const unsigned int perm6_3d[6][4]
static const unsigned int perm12B_3d[12][4]
static const unsigned int perm12C_3d[12][4]
static const unsigned int perm12A_3d[12][4]
PointsManagerT & PointsManager(void)
static const unsigned int NodalTetElecNPTS[NodalTetElecAvailable]
static const NekDouble NodalTetElecData[][9]
static const unsigned int perm24_3d[24][4]
static const unsigned int perm4_3d[4][4]
@ eNodalTetElec
3D Nodal Electrostatic Points on a Tetrahedron
static const NekDouble kNekZeroTol
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)