32 return std::make_unique<Laasonen>();
35 return std::make_unique<DuFortFrankel>();
38 return std::make_unique<Richardson>();
41 return std::make_unique<CrankNicolson>();
44 throw std::invalid_argument(
"make_method: unsupported or unknown scheme");
DuFort–Frankel explicit method (3-level scheme).
std::unique_ptr< Method > make_method(SchemeKind scheme)
Build a concrete numerical method from the requested scheme kind.
SchemeKind
Enumeration of the numerical schemes available in the solver.
@ Laasonen
Simple Implicit (forward time, central space).
@ DuFortFrankel
Modified Richardson (explicit, stable).
@ CrankNicolson
Trapezoidal Implicit (second order accuracy).
@ Richardson
Central time, central space (explicit, unstable).
Richardson explicit (central time - central space) scheme for the 1D heat equation.