Installing and Configuring Quantum ESPRESSO

Note

Please ensure the software release selected above matches the version of MS Suite you have installed. These instructions are release dependent.

 

Quantum ESPRESSO (QE) is required for periodic DFT calculations in the Materials Science suite. It is not included in the Schrödinger software distribution, so it must be downloaded and installed. The download contains the source code, which must be compiled on a Linux platform that is supported by Schrödinger (see the System Requirements page). There is also a separate precompiled (binary) version that can be downloaded and installed instead. The binaries have been compiled using Intel(r) ifx (IFX) 2025.1.1 20250418 compiler and linked with MKL and OpenMPI 4.1.8.

You must make sure you download and install the version that is compatible with the Materials Science suite you installed, and if you upgrade the Materials Science suite, you also upgrade QE. The suite version in the form yyyy-q is encoded in the name of the QE tar.gz file.

Quantum ESPRESSO supports three parallelization schemes: OpenMP, MPI and hybrid. Schrödinger job control supports both OpenMP and MPI. The hybrid scheme is not recommended. By default, the MPI scheme is enabled, and OpenMP is disabled. The precompiled binaries are compiled with OpenMPI, which is included in the distribution, and set up for scp between compute nodes. GPU use is not supported.

Quantum ESPRESSO jobs are run under Job Control. If Quantum ESPRESSO has been compiled with OpenMPI or OpenMP, you will need to install a queuing system on the host on which you run the jobs, and configure the hosts file appropriately. In particular, any queues to which you submit Quantum ESPRESSO jobs should request only a single node (though multiple cores can be requested), as jobs distributed across nodes are not supported. See Preparing for Batch Queue Submission for instructions.

In addition to installing the code, you can also download pseudopotentials for use with the code or use the pseudopotentials distributed with the Materials Science suite.

Quantum ESPRESSO installations are only supported on Linux.

Installing and Configuring Quantum ESPRESSO Table of Contents

Installing Quantum ESPRESSO from binaries

  1. Create a directory for the binaries in the Schrödinger installation: 

    cd $SCHRODINGER
    mkdir qe-bin
  2. Download the binary archive from the following location into the qe-bin directory:

    https://github.com/schrodinger/q-e/releases/download/v7.5-2026-1/qe-bin.tar.gz

  3. Extract the binaries into this directory:

    cd qe-bin
    tar -zxvf qe-bin.tar.gz
  4. The binaries must be extracted into $SCHRODINGER/qe-bin to run Quantum ESPRESSO.


Installing Quantum ESPRESSO from binaries when $SCHRODINGER is not writable

  1. Create a directory for the binaries. The directory must be in a location accessible by all users; in this example, /opt is used. Note that for each Materials Science suite version the corresponding compatible version of the QE binaries is required. Therefore, it is suggested to include the suite version in the directory name as indicated below:

    mkdir -p /opt/schrodinger_qe_2026-1
  2. Download the binary archive from the following location into the schrodinger_qe_2026-1 directory:

    https://github.com/schrodinger/q-e/releases/download/v7.5-2026-1/qe-bin.tar.gz

  3. Extract the binaries into this directory:

    cd /opt/schrodinger_qe_2026-1
    tar -zxvf qe-bin.tar.gz
  4. Open the script named run_qe from the schrodinger_qe_2026-1 directory in a text editor and set the path to the Quantum ESPRESSO installation:

    export ESPRESSO_ROOT=/opt/schrodinger_qe_2026-1
  5. Create a link to the run_qe script for each Quantum ESPRESSO user by replacing user in the commands below with the correct username.

    mkdir -p /home/user/.schrodinger/2026-1
    cd /home/user/.schrodinger/2026-1
    ln -s /opt/schrodinger_qe_2026-1/run_qe ./

Installing Quantum ESPRESSO from binaries when $SCHRODINGER is not writable (by setting an environment variable)

  1. Create a directory for the binaries. The directory must be in a location accessible by all users; in this example, /opt is used. Note that for each Materials Science suite version the corresponding compatible version of the QE binaries is required. Therefore, it is suggested to include the suite version in the directory name as indicated below:

    mkdir -p /opt/schrodinger_qe_2026-1
  2. Download the binary archive from the following location into the schrodinger_qe_2026-1 directory:

    https://github.com/schrodinger/q-e/releases/download/v7.5-2026-1/qe-bin.tar.gz

  3. Extract the binaries into this directory:

    cd /opt/schrodinger_qe_2026-1
    tar -zxvf qe-bin.tar.gz
  4. Set an environment variable to point to the path of the Quantum ESPRESSO installation before opening the Materials Science suite or running a Quantum ESPRESSO calculation:

    export SCHRODINGER_ESPRESSO_ROOT=/opt/schrodinger_qe_2026-1

    Note: We do not recommend setting this environment variable globally (e.g. in a shell profile) if you use multiple versions of the Materials Science suite to prevent issues arising from version incompatibility.


Installing Quantum ESPRESSO from source code

