Skip to content

Latest commit

 

History

History
177 lines (133 loc) · 5.41 KB

02-Intro_qp.org

File metadata and controls

177 lines (133 loc) · 5.41 KB

Introduction to Quantum Package

./images/QP.png

Overview

Quantum Package (QP) Quantum Package (QP) is an open-source environment for developing quantum chemistry programs. It was designed for code developers, but it is relatively simple to use.

Environment

Before using Quantum Package, the environment must be set up. This can be done by running the following command:

source /project/project_465000321/qp2/quantum_package.rc

This is automatically done when you load the complete environment for this training:

source /project/project_465000321/environment.sh

Running on LUMI

Note that it is not possible to run the code interactively on the login nodes of LUMI. To run interactively, you will need to request an interactive job. Here is an example command to request a compute node for one hour:

salloc -N 1 --reservation=enccs_training --account=project_465000321 --time=01:00:00 -n 1 -c 32 --partition=standard
source /project/project_465000321/environment.sh

Once you have an interactive job, instead of using the command qp_run you will need to run qp_srun to run the QP programs.

The EZFIO database

Quantum Package (QP) stores input and output data in a database called the EZFIO directory. To interact with the database, QP provides multiple shell functions, scripts and programs.

As an example, let’s consider a water molecule. First, we need to create a file with the geometry in either XYZ or Z-matrix format. For this example, we will use the coordinates in the file h2o.xyz:

3
Water
O       0.                     0.   0.
H      -0.756950272703377558   0.  -0.585882234512562827
H       0.756950272703377558   0.  -0.585882234512562827

Next, we can create an EZFIO database containing the geometry and the basis set parameters for the cc-pVDZ basis set by running the following command:

qp create_ezfio --basis=cc-pvdz h2o.xyz

This command will create a directory named h2o.ezfio, and this directory is selected as the currently used EZFIO directory in the current shell. To switch to another EZFIO database, use the command:

qp set_file other.ezfio

Using QP commands

To get documentation on the qp command, you can use the command

qp --help

To run a Hartree-Fock calculation, we will use the scf program of QP. To run a QP program, normally we use qp run. On LUMI, after allocating an interactive session, you can use qp_srun. For example:

qp_srun scf h2o.ezfio | tee h2o.scf.out

This command will run the SCF calculation and save the output in the file h2o.scf.out using the Linux command tee.

The Hartree-Fock orbitals are now stored inside the EZFIO database. If you run the scf code again, it will converge in a single iteration because it takes the MOs stored inside the database as an initial guess.

Now that we have a set of Hartree-Fock orbitals, we can run a singles doubles configuration interaction (CISD) calculation. But we don’t want to include the single- and double-excitations from the 1/s/ orbitals. For that, we need to run the command

qp set_frozen_core

The output of this command shows that orbital 1 is labelled as Core and orbitals 2-24 are labelled as Active. To run the CISD calculation, use the command:

qp_srun cisd h2o.ezfio | tee h2o.cisd.out

To modify the input parameters of the programs, you can use the interactive command qp edit. This will open a temporary file filled-in with data coming from the EZFIO database. When the file is saved and the editor is exited, the data is saved back into the EZFIO.

Alternatively, all the input parameters can be inspected in the shell using qp get and set using qp set. For example:

qp get determinants n_det_max
qp set determinants n_det_max 2000