1 #include "../RiemannSolvers/RoeSolver.h"
10 #include "../RiemannSolvers/RoeSolver.h"
11 #include "../RiemannSolvers/RoeSolverSIMD.h"
15 int main(
int argc,
char const *argv[])
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",
43 [&gamma]() ->
NekDouble & {
return 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(
63 for (
size_t i = 0; i < spaceDim; ++i)
67 riemannSolver.SetVector(
72 size_t nFields = spaceDim + 2;
74 flx(nFields), flxRef(nFields);
75 for (
size_t i = 0; i < nFields; ++i)
86 for (
size_t i = 0; i < npts; ++i)
108 rhoe + 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) / rho;
109 fwd[nFields - 1][i] = E;
110 bwd[nFields - 1][i] = E;
115 flxRef[1][i] = rhou * rhou / rho +
p;
116 flxRef[2][i] = rhou * rhov / rho;
117 flxRef[3][i] = rhou * rhow / rho;
118 flxRef[nFields - 1][i] = (E +
p) * rhou / rho;
122 constexpr
size_t experiments = 1 << 12;
125 for (
size_t j = 0; j < experiments; ++j)
128 riemannSolver.Solve(spaceDim, fwd, bwd, flx);
132 constexpr
short CPU_CLK_UNHALTED_REF_id = 2;
134 std::vector<double> events(nevents);
137 boost::ignore_unused(time, count);
141 double cpeRiemann = events[CPU_CLK_UNHALTED_REF_id] / npts / experiments;
142 std::cout <<
"Riemann likwid CPE\t" << cpeRiemann <<
'\n';
146 double cpeRotationTo = events[CPU_CLK_UNHALTED_REF_id] / npts / experiments;
147 std::cout <<
"RotationTo likwid CPE\t" << cpeRotationTo <<
'\n';
151 double cpev_Solve = events[CPU_CLK_UNHALTED_REF_id] / npts / experiments;
152 std::cout <<
"v_Solve likwid CPE\t" << cpev_Solve <<
'\n';
156 double cpeRotationFrom =
157 events[CPU_CLK_UNHALTED_REF_id] / npts / experiments;
158 std::cout <<
"RotationFrom likwid CPE\t" << cpeRotationFrom <<
'\n';
160 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)
int main(int argc, char const *argv[])
The above copyright notice and this permission notice shall be included.