qmctorch.wavefunction.orbitals.backflow package

Subpackages

Submodules

Module contents

class qmctorch.wavefunction.orbitals.backflow.BackFlowTransformation(*args: Any, **kwargs: Any)[source]

Bases: Module

Transform the electorn coordinates into backflow coordinates.

see : Orbital-dependent backflow wave functions for real-space quantum Monte Carlo https://arxiv.org/abs/1910.07167

eq i} eta(r_{ij})(bold{r}_i - bold{r}_j)

forward(pos, derivative=0)[source]
class qmctorch.wavefunction.orbitals.backflow.BackFlowKernelBase(*args: Any, **kwargs: Any)[source]

Bases: Module

Compute the back flow kernel, i.e. the function f(rij) where rij is the distance between electron i and j This kernel is used in the backflow transformation .. math:

q_i = r_i + sum_{jneq i} f(r_{ij}) (r_i-r_j)

forward(ree, derivative=0)[source]
Computes the desired values of the kernel
Args:

ree (torch.tensor): e-e distance Nbatch x Nelec x Nelec derivative (int): derivative requried 0, 1, 2

Returns:

f(r) Nbatch x Nelec x Nelec

Return type:

torch.tensor

class qmctorch.wavefunction.orbitals.backflow.BackFlowKernelAutoInverse(*args: Any, **kwargs: Any)[source]

Bases: BackFlowKernelBase

Compute the back flow kernel, i.e. the function f(rij) where rij is the distance between electron i and j This kernel is used in the backflow transformation .. math:

q_i = r_i + sum_{jneq i} f(r_{ij}) (r_i-r_j)

class qmctorch.wavefunction.orbitals.backflow.BackFlowKernelFullyConnected(*args: Any, **kwargs: Any)[source]

Bases: BackFlowKernelBase

Compute the back flow kernel, i.e. the function f(rij) where rij is the distance between electron i and j This kernel is used in the backflow transformation .. math:

q_i = r_i + sum_{jneq i} f(r_{ij}) (r_i-r_j)

class qmctorch.wavefunction.orbitals.backflow.BackFlowKernelInverse(*args: Any, **kwargs: Any)[source]

Bases: BackFlowKernelBase

Compute the back flow kernel, i.e. the function f(rij) where rij is the distance between electron i and j This kernel is used in the backflow transformation .. math:

q_i = r_i + sum_{jneq i} f(r_{ij}) (r_i-r_j)

with here :

class qmctorch.wavefunction.orbitals.backflow.BackFlowKernelPowerSum(*args: Any, **kwargs: Any)[source]

Bases: BackFlowKernelBase

Compute the back flow kernel, i.e. the function f(rij) where rij is the distance between electron i and j This kernel is used in the backflow transformation .. math:

q_i = r_i + sum_{jneq i} f(r_{ij}) (r_i-r_j)

class qmctorch.wavefunction.orbitals.backflow.BackFlowKernelSquare(*args: Any, **kwargs: Any)[source]

Bases: BackFlowKernelBase

Define a generic kernel to test the auto diff features.