paraqeet.propagation.euler.Euler#
- class paraqeet.propagation.euler.Euler(model, resolution=1000000000.0)[source]#
Bases:
PropagationSimple 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)[source]#
- Parameters:
model (EquationOfMotion)
resolution (float)
Methods
__init__(model[, resolution])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
Return if the propagation is for open or closed system.
Return the propagation resolution.
- get_parameters()[source]#
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)[source]#
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)[source]#
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.