Abinit
From ScientificComputing
Contents
Category
Chemistry, Quantum chemistry, DFTDescription
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 commandsbatch [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 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+00You can find the resource usage summary of the job in the corresponding LSF log file.