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] aeii_v1_0.tar.gz(483 Kbytes)
Manuscript Title: Diagonalisation of Quantum Observables on Regular Lattices and General Graphs
Authors: Niall Moran, Graham Kells, Jiri Vala
Program title: DoQO
Catalogue identifier: AEII_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 182(2011)1083
Programming language: C++ (dependencies require fortran).
Computer: Standard workstations and distributed memory machines.
Operating system: Any operating system with C++, Fortran, MPI, PETSc and SLEPc (code developed and tested on OS X and Linux).
Has the code been vectorised or parallelized?: Yes code uses MPI for interprocess communication. One to thousands of processors may be used.
RAM: Depends on problem size. Ranges from MBs to TBs.
Keywords: Exact diagonalisation, quantum observable, distributed memory, Lanczos, lattice symmetries.
Classification: 7.8.

External routines: PETSc, SLEPc, LAPACK, BLAS, MPI, BOOST, tinyxml.

Nature of problem:
To calculate the low lying eigenvalues and eigenstates of quantum observables for spin 1/2 and spinless fermionic systems on arbitrary graphs efficiently in parallel.

Solution method:
Large scale linear scaling iterative exact diagonalisation methods are used on distributed memory machines. Physical symmetries are exploited to extend the size of systems which can be treated and to provide important additional information about the eigenstates.

The size of the systems that DoQO can handle are restricted by the amount of available memory.

Unusual features:
The main feature that makes DoQO stand out from other diagonalisation codes is its ability to exploit physical symmetries efficiently using parallel computer architectures without the use of model specific optimisations. The ability to treat systems with arbitrarily complex interactions is also unique.

Running time:
The running time ranges from seconds to hours depending on the problem size and computational resources used.