quantax.model.PfBackflow#
- class quantax.model.PfBackflow#
Pfaffian backflow model. \(\psi(n) = \mathrm{pf}(n \star (U_0 + U_1(n)) J_0 (U_0 + U_1(n))^T)\), where \(\star\) denotes the operation slicing the rows and columns of the matrix.
- __init__(net: ~typing.Callable[[~jax.Array], ~jax.Array], d: int, U0: ~jax.Array | None = None, J0: ~jax.Array | None = None, dtype: str | type[~typing.Any] | ~numpy.dtype | ~jax._src.typing.SupportsDType = <class 'jax.numpy.float64'>)#
Initialize the Pfaffian backflow model.
- Parameters:
net β The backflow network that outputs the correction to the mean-field orbitals.
d β Channel (hidden) dimension of the network output.
U0 β The mean-field orbitals. If None, itβs initialized close to non-interacting fermions.
J0 β The mean-field pairing matrix.
dtype β Data type of the parameters.
- property J0_full: Array#
Returns the full antisymmetric mean-field pairing matrix J0, reconstructed from its stored upper-triangular entries.
- property use_ref: bool#
Whether to use reference low-rank updates. Itβs not used if the rank of the backflow correction is larger than the total number of particles.
- init_internal(s: Array) tuple[LogArray, MF_Internal | None]#
Return wavefunction and internal values for given input configurations. See
RefModelfor details.
- property required_update_modes: tuple[str, ...]#
The required update modes for accelerated ref_forward pass.
- ref_forward(s: Array, s_old: Array, update_mode: dict[str, Any], internal: MF_Internal | None, return_update: Literal[False] = False) LogArray#
- ref_forward(s: Array, s_old: Array, update_mode: dict[str, Any], internal: MF_Internal | None, return_update: Literal[True]) tuple[LogArray, MF_Internal | None]
Accelerated forward pass through local updates and internal quantities. See
RefModelfor details.