sandbox/bugs/foreach_dim_3.c

    foreach_dimension(3) bug

    I expect foreach_dimension(3) to rotate twice and do x->y->z->x, but it doesn’t.

    int main() {
      coord n = {1, 2, 3};
      double last = 0, last2 = 0;
      foreach_dimension(3) {
        last = n.x;
        last2 = n.y;
      }

    The assertion below shoud fail: we are 2D so the third dimension is just ignored. This is systematic in Basilisk and allows for 3D solvers to automatically “degenerate” to 2D.

      assert (last == n.z || last2 == n.z);
    }