AFIR-web Support Site

How to run GRRM with SIESTA

If you have SIESTA program, you can use it instead of Gaussian. You need to set some environment variables that will be used by GRRM17 program as follows:

bash)

alias subsiesta='siesta'
alias submpi='mpirun'

csh/tcsh)

alias subsiesta siesta
alias submpi mpirun

where subsiesta is an alias of "siesta" command (you may need to specify the full path of your siesta, e.g. alias subsiesta='/usr/local/siesta-4.0.2/bin/siesta'), and submpi is an alias of "mpirun" or "mpiexec" command; GRRM17 calls the command

${submpi} -np N -machinefile XXX_Machine.rrm ${subsiesta} < XXX_SiestaJOB.fdf > XXX_SiestaJOB.out  ,

then you may need to set "submpi" command to "mpirun -r ssh", or "mpirun -bind-to none -v", etc. (you may need to ask your system administrator). The number of processes (-np N) can be set by SiestaProc=N option in XXX.com. The machine file (XXX_Machine.rrm) to be generated by GRRM17.

You need to prepare two GRRM input files, XXX.com and XXX.inp:

XXX.com is a GRRM17 input file. You must declare "%link=siesta-3.1" in the first line of XXX.com. Even if you use SIESTA 3.2, 4.0, or later, you have to put "%link=siesta-3.1". This is a specification and GRRM17 will work with SIESTA 3.2 and 4.x.

XXX.inp is a template file for a SIESTA input file; GRRM program will generate a SIESTA input file from this template on demand and then call siesta.
Also, do not forget to put the pseudopotential files (*.psf) in the same directory.

Sample input files for a MIN calculation of water molecule in a 8Å × 8Å × 8Å vacuum box are:

[h2o_min.com]

%link=siesta-3.1
# MIN
 
0 1
 O   0.000000000000   0.000000000000   0.000000000000
 H   1.000000000000   0.000000000000   0.000000000000
 H   0.000000000000   1.000000000000   0.000000000000
Options
NoFC
SiestaProc=2
 

[h2o_min.inp]

SystemName      h2o_min_SiestaJOB
SystemLabel     h2o_min_SiestaJOB
 
NumberOfAtoms   3
NumberOfSpecies     2
 
%block Chemical_Species_Label
  1    8    O
  2    1    H
%endblock Chemical_Species_Label
 
AtomicCoordinatesFormat    Ang
%block AtomicCoordinatesAndAtomicSpecies
  0.000000000000  0.000000000000  0.000000000000  1
  1.000000000000  0.000000000000  0.000000000000  2
  0.000000000000  1.000000000000  0.000000000000  2
%endblock AtomicCoordinatesAndAtomicSpecies
 
LatticeConstant    1.0 Ang
%block LatticeVectors
  8.000000000000  0.000000000000  0.000000000000
  0.000000000000  8.000000000000  0.000000000000
  0.000000000000  0.000000000000  8.000000000000
%endblock LatticeVectors
 
# Gamma-point only (This is a comment)
%block kgrid_Monkhorst_Pack
  1  0  0  0.
  0  1  0  0.
  0  0  1  0.
%endblock kgrid_Monkhorst_Pack
 
SpinPolarized     .true.
FixSpin           .true.
TotalSpin         0.0
 
XC.functional     GGA
XC.authors        PBE
MeshCutoff        100. Ry
MaxSCFIterations  128
 
DM.Tolerance      1.d-6
DM.MixingWeight   0.25
DM.NumberPulay    1
DM.UseSaveDM      .false.
 
SolutionMethod    Diagon
OccupationFunction     FD
ElectronicTemperature  10 K
 
MD.TypeOfRun      CG
MD.NumCGsteps     0
 
%block MM.Potentials
 1 1 Grimme 7.25 2.684
 1 2 Grimme 3.24 2.343
 2 2 Grimme 1.45 2.002
%endblock MM.Potentials
MM.Grimme.D   20.0
MM.Grimme.S6  0.75
 

AtomicCoordinatesFormat should be Ang (or NotScaledCartesianAng), because GRRM17 provides a molecular geometry in the Cartesian coordinate in the unit of angstrom. And, make sure the order of atoms in %block AtomicCoordinatesAndAtomicSpecies is the same as that in XXX.com.

MD.NumCGsteps should be set to 0. GRRM17 uses own driver.

Put DM.UseSaveDM option. Even if this option set to .False. in the first step (ITR. 0), GRRM17 will set this option to .True. after the second step (ITR. 1). Of course, you can provide a DM file to use MO GUESS option.

If you perform a crossing point (MESX) calculation, you have to set SpinPolarized to .True. and put FixSpin and TotalSpin options. GRRM17 sets FixSpin to .True. and TotalSpin to the value which is provided in XXX.com.

NOTE: If you run GRRM17 in multiple nodes using MPI, you must specify a non-MPI (serial) version of SIESTA executable as "subsiesta", because MPI-parallelized GRRM17p processes cannot call any "mpirun" command (current version of GRRM17 binaries does not support nested parallelism). In a parallel run, GRRM17 calls the command

${subsiesta} < XXX_SiestaJOB.fdf > XXX_SiestaJOB.out  .

Manual