32 nEle = std::stoi(argv[1]);
35 std::cout <<
"number of faces\t" << nEle
36 <<
"\t(assuming 4*4 nodes per face)\n";
42 riemannSolver.SetParam(
"gamma", [&gamma]()
46 size_t npts = 4*4*nEle;
51 for (
size_t i = 0; i < spaceDim; ++i)
53 vecLocs[0][i] = 1 + i;
55 riemannSolver.SetAuxVec(
"vecLocs", [&vecLocs]()
61 for (
size_t i = 0; i < spaceDim; ++i)
65 riemannSolver.SetVector(
"N", [&normals]()
69 size_t nFields = spaceDim + 2;
71 flx(nFields), flxRef(nFields);
72 for (
size_t i = 0; i < nFields; ++i)
83 for (
size_t i = 0; i < npts; ++i)
104 NekDouble E = rhoe + 0.5*(rhou*rhou + rhov*rhov + rhow*rhow) / rho;
105 fwd[nFields-1][i] = E;
106 bwd[nFields-1][i] = E;
111 flxRef[1][i] = rhou*rhou/rho +
p;
112 flxRef[2][i] = rhou*rhov/rho;
113 flxRef[3][i] = rhou*rhow/rho;
114 flxRef[nFields-1][i] = (E+
p)*rhou/rho;
118 constexpr
size_t experiments = 1 << 12;
121 for (
size_t j = 0; j < experiments; ++j)
124 riemannSolver.Solve(spaceDim, fwd, bwd, flx);
128 constexpr
short CPU_CLK_UNHALTED_REF_id = 2;
130 std::vector<double> events(nevents);
133 boost::ignore_unused(time,count);
137 double cpeRiemann = events[CPU_CLK_UNHALTED_REF_id]/npts/experiments;
138 std::cout <<
"Riemann likwid CPE\t" << cpeRiemann <<
'\n';
142 double cpeRotationTo = events[CPU_CLK_UNHALTED_REF_id]/npts/experiments;
143 std::cout <<
"RotationTo likwid CPE\t" << cpeRotationTo <<
'\n';
147 double cpev_Solve = events[CPU_CLK_UNHALTED_REF_id]/npts/experiments;
148 std::cout <<
"v_Solve likwid CPE\t" << cpev_Solve <<
'\n';
152 double cpeRotationFrom = events[CPU_CLK_UNHALTED_REF_id]/npts/experiments;
153 std::cout <<
"RotationFrom likwid CPE\t" << cpeRotationFrom <<
'\n';
155 std::cout << flx[0][0] << std::endl;
#define LIKWID_MARKER_THREADINIT
#define LIKWID_MARKER_START(regionTag)
#define LIKWID_MARKER_CLOSE
#define LIKWID_MARKER_INIT
#define LIKWID_MARKER_REGISTER(regionTag)
#define LIKWID_MARKER_STOP(regionTag)
#define LIKWID_MARKER_GET(regionTag, nevents, events, time, count)