/home/eoseret/qaas/qaas_runs/178-219-7589/intel/CloverLeaf2.0-CXX/build/CloverLeaf2.0-CXX/src/omp/context.h: 46 - 69
--------------------------------------------------------------------------------

46:   T &operator[](size_t i) const { return data[i]; }
[...]
69:   T &operator()(size_t i, size_t j) const { return data[i + j * sizeX]; }
/home/eoseret/qaas/qaas_runs/178-219-7589/intel/CloverLeaf2.0-CXX/build/CloverLeaf2.0-CXX/src/omp/viscosity.cpp: 37 - 64
--------------------------------------------------------------------------------

37:   for (int j = (y_min + 1); j < (y_max + 2); j++) {
38:     for (int i = (x_min + 1); i < (x_max + 2); i++) {
39:       double ugrad = (xvel0(i + 1, j + 0) + xvel0(i + 1, j + 1)) - (xvel0(i, j) + xvel0(i + 0, j + 1));
40:       double vgrad = (yvel0(i + 0, j + 1) + yvel0(i + 1, j + 1)) - (yvel0(i, j) + yvel0(i + 1, j + 0));
41:       double div = (celldx[i] * (ugrad) + celldy[j] * (vgrad));
42:       double strain2 = 0.5 * (xvel0(i + 0, j + 1) + xvel0(i + 1, j + 1) - xvel0(i, j) - xvel0(i + 1, j + 0)) / celldy[j] +
43:                        0.5 * (yvel0(i + 1, j + 0) + yvel0(i + 1, j + 1) - yvel0(i, j) - yvel0(i + 0, j + 1)) / celldx[i];
44:       double pgradx = (pressure(i + 1, j + 0) - pressure(i - 1, j + 0)) / (celldx[i] + celldx[i + 1]);
45:       double pgrady = (pressure(i + 0, j + 1) - pressure(i + 0, j - 1)) / (celldy[j] + celldy[j + 2]);
46:       double pgradx2 = pgradx * pgradx;
47:       double pgrady2 = pgrady * pgrady;
48:       double limiter = ((0.5 * (ugrad) / celldx[i]) * pgradx2 + (0.5 * (vgrad) / celldy[j]) * pgrady2 + strain2 * pgradx * pgrady) /
49:                        std::fmax(pgradx2 + pgrady2, g_small);
50:       if ((limiter > 0.0) || (div >= 0.0)) {
51:         viscosity(i, j) = 0.0;
52:       } else {
53:         double dirx = 1.0;
54:         if (pgradx < 0.0) dirx = -1.0;
55:         pgradx = dirx * std::fmax(g_small, std::fabs(pgradx));
56:         double diry = 1.0;
57:         if (pgradx < 0.0) diry = -1.0;
58:         pgrady = diry * std::fmax(g_small, std::fabs(pgrady));
59:         double pgrad = std::sqrt(pgradx * pgradx + pgrady * pgrady);
60:         double xgrad = std::fabs(celldx[i] * pgrad / pgradx);
61:         double ygrad = std::fabs(celldy[j] * pgrad / pgrady);
62:         double grad = std::fmin(xgrad, ygrad);
63:         double grad2 = grad * grad;
64:         viscosity(i, j) = 2.0 * density0(i, j) * grad2 * limiter * limiter;
