Adding extra term to Hamiltonian


I am interested in using PSI4 to develop a DFTB parametrization protocol. These parameters are obtained by performing DFT calculations on free atoms with a Hamiltonian that includes a confinement potential of the form v = (r/ro)^m .

I’d like to know if there is an easy way to include additional terms to the electronic Hamiltonian using PSI4 or PSI4Numpy functionalities, and if not, where in the code I could adapt a pre-existing routine to create a new function for this task.

Many thanks,


We have a general routine that collects external potentials that will be added to the Fock matrix (e.g. for PCM) each iteration.

The SCF iterator is available in python here: psi4/ at master · psi4/psi4 · GitHub
and external potentials (e.g. for PCM, PE) are collected like this: psi4/ at master · psi4/psi4 · GitHub

All collected potentials will be added to the Fock matrix at the C++ level. The input matrix is a psi4.Matrix class (can be build from a numpy arrray Matrix)

Note that you’ll need to write new code to handle spherically symmetric atoms since Psi4 lacks that capability at the moment.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.