SOLIDstate
A C++ library for solid state physics
|
Runge–Kutta forth order method (RK4) for solving differentional equations. More...
#include <RungeKutta4.hpp>
Public Member Functions | |
std::string | getLabel () override |
Get the Label object (IQuantumDynamicSolver override) More... | |
void | Propagate (double time, double dtime, QuantumDynamics< T1, T2, T3 > &qDynamics) |
Propagate the state \(|\psi\rangle\) (IQuantumDynamicSolver override) More... | |
Public Member Functions inherited from solid::IQuantumDynamicSolver< T1, T2, T3 > | |
virtual | ~IQuantumDynamicSolver () |
Static Public Attributes | |
static constexpr auto | label = "rk4" |
label, default = "rk4" More... | |
Runge–Kutta forth order method (RK4) for solving differentional equations.
Propagation of the state is obtained in the following way:
\[ |\psi(t+\Delta t)\rangle = |\psi(t)\rangle + \frac16(|k_1\rangle+2|k_2\rangle+2|k_3\rangle+|k_4\rangle), \]
where corresponding states \(|k_1\rangle,\,|k_2\rangle,\,|k_3\rangle,\,|k_4\rangle\) are given by:
|
inlineoverridevirtual |
Get the Label object (IQuantumDynamicSolver override)
Implements solid::IQuantumDynamicSolver< T1, T2, T3 >.
|
inlinevirtual |
Propagate the state \(|\psi\rangle\) (IQuantumDynamicSolver override)
time | current time |
dtime | time step |
qDynamics | QuantumDynamics<T1,T2,T3> object |
Implements solid::IQuantumDynamicSolver< T1, T2, T3 >.
|
inlinestatic |
label, default = "rk4"