35 virtual std::string
name()
const = 0;
52 const std::vector<double>& Tprev,
53 const std::vector<double>& Tcurr,
54 std::vector<double>& Tnext)
const = 0;
Crank-Nicolson scheme implementation.
Laasonen implicit method (Backward Euler in time + Central in space). Unconditionally stable for the ...
Abstract interface for time-integration schemes solving the 1D heat equation.
virtual std::string name() const =0
Get human-readable name of the scheme.
virtual ~Method()=default
virtual bool uses_previous_step() const =0
Indicates if the scheme requires data from time step n-1.
virtual void step(const Grid &g, double D, double dt, const std::vector< double > &Tprev, const std::vector< double > &Tcurr, std::vector< double > &Tnext) const =0
Computes the temperature field at the next time step (T^{n+1}).
Implementation of the explicit Richardson scheme (CTCS).
SchemeKind
Enumeration of the numerical schemes available in the solver.
std::unique_ptr< Method > make_method(SchemeKind scheme)
Factory function to create a concrete method instance.
Uniform 1D grid on x ∈ [0, L], including both boundary nodes.