propagate

Line3P.propagate(t, method='expm', **kwargs)

Propagates the quantum walk for time t.

Parameters:
  • t (float) – the timestep over which to propagate the state walk.psi0 via the relationship \(\left|\psi\right\rangle = e^{-iHt}\left|\psi0\right\rangle\).
  • method (str) – the propagation algorithm to use ('chebyshev' (default) or 'krylov').
Keyword Arguments:
 
  • esolver (str) – the eigensolver algorithm to use.

    • 'krylovschur' (default) - Krylov-Schur
    • 'arnoldi' - Arnoldi Method
    • 'lanczos' - Lanczos Method
    • 'power' - Power Iteration/Rayleigh Quotient Iteration
    • 'gd' - Generalized Davidson
    • 'jd' - Jacobi-Davidson,
    • 'lapack' - Uses LAPACK eigenvalue solver routines
    • 'arpack' - only available if SLEPc is compiled with ARPACK linking
  • workType (str) – can be used to set the eigensolver worktype (either 'ncv' or 'mpd'). The default is to let SLEPc decide.

  • workSize (int) – sets the work size if workType is set.

  • tolIn (float) – tolerance of the eigenvalue solver (default 0. (SLEPc decides)).

  • maxIt (int) – maximum number of iterations of the eigenvalue solver (default 0 (SLEPc decides)).

  • verbose (bool) – if True, writes eigensolver information to the console

  • emax_estimate (float) – used to override the calculation of the graphs maximum eigenvalue.

  • emin_estimate (float) – used to override the calculation of the graphs minimum eigenvalue. For a finite graph, emin_estimate=0 is set by default.

    Caution

    • If supplied, the value of emax_estimate (\(\hat{\lambda}_{\max}\)) must satisfy \(\hat{\lambda}_{\max}\geq\lambda_{\max}\), where \(\lambda_{\max}\) is the actual maximum eigenvalue of the graph.
    • Similarly, the value of emin_estimate (\(\hat{\lambda}_{\min}\)) must satisfy \(\hat{\lambda}_{\min}\leq\lambda_{\min}\), where \(\lambda_{\min}\) is the actual minimum eigenvalue of the graph.
    • The greater the difference value of \(|\hat{\lambda}_{\max} -\lambda_{\max}|\) and \(|\hat{\lambda}_{\min} -\lambda_{\min}|\), the longer the convergence time of the chebyshev propagator.

    Note

    • The keyword arguments properties only apply if propagator='chebyshev'
    • For more information regarding these properties,refer to the SLEPc documentation
Returns:

: this creates a PETSc vector containing the propagated state, accessed via the attribute psi, as well as a PETSc vector containing the marginal probabilities, prob.

Return type:

petsc4py.PETSc.Vec()

Note

The EigSolver properties only take effect if method=’chebyshev’.

Fortran interface

This function calls the Fortran function expm(). for the Krylov method, and the function qw_cheby() for the Chebyshev method.