A repository to generate finite temperature energy expectation values for many-electron systems using a CISD like approach within the Thermofield Formalism (see our paper for more details).
The code is largely written in Python 3.6, however, the essential modules that drives the imaginary time and chemical potential evolution are generated from drudge in Fortran.
These Fortran modules are then converted to python modules with the help of the utility f2py
.
Note: The current version of this project is not really optimized and parallelized.
As such, this package is a bunch of python functions and does not require any installation. However, the Fortran subroutines need to be compiled and converted into python modules.
To convert the Fortran files to python modules, run the makemodule
csh script.
./makemodule
-
To run thermal-ci calculations for any hamiltonian, one needs as an input the one- and two-electron integrals in the spin-orbital basis, stored as an HDF (.h5) file with the keys
h1
anderi
respectively.h1
: A 2-dimensional array of size (N,N)eri
: A 4-dimensional array of size (N,N,N,N)Such integrals can be generated using standard Quantum Chemistry packages such as pyscf. For example, for 2-site Hubbard model with U/t = 1, we can have a data file named
hub_2s_u1_data.h5
. -
Once the input data is prepared, open the
Input
file and edit / set the the appropriate parameters such as the name of the input data file, average number of electrons, final value of \beta up to which you need to perform the evolution, number of \beta grid points, etc. (see the Input file). -
Finally, use the commands
./Cov_Run_CISD
or./FixRef_Run_CISD
to perform the thermal-ci calculations in the covariant or the fixed-reference approach respectively. Again, details about these two approaches can be found in our paper. However, the recommended approach, or rather the method which gives sane results for all the cases, is the covariant approach.