Nektar++
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions
Nektar::StdRegionsTests Namespace Reference

Functions

 BOOST_AUTO_TEST_CASE (TestLocCollapsedCoordsTet)
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE()

Nektar::StdRegionsTests::BOOST_AUTO_TEST_CASE ( TestLocCollapsedCoordsTet  )

Definition at line 45 of file TestLocCollapsedCoords.cpp.

46{
47 unsigned int nq = 6;
48 auto pkey0 =
50 auto pkey1 =
51 LibUtilities::PointsKey(nq - 1, LibUtilities::eGaussRadauMAlpha1Beta0);
52 auto pkey2 =
53 LibUtilities::PointsKey(nq - 1, LibUtilities::eGaussRadauMAlpha2Beta0);
54
55 unsigned int nm = 4;
59
60 // Create tet expansion
61 auto stdTet = StdRegions::StdTetExp(bkey0, bkey1, bkey2);
62
63 // Get some evenly distributed points
64 auto pkey =
66 auto evenlySpaced = LibUtilities::PointsManager()[pkey];
67
68 int np = evenlySpaced->GetTotNumPoints();
69 Array<OneD, NekDouble> xc(np), yc(np), zc(np);
70 evenlySpaced->GetPoints(xc, yc, zc);
71
72 double epsilon = 1.0e-8;
73
74 // Loop over points and ensure that the xi -> eta -> xi mapping returns the
75 // original coordinates in the tetrahedron.
76 for (auto i = 0; i < np; ++i)
77 {
78 Array<OneD, NekDouble> xi(3), eta(3), tmp(3);
79 xi[0] = xc[i];
80 xi[1] = yc[i];
81 xi[2] = zc[i];
82
83 stdTet.LocCoordToLocCollapsed(xi, eta);
84 stdTet.LocCollapsedToLocCoord(eta, tmp);
85
86 BOOST_CHECK_CLOSE(tmp[0], xi[0], epsilon);
87 BOOST_CHECK_CLOSE(tmp[1], xi[1], epsilon);
88 BOOST_CHECK_CLOSE(tmp[2], xi[2], epsilon);
89 }
90}
Describes the specification for a Basis.
Definition: Basis.h:45
Defines a specification for a set of points.
Definition: Points.h:50
PointsManagerT & PointsManager(void)
@ eGaussLobattoLegendre
1D Gauss-Lobatto-Legendre quadrature points
Definition: PointsType.h:51
@ eNodalTetEvenlySpaced
3D Evenly-spaced points on a Tetrahedron
Definition: PointsType.h:84
@ eModified_B
Principle Modified Functions .
Definition: BasisType.h:49
@ eModified_C
Principle Modified Functions .
Definition: BasisType.h:50
@ eModified_A
Principle Modified Functions .
Definition: BasisType.h:48

References Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::eModified_C, Nektar::LibUtilities::eNodalTetEvenlySpaced, and Nektar::LibUtilities::PointsManager().