9 const std::vector<double>& Tprev,
10 const std::vector<double>& Tcurr,
11 std::vector<double>& Tnext)
const
13 const double r = D * dt / (g.
dx * g.
dx);
14 const std::size_t N = g.
Nx;
17 if (Tnext.size() != N)
23 std::copy(Tcurr.begin(), Tcurr.end(), Tnext.begin());
26 for (std::size_t i = 1; i + 1 < N; ++i)
28 Tnext[i] = ((1.0 - 2.0 * r) * Tprev[i] + 2.0 * r * (Tcurr[i + 1] + Tcurr[i - 1])) /
void step(const Grid &g, double D, double dt, const std::vector< double > &Tprev, const std::vector< double > &Tcurr, std::vector< double > &Tnext) const override
Computes the temperature field at the next time step (T^{n+1}).