11 #ifndef QUANTUMDYNAMICS_SOLVERS_SOLVERSWITCHER_HPP
12 #define QUANTUMDYNAMICS_SOLVERS_SOLVERSWITCHER_HPP
17 #include "../../Misc/StrToInt.hpp"
34 template <
template <
typename>
class T1,
typename T2,
typename T3>
54 if constexpr (std::is_same<T3, arma::cx_double>::value)
57 assert(!
"selected solver requires complex type! (T3 = arma::cx_double)");
67 std::cout <<
"Unknown solver: " << label <<
". Running with default solver " << defaultSolver << std::endl;
68 return Switch(defaultSolver);
Runge–Kutta forth order method (RK4) for solving differentional equations.
Definition: RungeKutta4.hpp:35
constexpr unsigned int StrToInt(const char *str, int h=0)
Covertr string to intiger copied from StackOverflow
Definition: StrToInt.hpp:14
Adiabatic Solver header.
Definition: AdiabaticSolver.hpp:38
QuantumDynamicSolver interface header.
Switcher for QuantumDynamicSolver.
Definition: SolverSwitcher.hpp:35
Adiabatic Solver (IQuantumDynamicSolver implementation) header.
Quantum Dynamic Solver interface.
Definition: QuantumDynamicSolver.hpp:35
Runge Kutta 4 method class header.
static IQuantumDynamicSolver< T1, T2, T3 > * Switch(const std::string label)
Switch between IQuantumDynamicSolvers.
Definition: SolverSwitcher.hpp:44