You are here


Priroda is a fast parallel relativistic DFT and ab initio code for molecular modeling. The code originally implemented fast resolution-of-identity GGA DFT for coulomb and exchange integrals. Later it was extended to provide RI-DFT with hybrid functionals, RI-HF and RI-MP2, and parallel high-level coupled-cluster methods. All these levels of theory can be used together with an efficient all-electron scalar-relativistic method, with small-component bases supplied for all the elements of Periodic Table. The current release of the code also includes a novel NDO-based semiempirical method.

 Restrictions / License Information

The code is free for academic users, but is not open source. It is distributed on request by the Author, Dr. Dimitri N. Laikov.  To access the Priroda code on Westgrid, users have to send us ( a free-form email confirming that they have read and agreed to abide by the following conditions:

Conditions for the Priroda code access on WestGrid:

1. I understand that the Priroda code's ownership and copyright belongs
solely to its Author, Dr. Dimitri N. Laikov. I will not incorporate any
part of the Priroda code into any other program system, either for sale or
for non-profit distribution, without written permission by the Author.

2. I will not copy, distribute or supply the Priroda code for any reason
whatsoever to third persons or organizations. Instead, I will direct all
the code requests to the Author.

3. If results obtained with the code are published, I will cite the proper
Priroda code references and, when appropriate, the specific methods
references, as described in the Priroda code documentation and/or Dr.
Laikov's website (

4. I understand that the Priroda code is provided "as is" and the author
is not assuming any responsibilities or liabilities whatsoever.

After receiving the email, we will add the user to the wg-prrda UNIX group that is used to control access to the Priroda program, basis sets and docummentaton. 

Running Priroda on Grex


On Grex, the parallel Priroda executable (called p ) will be in the PATH after loading of corresponding module. Its basis sets and/or semiempirical method parameters can be found under /global/software/priroda/bin. Documentation is available under /global/software/priroda/doc. The style of the Priroda input is of free format namelist groups, similar to that of GAMESS-US but more flexible (no limitations inherited from Fortran77). Examples and desctiption of each input group are in the  doc  and example directory. To invoke the code interactively:

module load priroda
p  name.inp name.out

The basis sets, and for DFT and ab initio calculations, are located under /global/software/priroda/bin also. These files contain orbital and RI-fitting basis sets; which is suitable for relativistic calculations also includes coefficients for kinetically-balanced small component basis sets. contains SBK effective core potentials and an reoptimized bases for pure GGA RI-DFT. Finally, contains parameters for the NDO semiempirical method (presently for elements of the first two rows). It is convenient to copy or link these sets to your working directory, where Priroda would find them. Alternatively, you could specify full path in your input files, like basis=/global/software/priroda/bin/ in $control .. $end.


Most the restart information is present in the formatted text form (similar to GAMESS-US). Unlike GAMESS though, which creates a separate PUNCH file, Priroda outputs the formatted data groups such as $Energy .. $End (containing energy and its derivatives amongst other things) directly into its standard output, with a desctiptive prefix to each kind of data lines ("eng>" for $Energy group, "MOL>" for the converged and "mol>" for the intermeduate $molecule groups, etc.). Users might want to use either text editors or better UNIX tools like awkgrep andsed to extract these. 

In addition, save= directive in $control can be used to save and restore converged SCF orbitals in a binary format.


WIth the code comes a simple viewer called xm that can be used for drawing molecular geometries, browsing through optimization histories: xm name.out. There is an interface to Molden: adding  "+molden" value to the print keyword results in printing molecular orbitals (prefix "mos>") or normal modes (prefix "freq>") in Molden format.

Efficiency considerations

 Production Priroda computations should be, as usual, performed in the batch mode, from Torque job scripts. RI-MP2 and CC calculations would benefit from a larger number of processes, while more fine-grained GGA RI-DFT should scale well within one SMP node. Example Torque script (requesting two hours, 1000MB of RAM, and 4 SMP CPUs) follows:

#PBS -m be
#PBS -l nodes=1:ppn=4,mem=1000mb,walltime=2:00:00
#PBS -r n
#PBS -m ea
#PBS -N priroda-test
#PBS -q default



module load priroda/2016

# copy the input file locally and set the resource requests
# and temporary paths. note that the file myfile.inp
# should not have a $system .. $end group for it will be created now

cp  myfile.inp $SCR/priroda.inp
cd $SCR

echo '   ' >> priroda.inp
echo ' $system ' >> priroda.inp
echo "   memory=1000 disk=10 path=. " >> priroda.inp
echo ' $end ' >> priroda.inp

#  copy basis sets locally

cp /global/software/priroda/bin//*.in $SCR
cp /global/software/priroda/bin//*.bas $SCR

# Actually run the job

mpiexec p priroda.inp $PBS_O_WORKDIR/myfile.${PBS_JOBID}.log

# End of the job script

Resources the code uses are controlled in the $system input group. Number of CPUs will be determined by the code automatically, but the memory= request should match the TORQUE-l mem= resource request. Temporary files Priroda creates must be placed in the location given by TORQUE, $TMPDIR , by setting the path= to its location. In case of pure GGA DFT calculations that are less demanding for disk space, it can be advantageous to  specify negative values of disk= in $system that would correspont to keeping them in an internal RAM-disk. Note that in case of RAM-disk, one has to request (memory + abs(disk)) MB from TORQUE.

A simplified job wrapper script, pbspriroda, that would create and submit the TORQUE job automatically, is in the PATH after loading the Priroda module. An example with the same settings as for the above TORQUE script, that does the same job:

pbspriroda myfile.inp -procs nodes=1:ppn=4 -mem 1000 -time 2:00:00 -disk 10

System Grex
Version 2016