ADF: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
m (Category:Software)
No edit summary
Line 1: Line 1:
[[Category:Software]]
[[Category:Software]]
==Introduction==
==Introduction==
ADF (The Amsterdam Density Functional package) is a software 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.
[https://www.scm.com/ 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 the name of a software package closely related to ADF. BAND can be used to study periodic systems: solids, surfaces, slabs, polymers, and reactions on surfaces. BAND is a part of ADF package here.
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==
==Running ADF on Graham==
ADF 2016.106 and 2017.207 are installed on Graham cluster and available through the modules system. You can load them using either of.
ADF and BAND are installed only on [[Graham]] due to license restrictions. Versions 2016.106 and 2017.207 are currently available through the [[Utiliser des modules/en|modules]] system. You can load them with one of:


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


Line 16: Line 15:
Graham uses the Slurm scheduler; for details about submitting jobs, see [[Running jobs]].
Graham uses the Slurm scheduler; for details about submitting jobs, see [[Running jobs]].


====Single adf or band run====
====Single ADF or BAND run====
The following example is a full-node ADF job script, mysub.sh:
The following example is a job script for a whole-node ADF job:


{{File
{{File
Line 23: Line 22:
   |lang="bash"
   |lang="bash"
   |contents=
   |contents=
#!/bin/bash
#!/bin/bash
#SBATCH --nodes=1 --ntasks-per-node=32  # 1 node with 32 cpus, you can modify it
#SBATCH --nodes=1 --ntasks-per-node=32  # 1 node with 32 cpus, you can modify it
#SBATCH --mem-per-cpu=2G                # memory, should be <4G for full node job
#SBATCH --mem=0                        # request all memory on node
#SBATCH --time=00-03:00                # time (DD-HH:MM)
#SBATCH --time=00-03:00                # time (DD-HH:MM)
#SBATCH --output=adf_test.log          # output .log file


module load adf/2017.207
module load adf/2017.207
ADF adf_test.inp               # ADF command
ADF adf_test.inp
}}
}}


Line 59: Line 57:
}}
}}


====Multi adf or band runs within one input file====
====Multiple ADF or BAND runs within one input file====


The following script is an example for a full-node multi-ADF runs, GO_H2O.sh:
Multiple calculations can be combined into a single job by creating a shell script, as in this example:
{{File
  |name=GO_H2O.sh
  |lang="bash"
  |contents=
#!/bin/bash
#SBATCH --nodes=1 --ntasks-per-node=32  # 1 node with 32 cpus, you can modify it
#SBATCH --mem-per-cpu=2G                # memory, should be <4G for full node job
#SBATCH --time=00-03:00                # time (DD-HH:MM)
#SBATCH --output=adf_test.log          # output .log file
 
module load adf/2017.207
./GO_H2O.run                          # run the input file, GO_H2O.run must be executable
}}
 
Example for several adf runs within one the input file, GO_H2O.run
{{File
{{File
   |name=GO_H2O.run
   |name=GO_H2O.run
Line 213: Line 196:


mv TAPE21 H2O.t21
mv TAPE21 H2O.t21
}}
The job script is identical to the one above, except that it calls the shell script just shown instead of <code>ADF</code>:
{{File
  |name=GO_H2O.sh
  |lang="bash"
  |contents=
#!/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
}}
}}



Revision as of 19:50, 5 December 2017

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