SCM Calculators in ASE

ASE calculators are implemented for ADF, BAND, DFTB, ReaxFF, and UFF.

The options for the programs in the ADF modeling suite are controlled by a single string containing all the information required to set up the respective calculations with ADFprep.

Technical Notes

New Interface Design in ADF2017

ADF2017 ships new, simplified versions of all calculator interfaces to ASE. The interfaces for setting up these new classes are not compatible to those in earlier versions of the ADF modeling suite, but support now all calculation options accepted by ADFprep. Examples on the usage of the new classes are shown below.

Interfaces to Individual Programs

The ASE calculators for the programs of the ADF modeling suite derive from a common parent class (basically an interface to ADFprep and ADFreport) and differ from each other only in some program-specific filename internals. All of SCM’s ASE interfaces can therefore be constructed in the following fashion

myCalculator = CalculatorName(label, adfprep_options, ...)

where CalculatorName can be any of the following:

ADF:ADFCalculator
BAND:BANDCalculator
DFTB:DFTBCalculator
ReaxFF:ReaxFFCalculator
UFF:UFFCalculator

Usage and Examples

Import

Within the ASE repository, the SCM calculator classes are all implemented in calculators/scm.py and can be imported via

from ase.calculators.scm import ADFCalculator

Interface Keywords

The constructors of the SCM’s calculator classes include the following keywords

label:(default: label=None) calculation tag used for calculation directory and prefix for calculation files: label='dir1/abc' will create a directory dir1 and name the calculation files therein as abc.XXX while label=abc will use the current directory and create calculation files as abc.XXX in it during runtime.
adfprep_options:
 (default: adfprep_options=None) string containing a sequence of options accepted by ADFprep. Please consult the ADFprep manual for further details. Also note that the calculator will explicitly add the options -j calculationFile, -sym NOSYM, -importangstrom, and -gradientsonly to the option list before invoking the adfprep command.

Examples

Single point energy and gradients calculation with ADF

from ase.io.scmio import *
from ase.calculators.scm import *

myAtoms = read_scmxyz('myAtoms.xyz')

myCalculator = ADFCalculator(label='myCalculation', adfprep_options='-t ADF-EG')

myAtoms.set_calculator(myCalculator)
print(myAtoms.get_potential_energy())