Abinit

From ScientificComputing
Jump to: navigation, search

Category

Chemistry, Quantum chemistry, DFT

Description

Abinit is a package whose main program allows one to find the total energy, charge density and electronic structure of systems made of electrons and nuclei (molecules and periodic solids) within Density Functional Theory (DFT), using pseudopotentials and a planewave or wavelet basis. Abinit also includes options to optimize the geometry according to the DFT forces and stresses, or to perform molecular dynamics simulations using these forces, or to generate dynamical matrices, Born effective charges, and dielectric tensors, based on Density-Functional Perturbation Theory, and many more properties. Excited states can be computed within the Many-Body Perturbation Theory (the GW approximation and the Bethe-Salpeter equation), and Time-Dependent Density Functional Theory (for molecules). In addition to the main Abinit code, different utility programs are provided.

Available versions (Euler, old software stack)

Legacy versions Supported versions New versions
7.10.5

Please note that this page refers to installations from the old software stack. There are two software stacks on Euler. Newer versions of software are found in the new software stack.

Environment modules (Euler, old software stack)

Version Module load command Additional modules loaded automatically
7.10.5 module load intel/15.0.0 open_mpi/1.6.5 python/2.7.6 abinit/7.10.5 openblas/0.2.13_seq

Please note that this page refers to installations from the old software stack. There are two software stacks on Euler. Newer versions of software are found in the new software stack.

How to submit a job

You can submit an Abinit job (test.in, test.files) with the following command
sbatch [Slurm options] --wrap="abinit < test.files > output.log"
Here you need to replace [Slurm options] with Slurm parameters for the resource requirements of the job. Please find a documentation about the parameters of sbatch on the wiki page about the batch system.

Parallel jobs

For running an Abinit job in parallel, you need to add the command mpirun in front of the abinit command and specify the number of cores (here we use 4) through the -n option of bsub:
sbatch --ntasks=4 [Slurm options] --wrap="mpirun abinit < test.files > output.log"
Here you need to replace [Slurm options] with Slurm parameters for the resource requirements of the job. Please find a documentation about the parameters of sbatch on the wiki page about the batch system. You do not need to set the -np for mpirun, as this will automatically be set by the batch system to the value that has been specified for the -n option of bsub.

Example

As an example for running an Abinit job, we will perform some calculations on a H_2 molecule. This requires two files, an input file and a file, which specifies the name of the files created during the job.
[leonhard@euler04 ~]$ ls
test.files  test.in
[leonhard@euler04 ~]$ cat test.in
# H2 molecule in a big box

acell 10 10 10
ntypat 1      
znucl 1        
natom 2       
typat 1 1     
xcart         
              
  -0.7 0.0 0.0
   0.7 0.0 0.0
ecut 10.0     
kptopt 0      
nkpt 1        
nstep 10      
toldfe 1.0d-6 
diemac 2.0    
optforces 1
[leonhard@euler04 ~]$ cat test.files
test.in
test.out
testi
testo
test
/cluster/apps/abinit/7.10.5/x86_64/share/abinit-test/Psps_for_tests/01h.pspgth

After preparing the input file, we need to load the required module for using Abinit 7.10.5 and then we can submit the job.

[leonhard@euler04 ~]$ module load intel/15.0.0 open_mpi/1.6.5 python/2.7.6 abinit/7.10.5
[leonhard@euler04 ~]$ bsub -n 1 -W 0:30 -R "rusage[mem=512]" "abinit < test.files > log"
Generic job.
Job <33703710> is submitted to queue <normal.4h>.
[leonhard@euler04 ~]$ bjobs
JOBID      USER       STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
33703710   leonhard   PEND  normal.4h  euler04                 *les > log Dec  7 16:06
[leonhard@euler04 ~]$ bjobs
JOBID      USER       STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
33703710   leonhard   PEND  normal.4h  euler04                 *les > log Dec  7 16:06
[leonhard@euler04 ~]$ bjobs
No unfinished job found
[leonhard@euler04 ~]$ grep etotal log 
           etotal     -1.1037224213E+00
You can find the resource usage summary of the job in the corresponding LSF log file.

License information

GPLv3 or later

Links

http://www.abinit.org

https://en.wikipedia.org/wiki/ABINIT