qmctorch.wavefunction.jastrows.distance.electron_nuclei_distance module
- class qmctorch.wavefunction.jastrows.distance.electron_nuclei_distance.ElectronNucleiDistance(*args: Any, **kwargs: Any)[source]
Bases:
Module
Computes the electron-nuclei distances
\[r_{iA} = \sqrt{ (x_i-x_A)^2 + (y_i-y_A)^2 + (z_i-z_A)^2}\]- Parameters:
- Examples::
>>> endist = ElectronNucleiDistance(2,2) >>> epos = torch.tensor(500,6) >>> r = edist(pos) >>> dr = edist(pos,derivative=1)
- forward(input, derivative=0)[source]
Compute the pairwise distances between electrons and atoms or their derivative.
- Parameters:
input (torch.tesnor) –
position of the electron
size : Nbatch x [Nelec x Ndim]
derivative (int, optional) –
degre of the derivative.
Defaults to 0.
- Returns:
distance (or derivative) matrix
Nbatch x Nelec x Natom if derivative = 0
Nbatch x Ndim x Nelec x Natom if derivative = 1,2
- Return type:
torch.tensor
- get_der_distance(pos, dist)[source]
Get the derivative of the electron-nuclei distance matrix
\[\frac{d r_{iA}}{d x_i}\]- Parameters:
pos (torch.tensor) – positions of the electrons Nbatch x Nelec x Ndim
dist (torch.tensor) – distance matrix between the elecs Nbatch x Nelec x Nelec
- Returns:
[description]
- Return type:
[type]
- get_second_der_distance(pos, dist)[source]
Get the derivative of the electron-nuclei distance matrix
\[\frac{d^2 r_{iA}}{d x_i^2}\]- Parameters:
pos (torch.tensor) – positions of the electrons Nbatch x Nelec x Ndim
dist (torch.tensor) – distance matrix between the elecs Nbatch x Nelec x Nelec
- Returns:
[description]
- Return type:
[type]