ADF

From Alliance Doc
Revision as of 19:27, 2 February 2018 by Jemmyhu (talk | contribs)
Jump to navigation Jump to search
Other languages:

Introduction

The ADF (Amsterdam Density Functional) Modeling Suite offers powerful computational chemistry tools for many research areas such as homogeneous and heterogeneous catalysis, inorganic chemistry, heavy element chemistry, various types of spectroscopy, and biochemistry.

Compute Canada users have access to the products in ADF Modeling Suite: ADF, ADF-GUI, BAND, BAND-GUI, DFTB, ReaxFF, COSMO-RS, QE-GUI, and NBO6.

  • ADF, to do first-principles electronic structure calculations;
  • BAND, to study periodic systems (solids, surfaces, slabs, and polymers) and reactions on surfaces.


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. To load a module, use the module load command specifying the version you select, for example

 [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

This mysub.sh script is for a whole-node job. The last two lines load version 2017.207 and call ADF directly.

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


This is the input file used in the script:

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 script such as this:

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 following script is identical to the one used for a single run (mysub.sh), except that the last line calls the GO_H2O.run script, 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 jobs, see band_test.inp and band_test.sh examples under

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