paraqeet.propagation.euler.Euler#

class paraqeet.propagation.euler.Euler(model, resolution=1000000000.0)#

Bases: Propagation

Simple implementation of first order Euler propagation.

Solves the equation of motion d/dt psi(t) = F(psi(t), t) with a finite step size d as psi(t+d) = psi(t) + F(psi(t), t). The step size can be variable and is calculated from the time array that is passed to the propagate function.

Parameters:
  • model (Model) – Represents the equation of motion for a given Hamiltonian.

  • resolution (float)

__init__(model, resolution=1000000000.0)#
Parameters:

Methods

__init__(model[, resolution])

get_parameters()

Get a list of parameters of the system.

propagate(time)

Calculate the first order Euler propagation.

set_initial_state(state)

Set the initial state for the propagation.

Attributes

is_open

Return if the propagation is for open or closed system.

resolution

Return the propagation resolution.

get_parameters()#

Get a list of parameters of the system.

Returns:

List of optimizable parameters of the system.

Return type:

list[Quantity]

property is_open: bool#

Return if the propagation is for open or closed system.

propagate(time)#

Calculate the first order Euler propagation.

Performs the actual propagation calculation.

Parameters:

time (Array) – Vector of time samples.

Returns:

Results of the Euler propagation.

Return type:

Array

property resolution: float#

Return the propagation resolution.

set_initial_state(state)#

Set the initial state for the propagation. (Default implementation)

Propagation implementations that do not need the state should not implement this function.

Subclasses can access the state in the _initial_sate field.

Parameters:

state (Array) – Parameter value to be set as the initial state for the propagation.