qmctorch.wavefunction.orbitals.spherical_harmonics module

class qmctorch.wavefunction.orbitals.spherical_harmonics.Harmonics(type, **kwargs)[source]

Bases: object

Compute spherical or cartesian harmonics and their derivatives

Parameters:

type (str) – harmonics type (cart or sph)

Keyword Arguments:
 
Examples::
>>> mol = Molecule('h2.xyz')
>>> harm = Harmonics(cart)
>>> pos = torch.rand(100,6)
>>> hvals = harm(pos)
>>> dhvals = harm(pos,derivative=1)
qmctorch.wavefunction.orbitals.spherical_harmonics.CartesianHarmonics(xyz, k, mask0, mask2, derivative=[0], sum_grad=True, sum_hess=True)[source]

Computes Real Cartesian Harmonics

\[\begin{split}Y = x^{k_x} \\times y^{k_y} \\times z^{k_z}\end{split}\]
Parameters:
  • xyz (torch.tensor) – distance between sampling points and orbital centers n size : (Nbatch, Nelec, Nbas, Ndim)
  • k (torch.tensor) – (kx,ky,kz) exponents
  • mask0 (torch.tensor) – precomputed mask of k=0
  • mask2 (torch.tensor) – precomputed mask of k=2
  • derivative (int, optional) – degree of the derivative. Defaults to 0.
  • sum_grad (bool, optional) – returns the sum of the derivative if True. Defaults to True.
  • sum_hess (bool, optional) – returns the sum of the 2nd derivative if True. Defaults to True.
Returns:

values of the harmonics at the sampling points

Return type:

torch.tensor

qmctorch.wavefunction.orbitals.spherical_harmonics.SphericalHarmonics(xyz, l, m, derivative=0, sum_grad=True, sum_hess=True)[source]

Compute the Real Spherical Harmonics of the AO.

Parameters:
  • xyz (torch.tensor) – distance between sampling points and orbital centers n size : (Nbatch, Nelec, Nbas, Ndim)
  • l (torch.tensor) – l quantum number
  • m (torch.tensor) – m quantum number
Returns:

value of each harmonics at each points (or derivative) n

size : (Nbatch,Nelec,Nrbf) for sum_grad=True n size : (Nbatch,Nelec,Nrbf, Ndim) for sum_grad=False

Return type:

Y (torch.tensor)

qmctorch.wavefunction.orbitals.spherical_harmonics.get_spherical_harmonics(xyz, lval, m, derivative)[source]

Compute the Real Spherical Harmonics of the AO.

Parameters:
  • xyz (torch.tensor) – distance between sampling points and orbital centers n size : (Nbatch, Nelec, Nbas, Ndim)
  • l (torch.tensor) – l quantum number
  • m (torch.tensor) – m quantum number
Returns:

value of each harmonics at each points (or derivative) n

size : (Nbatch,Nelec,Nrbf)

Return type:

Y (torch.tensor)

qmctorch.wavefunction.orbitals.spherical_harmonics.get_grad_spherical_harmonics(xyz, lval, m)[source]

Compute the gradient of the Real Spherical Harmonics of the AO.

Parameters:
  • xyz (torch.tensor) – distance between sampling points and orbital centers n size : (Nbatch, Nelec, Nbas, Ndim)
  • l (torch.tensor) – l quantum number
  • m (torch.tensor) – m quantum number
Returns:

value of each harmonics at each points (or derivative) n

size : (Nbatch,Nelec,Nrbf,3)

Return type:

Y (torch.tensor)