Z MetaCentrum
Přejít na: navigace, hledání


The DIRAC program computes molecular properties using relativistic quantum chemical methods. It is named after P.A.M. Dirac, the father of relativistic electronic structure theory.

Notice: This application supports parallel computing (MPI, OpenMP) which can have weird consequences. For more details about parallel computing visit the page How to compute/Parallelization.


Available versions:

  • DIRAC17 (February 2018), modulefile dirac-17 - compiled with Intel CDK 17
  • DIRAC17 (February 2018), modulefile dirac-17-tuned1, with the exactly same compile-time parameters changed as in dirac-16-newest (see #Difference between the versions of DIRAC16)
  • DIRAC17 (February 2018), modulefile dirac-17-tuned1_mkl-parallel_int64 with the exactly same changes as dirac-17-tuned1, but compiled with parallel Intel MKL library and 64-bit integers
  • DIRAC16 (December 2016), modulefile dirac-16 - OpenMPI version compiled with Intel CDK 17
  • DIRAC16 (January 2018), modulefile dirac-16-newest, with some compile-time parameters tweaked, compiled with Intel CDK 17

All versions of both DIRAC16 and DIRAC17 have been compiled with OpenMPI 2.1.1, using the Intel Parallel Studio 2017's C/C++/Fortran compiler.

Difference between the versions of DIRAC16

The version from December 2016 (modulefile dirac-16) represents standard version of DIRAC16 - sources were unpacked, compiled and that's it.

The version from January 2018 (modulefile dirac-16-newest) got some compile-time parameter values changed before it was compiled. Specifically, these values in the source code have been changed:

  • src/prp/dcbexp.h: Variable MAXEXP changed from 350 to 800
  • src/include/aovec.h: Variable MXCONT changed from 30 to 3000
  • src/include/mxcent.h: Variable MXCENT changed from 300 to 10000
  • src/x2c/x2c_cfg.F90: Variable x2c_mxcent changed from 300 to 10000
  • src/prp/dcbxpp.h: Variable MAXLPP changed from 40 to 400

After setting these values in the source files, the program was compiled using these parameters:

./setup --mpi --extra-cxx-flags=-mcmodel=medium --extra-cc-flags=-mcmodel=medium --extra-fc-flags=-mcmodel=medium --prefix=/software/dirac/16-newest
cd build && make depend && make -j && make install

DIRAC17 with parallel Intel MKL library, 64-bit integers and tweaked compile-time parameters

The version dirac-17-tuned1_mkl-parallel_int64 has been configured for compilation with the following commands:

module load cmake-3.6.1
module load openmpi-2.1.1-intel

./setup --mpi \
        --int64 \
        --mkl=parallel \
        --extra-cxx-flags=-mcmodel=medium \
        --extra-cc-flags=-mcmodel=medium \
        --extra-fc-flags=-mcmodel=medium \

Currently, this is the only version which is compiled with 64-bit integers.

Before compilation, several source code integral constants have been changed to different values to accomodate needs of one of our users. To find out which integral constants were changed and how, see #Difference between the versions of DIRAC16.


Warning.gif WARNING: If you want to be able to use DIRAC in MetaCentrum, you have to read and accept it's license agreement. Please note that academic license of DIRAC prohibits some behaviour, such as commercial computations.

Read and accept DIRAC's license agreement here!

If you'll want to review the exact wording of the license at any time, you can find it at these places:

  • DIRAC16 - license is available in TXT file /software/dirac/16/license.txt
  • DIRAC17 - license is available in PDF file /software/dirac/17/license.pdf

They are also available here at wiki; you can view or download the PDF files at following links:


Preparing environment


 module load dirac-17
 pam-dirac -h


module load dirac-17-tuned1
pam-dirac -h


First, prepare environment using

module load dirac-16

Now you can run DIRAC by invoking the wrapper script pam-dirac, i. e. to print help:

pam-dirac -h

Our installation of DIRAC is compiled with OpenMPI. Because it has been compiled with Intel compilers, it also uses MKL (Math Kernel Library) from Intel. Both OpenMPI and MKL are multithreading-enabled libraries - you should think about limiting the number of concurrent MKL threads by setting the MKL_NUM_THREADS environmental variable. We recommend to read the official documentation thoroughly to get the most performance out of your DIRAC jobs.


If you are using the DIRAC16 version with tweaked compile-time parameters, you need to use

module load dirac-16-newest

to prepare the environment. Then, proceed as usual.


You can find documentation at the official website:

Program administrator


Official website