Skip to content
Johannes Voss edited this page Aug 29, 2017 · 25 revisions

About

ase-espresso is a python interface for Quantum Espresso using the Atomic Simulation Environment ase.

The main purpose of the ase-espresso interface is to allow for python-controlled ionic updates (e.g. ase-based structural relaxation) and to provide post-processed Quantum Espresso output (e.g. charge densities, DOS) as numpy arrays. While the ase-espresso interface can be used to create input files for Quantum Espresso only, there are alternative python interfaces for input file generation (or for running static calculations ionic step by ionic step): ase_qe_intrfce, PWscfInput, and qecalc.

Top

Installation

  • Get the ase from https://wiki.fysik.dtu.dk/ase/ and install it along with its prerequisites.
  • Get the ase-espresso interface via git clone https://github.com/vossjo/ase-espresso
  • From within ase-espresso's source directory, run python setup.py install --prefix=prefix.
  • Add prefix/lib/pythonX.Y/site-packages to your PYTHONPATH variable.
  • In prefix/lib/pythonX.Y/site-packages, choose an espsite.py example, copy it to espsite.py, and adjust it to your cluster setup. More info about espsite.py below.
  • Optional: Get the following branch of Quantum Espresso: http://www.qe-forge.org/gf/project/q-e/scmsvn/?action=browse&path=%2Fbranches%2Fespresso-dynpy-beef%2F via
    svn co --username anonymous http://qeforge.qe-forge.org/svn/q-e/branches/espresso-dynpy-beef
    (blank password)

    http://www.slac.stanford.edu/~vossj/espresso.5.1.r11289.pybeef.tgz, to take advantage of dynamic python control of Quantum Espresso and e.g. PDOS based on the tetrahedron method. A newer version of Quantum Espresso with the dynamic python binding functionality + BEEF compatibility can be found here: https://github.com/vossjo/q-e
  • Optional: git clone https://github.com/vossjo/libbeef for calculating Bayesian error estimates with Quantum Espresso.
    To enable the functional, configure espresso with BEEF_LIBS="-Lpathtobeeflibrary/lib -lbeef".
    It is used via specifying input_dft="BEEF-vdW" in the &SYSTEM section of your pw.x input (or xc='BEEF-vdW' in the ase interface). Calculation of ensemble energies for the error estimates is turned on by furthermore adding ensemble_energies=.true. to the input.
    Further instructions and precompiled binaries can be found here.
  • espsite.py contains cluster/scheduler specific functions, including for how scheduler environment variables for submission directory etc. are to be interpreted or in which path the quantum espresso binaries can be found, the path to local scratch, etc. The examples use either stdio or named pipes for communication between python and quantum espresso (the latter are only needed if the mpi implementation cuts off stdio file descriptors). There are furthermore three mpiexec-based command strings to be defined: one for running one process on each node for copying from and to node-local scratch, one for running pw.x (or e.g. pp.x) in parallel, and one for running several groups of pw.x. The latter is needed for NEBs, where one mpiexec ... pw.x is run for each image (with ideally one or more nodes per image); for this to work, espsite.py needs to know the allocated nodes and also how to tell mpiexec to run on a subset of the nodes.

Top

Manual

Top

Tutorials

Top