14 data_(static_cast<
idx>(g.
size())) {}
19 fill(std::forward<F>(f));
23 int N()
const {
return grid_.
N; }
24 double h()
const {
return grid_.
h; }
28 return data_[
static_cast<idx>(i) * grid_.
N + j];
33 for (
int i = 0; i < grid_.
N; ++i)
34 for (
int j = 0; j < grid_.
N; ++j)
35 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)
real & operator()(int i, int j)
real operator()(int i, int j) const
const Grid2D & grid() const
2D uniform interior grid: geometry only, no field data.
int N
interior nodes per side
double h
grid spacing = 1/(N+1)
Dense vector storage and operations.