Wave Function Ansatz in QMCTorch =========================================== `QMCTorch` allows to epxress the wave function ususally used by QMC practitioner as neural network. The most generic architecture of the neural network used by the code is: .. image:: ../pics/qmctorch2.png Starting from the electronic and atomic coordinates, the first layer on the bottom computes the electron-electron and electron-atoms distances. These distances are used in a Jastrow layer that computes the Jastrow facrtor. Users can freely define Jastrow kernels to define the exact form the Jastrow factor. In parallel the electronic coordinates are first transformed through a backflow transformation. Users can here as well specify the kernel of the backflow transformation. The resulting new coordinates are used to evaluate the atomic orbitals of the systems. The basis set information of these orbitals are extracted from the SCF calculation performed with ``pyscf`` or ``ADF``. These atomic orbital values are then transformed to molecular orbital values through the next layer. The coefficients of the molecular orbitals are also extracted fron the SCF calculations. Then a Slater determinant layer extract the different determinants contained in the wave function. Users can there as well specify wich determinants they require. The weighted sum of the determinants is then computed and finally muliplied with the value of the Jastrow factor. The main wave function in QMCTorch is implemented in the ``SlaterJastrow`` class. The definition of the class is as follows : .. code-block:: python class SlaterJastrow(WaveFunction): def __init__( self, mol, jastrow='default', backflow=None, configs="ground_state", kinetic="jacobi", cuda=False, include_all_mo=True, ): Different functional form can be created from this class depending on the need of the user. We review here a few of these forms. Simple Slater Jastrow Wave Function ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The simplest wave function implemented in `QMCTorch` is a Slater Jastrow form. Through a series of transformations the Slater Jastrow function computes: .. math:: \Psi(R) = J(R) \sum_n c_n D_n^{\uparrow} D_n^{\downarrow} The term `J(R)` is the so called Jastrow factor that captures the electronic correlation. By default, the Jastrow factor is given by : .. math:: J(R) = \exp\left( \sum_{i