# propagate¶

Graph.propagate(t, method='chebyshev', **kwargs)

Propagates the quantum walk for time t.

Parameters: Keyword Arguments: 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'). 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 : 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. 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.