11 #ifndef QUANTUMDYNAMICS_SOLVERS_RUNGEKUTTA4_HPP
12 #define QUANTUMDYNAMICS_SOLVERS_RUNGEKUTTA4_HPP
15 #include "../QuantumDynamics.hpp"
34 template <
template <
typename>
class T1,
typename T2,
typename T3>
42 inline static constexpr
auto label =
"rk4";
64 arma::cx_double I(0, 1);
65 arma::cx_vec k1, k2, k3, k4;
Runge–Kutta forth order method (RK4) for solving differentional equations.
Definition: RungeKutta4.hpp:35
static constexpr auto label
label, default = "rk4"
Definition: RungeKutta4.hpp:42
Quantum Dynamics class.
Definition: QuantumDynamics.hpp:40
QuantumSystem< T1, T2 > quantumSystem
Definition: QuantumDynamics.hpp:103
QuantumDynamicSolver interface header.
void LoadParameters()
Loads the parameters with respect to time.
Definition: QuantumDynamics.cpp:9
arma::Col< T > vector
container of the QuantumState
Definition: QuantumState.hpp:36
Quantum Dynamic Solver interface.
Definition: QuantumDynamicSolver.hpp:35
std::string getLabel() override
Get the Label object (IQuantumDynamicSolver override)
Definition: RungeKutta4.hpp:49
void Propagate(double time, double dtime, QuantumDynamics< T1, T2, T3 > &qDynamics)
Propagate the state (IQuantumDynamicSolver override)
Definition: RungeKutta4.hpp:61
QuantumState< T3 > quantumState
Definition: QuantumDynamics.hpp:102