Eliminate redundant dimension parameter for BConds
The changes in !173 (merged) reduce repetition of template parameters across IPPL, but these changes have a risk of introducing a dependency loop between ippl::Field
and ippl::BConds
. Fields have an instance of their boundary conditions, so Field
depends on BConds
. The only information BConds
needs from the field a priori is the rank. This can be extracted via Field::dim
, but then BConds
would depend on Field
at compile-time, introducing a dependency loop.
In !173 (merged), this is resolved by passing an additional template parameter to indicate the dimension. This parameter is semantically redundant, but breaks the loop. Ideally, this should be resolved with no redundant information, as this was the original intent of the MR.