Installation of siesta-3.2 & TranSiesta with Intel MPI

Contents

  1. Prerequisites
  2. Installation steps for siesta
  3. Installation steps for transiesta
  4. Execution and Testing
  5. Known errors and solutions
  6. References

1. Prerequisites

  • MPI
  • BLAS

2. Installation steps for siesta

2.1 Download source code

http://icmab.cat/leem/siesta/CodeAccess/Code/downloads.html

2.2 Untar

$ tar -xvf siesta-3.2.tgz

2.3 Configure

Change the directory then execute the below command to configure

$ cd siesta-3.2/Src

$ export CC=icc

$ export FC=mpiifort

$ ./configure –enable-mpi –with-blas=/opt/intel/mkl/lib/intel64 –with-lapack=/opt/intel/mkl/lib/intel64 –with-blacs=/opt/intel/mkl/lib/intel64 –with-scalapack=/opt/intel/mkl/lib/intel64

it will  start an automatic scan of your system and try to build an arch.make for you. Check the arch.make file for compiler and library path.

One important compilation option is -DGRID_DP, which tells the compiler to use double precision arithmetic in grid-related arrays. Unless you find memory problems running siesta, we strongly recommend it, and we will likely make it the default in future versions. If you use GRID_DP, please note that it is advantageous to enable also PHI_GRID_SP, since the array that stores orbital values on the grid can safely be kept in single precision, with significant savings in memory and negligible numerical changes.

2.4 Compile  the siesta

$ cd siesta-3.2/Obj

$ cp siesta-3.2/Src/arch.make .

$ sh ../Src/obj_setup.sh

$ make

If successful will create “siesta” executable.

3. Installation steps for transiesta

Follow the same steps as mentioned in section 2 ” Installation Steps “. Only at the last step use ” make transiesta” instead of “make”. It will generate the executable “Obj/transiesta”.

4. Execution and Testing

4.1 Test siesta installation

$ mkdir h2o

$ cd h2o

$ cp siesta-3.2/Examples/H2O/h2o.fdf .

You need to make the siesta executable visible in your path. You can do it in many ways, but a simple one is

ln -s siesta-3.2/Obj/siesta .

$ cd siesta-3.2/Pseudo/atom

$ make

$ cd Tutorial/PS_Generation/O

$ cat O.tm2.inp

$ sh ../../Utils/pg.sh O.tm2.inp

Now there should be a new subdirectory called O.tm2 (O for oxygen) and O.tm2.vps (binary) and O.tm2.psf (ASCII) files.

$ cp O.tm2.psf siesta-3.2/h2o/O.psf

The same could be repeated for the pseudopotential for H, but you may as well copy H.psf from Examples/Vps/ to your h2o working directory.

Now you are ready to run the program:

./siesta < h2o.fdf | tee h2o.out

(If you are running the parallel version you should use some other invocation, such as mpirun -np 2 siesta).

After a successful run of the program, you should have several files in your directory including the following:

  • fdf.log (contains all the data used, explicit or chosen by default)
  • O.ion and H.ion (complete information about the basis and KB projectors)
  • h2o.XV (contains positions and velocities)
  • h2o.STRUCT_OUT (contains the final cell vectors and positions in “crystallographic” format)
  • h2o.DM (contains the density matrix to allow a restart)
  • h2o.ANI (contains the coordinates of every MD step, in this case only one)
  • h2o.FA (contains the forces on the atoms)
  • h2o.EIG (contains the eigenvalues of the Kohn-Sham Hamiltonian)
  • h2o.xml (XML marked-up output)

4.2 Test transiesta installation

$ cd Examples/TranSiesta
$ cd Elec
$ mkdir OUT_Test
$ cd OUT_Test
$ cp ../* .
$ transiesta < elec.fast.fdf > elec.fast.out

For parallel run

$ mpirun -np 2 transiesta < elec.fast.fdf > elec.fast.out

5. Known errors and solutions

6. References

  1. http://departments.icmab.es/leem/siesta/
  2. http://departments.icmab.es/leem/siesta/Documentation/Manuals/siesta-3.2-manual.pdf
  3. http://icmab.cat/leem/siesta/Documentation/Manuals/siesta-3.1-manual/node1.html
  4. http://icmab.cat/leem/siesta/Documentation/Manuals/siesta-3.1-manual/node7.html
This entry was posted in HPC Applications. Bookmark the permalink.

Leave a comment