enerzyme.models.layers.rbf.ExponentialRBF#

class enerzyme.models.layers.rbf.ExponentialRBF(num_rbf: int, no_basis_at_infinity: bool = False, init_alpha: float = 0.944863062918464, exp_weighting: bool = False, learnable_shape: bool = True, cutoff_sr: float = inf, cutoff_fn: Literal['polynomial', 'bump'] = 'bump')[source]#

Bases: BaseRBF

__init__(num_rbf: int, no_basis_at_infinity: bool = False, init_alpha: float = 0.944863062918464, exp_weighting: bool = False, learnable_shape: bool = True, cutoff_sr: float = inf, cutoff_fn: Literal['polynomial', 'bump'] = 'bump') None[source]#

The base class of radial basis functions with a general exponential form. It entails the physical knowledge that bound state wave functions in two-body systems decay exponentially. [1,2,3]

RBF(r; alpha) = cutoff_fn(r) * exp(inner_fn(r; alpha)) * (exp(-alpha*r) if exp_weighting)

Params:#

num_basis_functions: Number of radial basis functions.

no_basis_function_at_infinity: If True, no basis function is put at exp(-alpha*x) = 0, i.e. x = infinity.

init_alpha: Initial value for scaling parameter alpha (Default value corresponds to 0.5 1/Bohr converted to 1/Angstrom).

exp_weighting: If True, basis functions are weighted with a factor exp(-alpha*r).

learnable_shape: If True, shape parameters of exponentials are learnable.

cutoff: Short range cutoff threshold for radial base functions.

cutoff_fn: Short range cutoff function, whose are called by cutoff_fn(x, cutoff=cutoff) where x is the distance.

References:#

[1] Commun. Math. Phys. 1973, 32, 319−340.

[2] J. Chem. Theory Comput. 2019, 15, 3678−3693.

[3] Nat. Chem. 2020, 12, 891–897.

abstractmethod inner_fn(alphar: Tensor | None = None, expalphar: Tensor | None = None) Tensor[source]#