11 #ifndef QUANTUMDYNAMICS_QUANTUMDYNAMICS_HPP
12 #define QUANTUMDYNAMICS_QUANTUMDYNAMICS_HPP
17 #include "../QuantumSystem/QuantumSystem.hpp"
18 #include "../QuantumState/QuantumState.hpp"
19 #include "../Parameters/Parameters.hpp"
20 #include "../Hamiltonian/TermsEnabled.hpp"
39 template <
template <
typename>
class T1,
typename T2,
typename T3>
57 const std::string label =
"rk4")
91 template <
template <
typename>
class G1,
typename G2,
typename G3>
94 template <
template <
typename>
class G1,
typename G2,
typename G3>
97 template <
template <
typename>
class G1,
typename G2,
typename G3>
Runge–Kutta forth order method (RK4) for solving differentional equations.
Definition: RungeKutta4.hpp:35
void Create(QuantumSystem< T1, T2 > &qSystem, QuantumState< T3 > &initQuantumState, DynamicsSchedule< arma::SpMat< T2 >> &dynSchedule, MeasurementSchedule< T1, T2, T3 > &mesSchedule, const std::string label="rk4")
QuantumDynamics constructor.
Definition: QuantumDynamics.hpp:52
void Run()
Run the evolution.
Definition: QuantumDynamics.cpp:20
Schedule for the dynamics (uniform time step)
Definition: DynamicsSchedule.hpp:49
Quantum Dynamics class.
Definition: QuantumDynamics.hpp:40
Dynamics Schedule header.
Adiabatic Solver header.
Definition: AdiabaticSolver.hpp:38
Operator< T1, T2 > hamiltonian
container for matrixElements
Definition: QuantumSystem.hpp:50
QuantumSystem< T1, T2 > quantumSystem
Definition: QuantumDynamics.hpp:103
MeasurementSchedule< T1, T2, T3 > measurementSchedule
Definition: QuantumDynamics.hpp:106
Schedule for the measurment.
Definition: DynamicsSchedule.hpp:72
void Measure()
performs MeasurmentSchedule
Definition: QuantumDynamics.cpp:44
QuantumDynamicSolver interface header.
IQuantumDynamicSolver< T1, T2, T3 > * solver
Definition: QuantumDynamics.hpp:107
Terms enebled in Operator.
Definition: TermsEnabled.hpp:24
Parameters< T2 > parameters
Parameters for hamiltonian.
Definition: QuantumSystem.hpp:55
TermsEnabled terms
Definition: QuantumDynamics.hpp:101
void LoadParameters()
Loads the parameters with respect to time.
Definition: QuantumDynamics.cpp:9
void Propagate()
Propagates the state.
Definition: QuantumDynamics.cpp:38
Quantum Dynamic Solver interface.
Definition: QuantumDynamicSolver.hpp:35
general purpouse class for solving quantum systems
Definition: QuantumSystem.hpp:39
double time
Definition: QuantumDynamics.hpp:100
static IQuantumDynamicSolver< T1, T2, T3 > * Switch(const std::string label)
Switch between IQuantumDynamicSolvers.
Definition: SolverSwitcher.hpp:44
DynamicsSchedule< arma::SpMat< T2 > > dynamicsSchedule
Definition: QuantumDynamics.hpp:105
Parameters< T2 > param
Definition: QuantumDynamics.hpp:104
QuantumState< T3 > quantumState
Definition: QuantumDynamics.hpp:102