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", [&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)
 
int main(int argc, char const *argv[])
 
The above copyright notice and this permission notice shall be included.