qmctorch.wavefunction.orbitals.backflow.kernels package

Submodules

qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_autodiff_inverse module

class qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_autodiff_inverse.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)

qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_base module

class qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_base.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: torch.Tensor, derivative: int = 0) torch.Tensor[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

qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_exp module

class qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_exp.BackFlowKernelExp(*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 :

qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_fully_connected module

class qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_fully_connected.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)

qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_inverse module

class qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_inverse.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 :

qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_power_sum module

class qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_power_sum.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)

qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_rbf module

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

Bases: BackFlowKernelBase

Initialize the RBF kernel

Parameters:
  • mol (Molecule) – Molecule object

  • num_rbf (int) – Number of radial basis functions

  • cuda (bool) – Whether to use CUDA or not

centers

Centers of the radial basis functions

Type:

nn.Parameter

sigma

Widths of the radial basis functions

Type:

nn.Parameter

weight

Weights of the radial basis functions

Type:

nn.Parameter

fc

Linear layer to compute the kernel

Type:

nn.Linear

bias

Bias of the kernel

Type:

nn.Parameter

qmctorch.wavefunction.orbitals.backflow.kernels.backflow_kernel_square module

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

Bases: BackFlowKernelBase

Define a generic kernel to test the auto diff features.

Module contents

class qmctorch.wavefunction.orbitals.backflow.kernels.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: torch.Tensor, derivative: int = 0) torch.Tensor[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.kernels.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.kernels.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.kernels.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.kernels.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.kernels.BackFlowKernelSquare(*args: Any, **kwargs: Any)[source]

Bases: BackFlowKernelBase

Define a generic kernel to test the auto diff features.

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

Bases: BackFlowKernelBase

Initialize the RBF kernel

Parameters:
  • mol (Molecule) – Molecule object

  • num_rbf (int) – Number of radial basis functions

  • cuda (bool) – Whether to use CUDA or not

centers

Centers of the radial basis functions

Type:

nn.Parameter

sigma

Widths of the radial basis functions

Type:

nn.Parameter

weight

Weights of the radial basis functions

Type:

nn.Parameter

fc

Linear layer to compute the kernel

Type:

nn.Linear

bias

Bias of the kernel

Type:

nn.Parameter

class qmctorch.wavefunction.orbitals.backflow.kernels.BackFlowKernelExp(*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 :