Density functional theory

Module containing the class for performing electronic structure calculations to compute the potential energy of atomistic systems

class topsearch.potentials.dft.DensityFunctionalTheory(atom_labels: list, options: dict, force_field: type, calculator_type: str = 'psi4')

Description

Evaluate the energy and force of a molecular system using the Psi4 package via its ase calculators. The energy is computed using density functional theory

atom_labels

Labels containing the species of each atom in the system

Type:

list

calculator_type

ase calculator to use for energy and force. Default is ‘psi4’

Type:

string

options

keyword arguments that will be passed to the ase calculator

Type:

dict

force_field

DFT calls can fail with significant atomic overlap so the force_field object is used in these cases to remove clashes without failure

Type:

class

function(position: NDArray[Any, Any]) float

Compute the electronic potential energy

function_gradient(position: NDArray[Any, Any]) tuple

Compute the electronic potential energy and its forces

gradient(position: NDArray[Any, Any]) NDArray[Any, Any]

Compute the analytical gradient from the ASE calculator

hessian(position: NDArray[Any, Any], displacement: float = 0.0001) NDArray[Any, Any]

Override numerical hessian calculation with internal analytic version for DFT.

reset_options(options: dict) None

Reset the input options to the ase calculator