25 , data_(static_cast<
idx>(g.
size())) {}
32 int N()
const {
return grid_.
N; }
33 double h()
const {
return grid_.
h; }
41 for (
int i = 0; i < grid_.
N; ++i)
42 for (
int j = 0; j < grid_.
N; ++j)
43 data_[
static_cast<idx>(i) * grid_.
N + j] = f(grid_.
x(i), grid_.
y(j));
constexpr idx size() const noexcept
const Vector & vec() const
const real * data() const
ScalarField2D(Grid2D g, F &&f)
Construct and fill from callable f(x, y) -> real.
void fill(F &&f)
Fill every interior node (i,j) with f((i+1)*h, (j+1)*h).
real & operator()(int i, int j)
real operator()(int i, int j) const
const Grid2D & grid() const
Vector & vec()
Satisfy VecField concept: exposes the underlying flat vector.
2D uniform interior grid: geometry only, no field data.
int N
interior nodes per side
double h
grid spacing = 1/(N+1)