SCM Calculators in ASE

ASE calculators are implemented for ADF, BAND, DFTB, and ReaxFF. These will behave almost exactly like native ASE calculators, with the notable exception that they will by default use the SCM drivers for geometry optimization, since they perform significantly better both in convergence test and number of steps to convergence.

ADF Calculator

the ADF class

Class for SCMSUITE ADF ASE calculator. It is imported and used the following way: eg:

from ase.calculators.scm import ADF

some_molecule = ase.Atoms(...)
some_molecule.set_calculator(ADF(label=some_mol))

Will create a directory “some_mol”, in which some_mol.run will be found and executed. Note that it requires at least a label as argument, and that the Atoms object has to be non periodic.

Arguments and default values

The following options can be passed to the constructor:
template: string,
name of a .adf file containing the calculation details. Any other argument passed to the calculator will override this template.
restart: string,
prefix for a restart file. May contain a directory. Default is None, so the calculations don’t restart except if specified.
ignore_bad_restart_file: True or False,
Ignore broken or missing restart file. By default, the scripts throw errors if the restart file is missing or broken.
label: string,
base name used for all created files. May contain a directory.
atoms: ASE Atoms object,
Optional Atoms object to which the calculator will be attached. When restarting, atoms will get its positions and unit-cell updated from file.
job: type of job this calculator will run,

Defaults to GeometryOptimization, in which case any method like “get_potential_energy()” used on the attached atoms object will use the native ADF drivers to perform a geometry optimization. To use an ASE optimizer like BFGS or FIRE, set this option to SinglePoint.

  • SinglePoint
  • GeometryOptimization
  • Frequencies
  • None, only use if template is given
Calculation arguments:

these will be used for the ADF job construction.

  • charge = Charge of the Atoms object, defaults to 0
  • spin = Spin of the Atoms object, defaults to 0
  • quality = Quality of the models, defaults to Normal:
    • Basic
    • Normal
    • Good
    • VeryGood
    • Excellent
  • integration = Integration quality , defaults to Normal:
    • for Becke scheme:
      • Basic
      • Normal
      • Good
      • VeryGood
      • Excellent
    • for TeVelde scheme:
      • 3
      • 4
      • 5
      • 6
      • 10
  • basis = Basis set, defaults to DZ:
    • SZ
    • DZ
    • DZP
    • TZP
    • TZ2P
    • QZ4P
  • frozencore = Size of the Frozen Core, defaults to Large:
    • None
    • Small
    • Medium
    • Large
  • relativity = Level of relativity theory to use, defaults to None:
    • None
    • Scalar
    • Spin-Orbit
  • xc = Exchange-Corellation potential to use during SCF, defaults to LDA:
    • LDA,
    • GGA:BP, GGA:BLYP, GGA:PW91, GGA:mPW, GGA:PBE, GGA:RPBE, GGA:revPBE, GGA:mPBE,
    • GGA:OLYP, GGA:OPBE,
    • Model:SAOP, Model:LB94,
    • Hartree-Fock,
    • Hybrid:B3LYP, Hybrid:B3LYP*, Hybrid:B1LYP, Hybrid:KMLYP, Hybrid:O3LYP, Hybrid:X3LYP,
    • Hybrid:BHandH, Hybrid:BHandHLYP, Hybrid:B1PW91, Hybrid:MPW1PW, Hybrid:MPW1K,
    • Hybrid:PBE0, Hybrid:OPBE0
  • postxc = Exchange-Corellation energy to use after SCF, defaults to Default:
    • Default
    • LDA+GGA_METAGGA
    • LDA+GGA+METAGGA+HYBRIDS

BAND Calculator

the BAND class

Class for SCMSUITE BAND ASE calculator. It is imported and used the following way: eg:

from ase.calculators.scm import BAND

some_molecule = ase.Atoms(...)
some_molecule.set_calculator(BAND(label=some_mol))

Will create a directory “some_mol”, in which some_mol.run will be found and executed. Note that it requires at least a label as argument.

Arguments and default values

The options passed to the constructor are the exact same ones as in the ADF calculator, wih the addition of the following one:

in calculation arguments:

  • kspace = k-space grid quality, defaults to Normal
    • GammaOnly
    • Basic
    • Normal
    • Good
    • VeryGood
    • Excellent

DFTB Calculator

the DFTB class

Class for SCMSUITE DFTB ASE calculator. It is imported and used the following way: eg:

from ase.calculators.scm import DFTB

some_molecule = ase.Atoms(...)
some_molecule.set_calculator(DFTB(label=some_mol))

Will create a directory “some_mol”, in which some_mol.run will be found and executed. Note that it requires at least a label as argument.

Arguments and default values

The following options can be passed to the constructor:
template
: string,
name of a .adf file containing the calculation details. Any other argument passed to the calculator will override this template.
restart: string,
prefix for a restart file. May contain a directory. Default is None, so the calculations don’t restart except if specified.
ignore_bad_restart_file: True or False,
Ignore broken or missing restart file. By default, the scripts throw errors if the restart file is missing or broken.
label: string,
base name used for all created files. May contain a directory.
atoms: ASE Atoms object,
Optional Atoms object to which the calculator will be attached. When restarting, atoms will get its positions and unit-cell updated from file.
job: type of job this calculator will run,

Defaults to GeometryOptimization, in which case any method like “get_potential_energy()” used on the attached atoms object will use the native ADF drivers to perform a geometry optimization. To use an ASE optimizer like BFGS or FIRE, set this option to SinglePoint.

  • SinglePoint
  • GeometryOptimization
  • Frequencies
  • None, only use if template is given
Calculation arguments:

these will be used for the DFTB job construction.

  • charge = Charge of the Atoms object, defaults to 0
  • spin = Spin of the Atoms object, defaults to 0 (spin unrestricted not yet implemented)
  • dftbmodel = DFTB scheme to use in the calculation. Default is DFTB.
    • DFTB
    • SCC-DFTB
    • DFTB3
  • dftbparameters = Optional directory for dftb parameters files. Defaults to SCM library.

REAXFF Calculator

the REAXFF class

Class for SCMSUITE REAXFF ASE calculator. It is imported and used the following way: eg:

from ase.calculators.scm import REAXFF

some_molecule = ase.Atoms(...)
some_molecule.set_calculator(REAXFF(label=some_mol, forcefield=some_forcefield.ff))

Will create a directory “some_mol”, in which some_mol.run will be found and executed. Note that it requires at least a label as argument.

Arguments and default values

The following options can be passed to the constructor:
template
: string,
name of a .adf file containing the calculation details. Any other argument passed to the calculator will override this template.
restart: string,
prefix for a restart file. May contain a directory. Default is None, so the calculations don’t restart except if specified.
ignore_bad_restart_file: True or False,
Ignore broken or missing restart file. By default, the scripts throw errors if the restart file is missing or broken.
label: string,
base name used for all created files. May contain a directory.
atoms: ASE Atoms object,
Optional Atoms object to which the calculator will be attached. When restarting, atoms will get
Calculation arguments:

these will be used for the ReaxFF job construction.

  • forcefield: library to use for parameters. Note: the calculation will fail if this is not specified!