Momentum
Propagators where the state evolves in momentum space. Used for gradient-descent search algorithms inspired by continuous-variable photonic quantum computing. See Theoretical Background for details.
Propagator Class
- class quop_mpi.propagator.momentum.Unitary(Ns, minsq, minsk, deltasq, deltask, **kwargs)
Bases:
UnitaryBaseImplements the QOWE mixing unitary.
This propagator uses Fourier transforms to evolve the quantum state in momentum space, applying kinetic energy evolution.
Warning
unitaryinstances of type'momentumrequire that thesizeof the MPI communicator associated withquop_mpi.ansatzclass be a factor of the first grid dimension (Ns[0] % size == 0).Inheritance Diagram:
![digraph "sphinx-ext-graphviz" {
rankdir="LR"; node [fontsize="10"];
Unitary[label="quop_mpi.unitary", shape="rectangle"];
unitary[label="quop_mpi.propagator.momentum.unitary",
shape="rectangle"];
Unitary -> unitary;
}](../../_images/graphviz-91e7b8eb8b2e87e10ba52fd0451cb32e8bdf0a4e.png)
See
quop_mpi.unitary.- Parameters:
- Nslist[int]
the number of grid points in each dimension of the Cartesian grid
- minsqlist[float]
the minimum of each Cartesian coordinate in position space
- minsklist[float]
the minimum of each Cartesian coordinate in momentum space
- deltasqlist[float]
the step-size in each Cartesian coordinate in position space
- deltasklist[float]
the step-size in each Cartesian coordinate in momentum space
- *args and **kwargs:
passed to the initialisation method of
quop_mpi.unitary
- Attributes:
- unitary_type
'momentum'- planner
True- unitary_n_params
len(Ns)
- assign_backend(backend)
Assign the Fortran backend for momentum propagation.
- propagate(t)
Apply momentum-space evolution.
- Parameters:
- tndarray
Evolution times for each dimension
Note
The momentum propagator does not accept user-defined operator functions.
Momentum-space eigenvalues are computed internally by the Fortran backend
from the grid parameters passed to the Unitary constructor.