qmctorch.wavefunction.slater_combined_jastrow module

class qmctorch.wavefunction.slater_combined_jastrow.SlaterManyBodyJastrow(*args: Any, **kwargs: Any)[source]

Bases: SlaterJastrow

Slater Jastrow wave function with many body Jastrow factor

\[\Psi(R_{at}, r) = J(r)\sum_n c_n D^\uparrow_n(r^\uparrow)D^\downarrow_n(r^\downarrow)\]

with

\[J(r) = \exp\left( K_{ee}(r) + K_{en}(R_{at},r) + K_{een}(R_{at}, r) \right)\]

with the different kernels representing electron-electron, electron-nuclei and electron-electron-nuclei terms

Parameters:
  • mol (Molecule) – a QMCTorch molecule object

  • configs (str, optional) – defines the CI configurations to be used. Defaults to ‘ground_state’. - ground_state : only the ground state determinant in the wave function - single(n,m) : only single excitation with n electrons and m orbitals - single_double(n,m) : single and double excitation with n electrons and m orbitals - cas(n, m) : all possible configuration using n eletrons and m orbitals

  • kinetic (str, optional) – method to compute the kinetic energy. Defaults to ‘jacobi’. - jacobi : use the Jacobi formula to compute the kinetic energy - auto : use automatic differentiation to compute the kinetic energy

  • jastrow_kernel (dict, optional) – different Jastrow kernels for the different terms. By default only electron-electron and electron-nuclei terms are used

  • jastrow_kernel_kwargs (dict, optional) – keyword arguments for the jastrow kernels contructor

  • cuda (bool, optional) – turns GPU ON/OFF Defaults to False.

  • include_all_mo (bool, optional) – include either all molecular orbitals or only the ones that are popualted in the configs. Defaults to False

Examples::
>>> from qmctorch.scf import Molecule
>>> from qmctorch.wavefunction import SlaterManyBodyJastrow
>>> mol = Molecule('h2o.xyz', calculator='adf', basis = 'dzp')
>>> wf = SlaterManyBodyJastrow(mol, configs='cas(2,2)')