ADF

From Alliance Doc
Revision as of 19:57, 5 December 2017 by Rdickson (talk | contribs)
Jump to navigation Jump to search
Other languages:

Introduction

ADF (The Amsterdam Density Functional package) is a program for first-principles electronic structure calculations. It is particularly popular in the research areas of homogeneous and heterogeneous catalysis, inorganic chemistry, heavy element chemistry, various types of spectroscopy, and biochemistry.

BAND, also called ADF-BAND, is a related program used to study periodic systems (solids, surfaces, slabs, and polymers) and reactions on surfaces. BAND is a part of ADF package here.

Running ADF on Graham

ADF and BAND are installed only on Graham due to license restrictions. Versions 2016.106 and 2017.207 are currently available through the modules system. You can load them with one of:

[name@server $] module load adf/2016.106
[name@server $] module load adf/2017.207

Job Submission

Graham uses the Slurm scheduler; for details about submitting jobs, see Running jobs.

Single ADF or BAND run

The following example is a job script for a whole-node ADF job:

File : mysub.sh

#!/bin/bash
#SBATCH --nodes=1 --ntasks-per-node=32  # 1 node with 32 cpus, you can modify it
#SBATCH --mem=0                         # request all memory on node
#SBATCH --time=00-03:00                 # time (DD-HH:MM)

module load adf/2017.207
ADF adf_test.inp


The following is an example for the input file, adf_test.inp:

File : adf_test.inp

Title WATER Geometry Optimization with Delocalized Coordinates

 Atoms
    O             0.000000     0.000000     0.000000
    H             0.000000    -0.689440    -0.578509
    H             0.000000     0.689440    -0.578509
 End

 Basis
 Type TZP
 Core Small
 End

 Geometry
  Optim Deloc
  Converge 0.0000001
 End

 End Input


Multiple ADF or BAND runs within one input file

Multiple calculations can be combined into a single job by creating a shell script, as in this example:

File : GO_H2O.run

#!/bin/bash
if test -z "$SCM_TESTOUTPUT" ; then SCM_TESTOUTPUT=GO_H2O.out; fi

$ADFBIN/adf << eor > $SCM_TESTOUTPUT
Title WATER Geometry Optimization with Delocalized Coordinates

Atoms
   O             0.000000     0.000000     0.000000
   H             0.000000    -0.689440    -0.578509
   H             0.000000     0.689440    -0.578509
End

Basis
Type TZP
Core Small
End

Geometry
 Optim Deloc
 Converge 0.0000001
End

End Input
eor

rm TAPE21 logfile
$ADFBIN/adf << eor >> $SCM_TESTOUTPUT
Title WATER Geometry Optimization in Cartesians with new optimizer

Atoms
    O             0.000000     0.000000     0.000000
    H             0.000000    -0.689440    -0.578509
    H             0.000000     0.689440    -0.578509
End

Basis
 Type TZP
 Core Small
End

Geometry
  Optim Cartesian
  Branch New
  Converge 0.0000001
End

End Input
eor

rm TAPE21 logfile
$ADFBIN/adf << eor >> $SCM_TESTOUTPUT
Title WATER Geometry Optimization with Internal Coordinates

Atoms    Z-Matrix
 1. O   0 0 0
 2. H   1 0 0   rOH
 3. H   1 2 0   rOH  theta
End

Basis
 Type TZP
 Core Small
End

GeoVar
 rOH=0.9
 theta=100
End
Geometry
  Converge 0.0000001
End

End Input
eor

rm TAPE21 logfile
$ADFBIN/adf << eor >> $SCM_TESTOUTPUT
Title WATER   optimization with (partial) specification of Hessian

Atoms    Z-Matrix
 1. O   0 0 0
 2. H   1 0 0   rOH
 3. H   1 2 0   rOH  theta
End

GeoVar
 rOH=0.9
 theta=100
End
HessDiag  rad=1.0  ang=0.1

Fragments
 H   t21.H
 O   t21.O
End

Geometry
  Converge 0.0000001
End

End Input
eor

rm TAPE21 logfile
$ADFBIN/adf << eor >> $SCM_TESTOUTPUT
Title WATER Geometry Optimization in Cartesians

Geometry
  Optim Cartesian
  Converge 0.0000001
End

Define
 rOH=0.9
 theta=100
End

Atoms    Z-Matrix
 1. O   0 0 0
 2. H   1 0 0   rOH
 3. H   1 2 0   rOH theta
End

Fragments
 H   t21.H
 O   t21.O
End

End Input
eor

mv TAPE21 H2O.t21


The job script is identical to the one above, except that it calls the shell script just shown instead of ADF:

File : GO_H2O.sh

#!/bin/bash
#SBATCH --nodes=1 --ntasks-per-node=32  # 1 node with 32 cpus, you can modify it
#SBATCH --mem=0                         # request all memory on node
#SBATCH --time=00-03:00                 # time (DD-HH:MM)

module load adf/2017.207
./GO_H2O.run                            # run the shell script


Examples

Example input/output for ADF can be found on Graham under

/home/jemmyhu/tests/test_ADF/2017.207/test_adf/

The same procedure applies to BAND job, see band_test.inp and band_test.sh examples under

/home/jemmyhu/tests/test_ADF/2017.207/test_band