Quantics is a general purpose program package to simulate the time-evolution of a molecular system by solving the time-dependent Schrödinger equation. The main code is based on the multi-configurational time-dependent Hartree (MCTDH) algorithm in various variants, including the powerful multilayer-MCTDH algorithm that has been used to propagate a wavefunction for up to 1000 degrees of freedom. MCTDH uses a contraction of traditional discrete basis set representations of the Hamiltonian and wavefunction, and Quantics includes a range of variable representation (DVR) grid basis sets and collocation methods. Input is via ascii text files and for molecules with analytical potential functions no programming is required. A library of potential functions is included to treat more complicated cases, and more functions can be added as required by the user. The code also includes the variational multi-configurational Gaussian (vMCG) method that is based on a Gaussian wavepacket expansion of the wavefunction. vMCG can be run in a “direct” manner (DD-vMCG), calculating the potential energy surfaces on-the-fly using a number of quantum chemistry programs. In addition to wavepacket propagation, Quantics can solve the time-independent Schrödinger equation for small systems and can solve the Liouville–von-Neumann equation to propagate density matrices. The Package includes auxiliary programs to help set up calculations and analyse the output. Quantics is a community code of the UK Collaborative Computational Project for Quantum Dynamics (CCPQ) and the European E-CAM project, an e-infrastructure for software development run by the Centre Européen de Calcul Atomique et Moléculaire (CECAM). Through this it has become a framework for general dynamics codes, for example enabling an external surface hopping code to use the Quantics input and operator interfaces. Program summaryProgram Title: QuanticsProgram Files doi:http://dx.doi.org/10.17632/x9dcpc2r5c.1Licensing provisions: LGPLv3Programming language: Fortran90. Some Fortran77, Fortran2003, C and python.Nature of problem: Solving the time-dependent Schrödinger equation for a set of nuclei allows a range of physical processes to be studied including all quantum effects. This allows an experimental signal to be given a molecular interpretation. Typical applications are scattering cross-sections or time-resolved spectra, but also rate constants and other transport properties are possible. The exact problem to be solved is defined by the Hamiltonian, which must be provided by the user, and the initial wavepacket, again defined by the user. The final analysis of the evolving wavepacket then provides the experimental signal or molecular property.Solution method: A range of methods are possible for solving the time-evolution of a wavepacket (see main text). These can be broadly described as basis-set methods, in which the wavepacket and Hamiltonian are expanded in a set of functions. Various functions are possible, including grid-based sets (DVRs and collocation), and Gaussian wavepackets. The wavepacket can then be propagated using a variety of algorithms depending on the representation chosen. These include the full numerically-exact solution, various versions of the multi-configurational time-dependent Hartree method and approximate methods such as trajectory surface hopping. Full details are given in the documentation provided with the package and in a book and a number of review articles [1,2,3].Additional comments including restrictions and unusual features: The code has been tested on a number of linux distributions and compilers. It works best with a bash environment and a gnu gcc / gfortran compiler greater than version 4.8. The code is parallelised in parts using either OpenMP or MPI. There is a suite of test calculations to test an installation.
Read full abstract