a small rewrite of boundary conditions (open bc is now based on zero-div condition for vectors and zero-grad condition for scalars; no more bcinit)