Beluga named requirements: RegularGrid
Regular grids divide space in evenly sized portions or cells. A coordinate system over integers can thus be defined, in addition to that of the space in which the grid is embedded.
A type G satisfies RegularGrid requirements if given g, a possibly const instance of G:
g.resolution()returns the side length of all grid N-dimensional cells as adouble;given possibly const embedding space coordinates
xof typeEigen::Vector<double, NDim>,g.cell_at(x)returns grid cell coordinates as anEigen::Vector<int, NDim1>value;given possibly const embedding space coordinates
pofEigen::Vector<double, NDim>type,g.cell_at(p)returns grid cell coordinates as anEigen::Vector<int, NDim>value;given possibly const grid cell coordinates
xiof typeEigen::Vector<int, NDim>,g.coordinates_at(xi)returns embedding space coordinates as anEigen::Vector<double, NDim>value;given a possibly const range
rof grid cell coordinates ofEigen::Vector<int, NDim>type,g.coordinates_for(r)returns a range of embedding space coordinates asEigen::Vector<double, NDim>values.