In the following a practical introduction of Storq is provided and several use cases, ranging from basic to more advance are provided.

Disclaimer: The following tutorials assume basic knowledge of Python and ASE

Note that all scripts here have been written in such a fashion that they will run regardless of whether you have set mode = 'run' or mode = 'queue' in your .vasprc. Thus, if you are in queue mode on the cluster a small job will be submitted.


This example illustrates how to relax a water molecule using VASP’s internal relaxation routines.

from ase.build import molecule
from storq import Vasp

# set up atomic configuration
atoms = molecule("H2O")

# set up calculator
calc = Vasp(

# set submission options
calc.configure(walltime="00:05:00", cores=4)

# run vasp

The first argument of the Vasp constructor is the run directory where all VASP IO files will be created. The configuration (ASE Atoms-object) is passed as a keyword argument. (Note: The calculator is internally attached to the atomic configuration scuh that calling atoms.get_potential_energy() still works. The exchange-correlation functional is set via the special keyword argument xc where only the name of the functional is needed. Any other INCAR parameters will be set automatically. Options pertaining to job submission are set using the configure() method of the calculator.

When submitting jobs via a queuing system, the results are not immediately available to the script. The calculator handles this by simply returning None if the calculation has not finished. After the job is finished one can simply rerun the script. This causes the calculator to restart and read the results without performing another calculation, after which additional analyses can be carried out.