Block-Structured AMR Software Framework
AMReX_Loop.nolint.H
Go to the documentation of this file.
1 // Do not include this header anywhere other than AMReX_Loop.H.
2 // The purpose of this file is to avoid clang-tidy.
3 
4 #define AMREX_LOOP_3D(bx, i, j, k, block) \
5 { \
6  const auto amrex_i_lo = amrex::lbound(bx); \
7  const auto amrex_i_hi = amrex::ubound(bx); \
8  for (int k = amrex_i_lo.z; k <= amrex_i_hi.z; ++k) { \
9  for (int j = amrex_i_lo.y; j <= amrex_i_hi.y; ++j) { \
10  for (int i = amrex_i_lo.x; i <= amrex_i_hi.x; ++i) { \
11  AMREX_D_PICK(amrex::ignore_unused(j,k),amrex::ignore_unused(k),(void)0); \
12  block \
13  }}} \
14 }
15 
16 #define AMREX_LOOP_4D(bx, ncomp, i, j, k, n, block) \
17 { \
18  const auto amrex_i_lo = amrex::lbound(bx); \
19  const auto amrex_i_hi = amrex::ubound(bx); \
20  for (int n = 0; n < ncomp; ++n) { \
21  for (int k = amrex_i_lo.z; k <= amrex_i_hi.z; ++k) { \
22  for (int j = amrex_i_lo.y; j <= amrex_i_hi.y; ++j) { \
23  for (int i = amrex_i_lo.x; i <= amrex_i_hi.x; ++i) { \
24  AMREX_D_PICK(amrex::ignore_unused(j,k),amrex::ignore_unused(k),(void)0); \
25  block \
26  }}}} \
27 }