Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aeun_v1_0.tar.gz(4855 Kbytes)
Manuscript Title: pyCTQW: A continuous-time quantum walk simulator on distributed memory computer
Authors: Josh A. Izaac, Jingbo B. Wang
Program title: pyCTQW
Catalogue identifier: AEUN_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 186(2015)92
Programming language: Fortran and Python.
Computer: Workstation or cluster implementing MPI.
Operating system: Any operating system with Fortran, python, and MPI installed.
RAM: Depends on graph size and number of walkers
Keywords: Continuous-time quantum walk, Multiple walkers, Padé approximant, Krylov subspace method, Chebyshev expansion, Matrix expansion.
Classification: 4.15, 14.

External routines: PETSc [1-3], SLEPc [4-6], MPI, NumPy and SciPy [7-9], Matplotlib [10], NetworkX [11]

Nature of problem:
Simulates, visualises and analyzes continuous-time quantum walks on arbitrary undirected graphs.

Solution method:
Distributed memory implementations of the matrix exponential, via a choice of Krylov-subspace and Chebyshev expansion techniques, are used to simulate the continuous-time quantum walkers. Visualisation ability is provided via the supplied Python module and Matplotlib.

Restrictions:
The size of the quantum walking system is limited by the amount of available memory. The current package implements up to 3 simultaneous walkers with interactions, but it can be readily extended.

Unusual features:
In addition to utilising a parallelized Krylov subspace method and Chebyshev approximation scheme to maximise effciency, pyCTQW also provides functions for visualisation of the quantum walk dynamics and calculation of multi-particle entanglement, and allows for arbitrary diagonal defects to be placed on graph nodes to explore transmission and resonance structures.

Running time:
Runtime varies depending on the size of the graph, number of processors used, and number of simultaneous walkers.

References:
[1] S. Balay, W. D. Gropp, L. C. McInnes, B. F. Smith, Effcient management of parallelism in object oriented numerical software libraries, in: E. Arge, A. M. Bruaset, H. P. Langtangen (Eds.), Modern Software Tools in Scientific Computing, Birkhäuser Press, 1997, p. 163-202.
[2] S. Balay, J. Brown, K. Buschelman, W. D. Gropp, D. Kaushik, M. G. Knepley, L. C. McInnes, B. F. Smith, H. Zhang, PETSc Web page, 2013. http://www.mcs.anl.gov/petsc.
[3] S. Balay, J. Brown, Buschelman, Kris, V. Eijkhout, W. D. Gropp, D. Kaushik, M. G. Knepley, L. C. McInnes, B. F. Smith, H. Zhang, PETSc Users Manual, Technical Report ANL-95/11 - Revision 3.4, Argonne National Laboratory, 2013.
[4] V. Hernandez, J. E. Roman, V. Vidal, SLEPc: scalable library for eigenvalue problem computations, Lecture Notes in Computer Science 2565 (2003) 377-391.
[5] V. Hernandez, J. E. Roman, V. Vidal, SLEPc: a scalable and flexible toolkit for the solution of eigenvalue problems, ACM Trans. Math. Software 31 (2005) 351-362.
[6] C. Campos, J. E. Roman, E. Romero, A. Tomas, SLEPc Users Manual, Technical Report DSIC-II/24/02 - Revision 3.3, D. Sistemes Informàtics i Computació, Universitat Politècnica de València, 2012.
[7] E. Jones, T. Oliphant, P. Peterson, et al., SciPy: Open source scientific tools for Python 2001.
[8] P. Peterson, F2PY: a tool for connecting fortran and python programs, International Journal of Computational Science and Engineering 4 (2009) 296.
[9] T. E. Oliphant, Python for scientific computing, Computing in Science and Engineering 9 (2007) 10-20.
[10] J. D. Hunter, Matplotlib: A 2D graphics environment, Computing in Science and Engineering 9 (2007) 90-95.
[11] A. A. Hagberg, D. A. Schult, P. J. Swart, Exploring network structure, dynamics, and function using NetworkX, in: ps-G. Varoquaux, T. Vaught, J. Millman (Eds.), Proceedings of the 7th Python in Science Conference, Pasadena, CA USA, pp. 11 - 15.