To install Quantum ESPRESSO from source code, GCC version 4.8 or higher is required for compilation, and the GCC installation must include gfortran.

For more information on this process, see the FAQ or Chapter 2 of the Quantum ESPRESSO Documentation.

  1. Download the software for the current Quantum ESPRESSO release from the following location:

    https://github.com/schrodinger/q-e/archive/v7.5-2026-1.tar.gz

    It is recommended to download to the directory you want to use for the Quantum ESPRESSO installation. (Do not install it into the Schrödinger installation.)

  2. Open a terminal window.

  3. Extract the archive with the following command:

    tar -zxvf q-e_schrodinger-7.5-2026-1.tar.gz
  4. Change to the software directory:

    cd q-e_schrodinger-7.5-2026-1
  5. Run the configure script to set up the environment for compilation.

    For the default compilation, which produces an executable that has MPI enabled for parallel execution, you can enter the following command:

    ./configure

    • To enable OpenMP and disable MPI, use the following command:

      ./configure --enable-openmp --disable-parallel

    • To request compilation of the LAPACK and BLAS libraries shipped with the Quantum ESPRESSO distribution, include the --with-netlib option (along with any other options). This is useful if these libraries are not installed in a standard location, resulting in a compilation error.

      ./configure --with-netlib [other-options]

  6. If parallel execution was requested, a message tells you whether a parallel environment was detected.

  7. Once configuration is successful, compile the binaries with these commands:

    make pw pp neb ph

    Note: Use of make install is not supported.

  8. The run_qe script is necessary to run Quantum ESPRESSO. We will extract the run_qe script from the binaries. Download the binary archive from the following location:

    https://github.com/schrodinger/q-e/releases/download/v7.5-2026-1/qe-bin.tar.gz

  9. Extract the binaries into any directory:

    tar -zxvf qe-bin.tar.gz 
  10. Copy the run_qe script from the extracted binaries to $HOME/.schrodinger/2026-1.

  11. Ensure that the script is executable:

    chmod u+x ~/.schrodinger/2026-1/run_qe
  12. Open the script in a text editor.

  13. Set the path to the Quantum ESPRESSO installation:

    export ESPRESSO_ROOT=/download-dir/q-e_schrodinger-7.5-2026-1

    The script adds the necessary subdirectories to the path to locate binaries, etc.

  14. If Quantum ESPRESSO was compiled with MPI enabled, set the MPIRUN_EXE environment variable, e.g.

    MPIRUN_EXE=/opt/openmpi/bin/mpirun

    You might also have to add MPI locations to the PATH and LD_LIBRARY_PATH environment variables, if they are not already included, e.g.

    export LD_LIBRARY_PATH=/opt/openmpi/lib:$LD_LIBRARY_PATH
    export PATH=/opt/openmpi/bin:$PATH
  15. If Quantum ESPRESSO was compiled with shared-memory OpenMP support or compiled for serial execution, make sure the MPIRUN_EXE environment variable is empty:

    MPIRUN_EXE=

If you are configuring the installation for all users:

  1. Copy (or move) the script to $SCHRODINGER/qe-bin:

    cp ~/.schrodinger/2026-1/run_qe $SCHRODINGER/qe-bin
  2. Set the permissions on the file so that it is accessible and executable by all users:

    chmod 0755 $SCHRODINGER/qe-bin/run_qe

When a job is run, the following locations are searched on the execution host for run_qe, in the order given

  • ~/.schrodinger/2026-1
  • $SCHRODINGER/qe-bin

 

Pseudopotentials

The set of recommended PBE ultrasoft pseudopotentials is distributed with the suite and available from the Quantum ESPRESSO Calculations - Pseudopotentials Dialog Box.

The default cutoffs for these pseudopotentials are set to 40 Ry for energy, 200 Ry for density, as described in Garrity et al.

For NMR calculations, the GIPAW pseudopotentials by Davide Ceresoli are recommended.

Any additional pseudopotentials (see below) can be installed in any location on the machine running Materials Science Maestro (submission host), as the path to the location is specified in the Quantum ESPRESSO Calculations - Pseudopotentials Dialog Box and stored for future use. Pseudopotentials do not need to be installed on the server host.

Pseudopotentials can be obtained from a number of sites, such as

  • https://www.physics.rutgers.edu/gbrv/ (recommended)
  • http://www.quantum-espresso.org/pseudopotentials/
  • http://materialscloud.org/sssp/

Configuring for multi-node execution

Jobs such as NEB calculations can be distributed across multiple nodes, making use of all cores on each node. To enable such calculations, the environment variable SCHRODINGER_TMPDIR should point to a path accessible by all compute nodes on the cluster used (to define a global scratch area). This can be done by adding an env setting to the queue definition in the hosts file (see The env Setting in the Hosts File).

The distributed subjobs do not run on the same node as the master job, by default. To make use of the node where the master job is running, add the environment variable setting SCHRODINGER_MATSCI_REUSE_DRIVER_HOST=1 as an env setting to the queue definition in the hosts file.