Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Hamiltonian

For a system with NN electrons and MM nuclei in the quantum mechanical region, VeloxChem implements the nonrelativic electronic Hamiltonian

H^=i=1N22mei2i=1NA=1MZAe24πε0riRA+i=1Nj>iNe24πε0rirj+A=1MB>AMZAZBe24πε0RARB\begin{align*} \hat{H} = % &- \sum_{i=1}^N \frac{\hbar^2}{2 m_\mathrm{e}} \nabla^2_i % - \sum_{i=1}^N \sum_{A=1}^M \frac{Z_A e^2}{4 \pi \varepsilon_0 |\mathbf{r}_i - \mathbf{R}_A|}\\ % &\qquad + \sum_{i=1}^N \sum_{j>i}^N \frac{e^2}{4 \pi \varepsilon_0 |\mathbf{r}_i - \mathbf{r}_j|} % + \sum_{A=1}^M \sum_{B>A}^M \frac{Z_A Z_B e^2}{4 \pi \varepsilon_0 |\mathbf{R}_A - \mathbf{R}_B|} \end{align*}

introducing, in order, terms associated with the electronic kinetic energy, electron–nuclear attraction, electron–electron repulsion, and nuclear–nuclear repulsion. We use variables r\mathbf{r} and R\mathbf{R} to denote electronic and nuclear coordinates, respectively.

In a brief notation, the electronic Hamiltonian is expressed in terms of the one- and two-electron components in addition to the nuclear repulsion term

H^=ih^(i)+j>ig^(i,j)+Vn,rep\hat{H} = \sum_{i} \hat{h}(i) + \sum_{j>i} \hat{g}(i,j) + V^\mathrm{n,rep}

Effective-core potentials

ECPs in VeloxChem follow the conventional partitioning into local and nonlocal components:

V^ECP(r)=V^loc(r)+V^nl(r)\hat{V}_{\text{ECP}}(\mathbf{r}) = \hat{V}_{\text{loc}}(r) + \hat{V}_{\text{nl}}(\mathbf{r})

Every atom described by an ECP is associated with such an operator, and they are to replace the corresponding electron–nuclear attraction terms in the one‑electron Hamiltonian. For notational convenience, the coordinate origin has here been assumed to be located at the ECP center.

Local Component

The local part of the ECP represents a spherically symmetric potential applied equally to all components of the valence wave function. It often corresponds to the highest angular‑momentum channel of the pseudopotential:

V^loc(r)=Zeffe24πε0r+kAkrnkr2eakr2\hat{V}_{\text{loc}}(r) = -\frac{Z_{\text{eff}} e^2}{4 \pi \varepsilon_0 r} + \sum_{k} A_k \, \frac{r^{n_k}}{r^2} e^{-a_k r^2}

This term captures the screened nuclear attraction and mimics the average effect of the removed core electrons.

Nonlocal Component

The nonlocal projector terms introduce angular‑momentum dependence by projecting the wave function onto specific ll-channels:

V^nl=lm=llYlmVl(r)Ylm\hat{V}_{\text{nl}} = \sum_{l} \sum_{m=-l}^{l} | Y_{lm} \rangle \, V_l(r) \, \langle Y_{lm} |

Each Vl(r)V_l(r) is a radial potential defined by a parameterized sum of Gaussian functions:

Vl(r)=kAlkrnlkealkr2V_l(r) = \sum_{k} A_{lk} \, r^{n_{lk}} e^{-a_{lk} r^2}

These projectors enforce the correct nodal structure and scattering behaviour of the valence orbitals, preserving norm conservation and accuracy across chemical environments.

Static electric fields

A term can be added in the electronic Hamiltonian to describe the coupling of the molecular system and a time-independent (static), homogeneous, electric field, F\mathbf{F},

V^=μ^F\hat{V} = - \hat{\boldsymbol{\mu}} \cdot \mathbf{F}

where μ^\hat{\boldsymbol{\mu}} is the electric dipole moment operator. The vectorial electric-field strength is specified in atomic units.

Python script

import veloxchem as vlx

molecule = vlx.Molecule.read_name("methane")
basis = vlx.MolecularBasis.read(molecule, "def2-svp")

scf_drv = vlx.ScfRestrictedDriver()

scf_drv.electric_field = [0.01, 0.0, 0.0]  # [x, y, z] components

scf_results = scf_drv.compute(molecule, basis)

Text file

@jobs
task: scf
@end

@method settings
basis: def2-svp
electric field: 0, 0.001, -0.002
@end

@molecule
charge: 0
multiplicity: 1
xyz:
...
@end