qmctorch.scf.molecule module

class qmctorch.scf.molecule.Molecule(atom=None, calculator='pyscf', scf='hf', basis='sto-3g', unit='bohr', name=None, load=None, save_scf_file=False, redo_scf=False, rank=0)[source]

Bases: object

Create a molecule in QMCTorch

Parameters:
  • atom (str or None, optional) – defines the atoms and their positions. Defaults to None. - At1 x y z; At2 x y z … : Provide the atomic coordinate directly - <file>.xyz : provide the path to an .xyz file containing the atomic coordinates
  • calculator (str, optional) – selet scf calculator. Defaults to ‘adf’. - pyscf : PySCF calculator - adf : ADF2020+ calculator - adf2019 : ADF2019 calculatori
  • scf (str, optional) – select scf level of theory. Defaults to ‘hf’. - hf : perform a Hatree-Fock calculation to obtain the molecular orbital coefficients - dft : perform a density functional theory using the local density approximation
  • basis (str, optional) – select the basis set. Defaults to ‘dzp’.
  • unit (str, optional) – units of the coordinates; ‘bohr’ or ‘angs’. Defaults to ‘bohr’.
  • name (str or None, optional) – name of the molecule. Defaults to None.
  • load (str or None, optional) – path to a hdf5 file to load. Defaults to None.
  • save_scf_file (bool, optional) – save the scf file (when applicable) Defaults to False
  • redo_scf (bool, optional) – if true ignore existing hdf5 file and redo the scf calculation
  • rank (int, optional) – Rank of the process. Defaults to 0.

Examples

>>> from qmctorch.scf import Molecule
>>> mol = Molecule(atom='H 0 0 0; H 0 0 1', unit='angs',
...                calculator='adf', basis='dzp')
log_data()[source]
domain(method)[source]

Returns information to initialize the walkers

Parameters:method (str) – ‘center’, all electron at the center of the system ‘uniform’, all electrons in a cube surrounding the molecule ‘normal’, all electrons in a sphere surrounding the molecule ‘atomic’, electrons around the atoms
Returns:dictionary containing corresponding information
Return type:dict
Examples::
>>> mol = Molecule('h2.xyz')
>>> domain = mol.domain('atomic')
print_total_energy()[source]

Print the SCF energy of the molecule.

Examples::
>>> mol = Molecule('h2.xyz', calculator='adf', basis='sz')
>>> mol.print_total_energy()
get_total_energy()[source]

Get the value of the total energy.