Solvers#

Solvers are used to numerically calculate the time evolution of state vectors. They perform steps in time by integrating the time-dependent Schrodinger equation.

class qibo.solvers.BaseSolver(dt, hamiltonian)[source]#

Basic solver that should be inherited by all solvers.

Parameters:
property t#

Solver’s current time.

class qibo.solvers.TrotterizedExponential(dt, hamiltonian)[source]#

Solver that uses Trotterized exponentials.

Created automatically from the qibo.solvers.Exponential if the given Hamiltonian object is a qibo.hamiltonians.hamiltonians.SymbolicHamiltonian.

class qibo.solvers.Exponential(dt, hamiltonian)[source]#

Solver that uses the matrix exponential of the Hamiltonian:

\[U(t) = e^{-i H(t) \delta t}\]

Calculates the evolution operator in every step and thus is compatible with time-dependent Hamiltonians.

class qibo.solvers.RungeKutta4(dt, hamiltonian)[source]#

Solver based on the 4th order Runge-Kutta method.

class qibo.solvers.RungeKutta45(dt, hamiltonian)[source]#

Solver based on the 5th order Runge-Kutta method.