/QGT

Primary LanguageNSIS

To understand what is implemented, or will be implemented, please read doc/notes.pdf file.

This code works in combination with Wien2k DFT calculation. We need converged DFT-Wien2k electronic structure and k-points
for a path in momentum space. The latter is called case.klist_band.


To run this code, we prepare case.klist_band and start with:

>path_gqt1.py

which prepares new case.klist_band, which contains not only original
k-points on the mesh, but also small dispacement from those k-points,
namely, [k,k+dkx,k-dkx,k+dky,k-dky,k+dkz,k-dkz].

Next we compute Kohn-Sham wave functions on the new k-list by
executing lapw1 step of wien2k. This can be done either by Wien2k code
by:
>x lapw1 -band
or using eDMFT implementation of the same code. 
>x_dmft.py lapw1 --band

Note that If you are using the eDMFT, you can create "mpi_prefix.dat"
file with content like "mpirun -n 10", and your code will run on 10
cores. For example:
echo "mpirun -n 10" > mpi_prefix.dat
In this case it is a good idea to set "export OMP_NUM_THREADS=1".



Once we have Kohn-Sham wave functions, we run:

>mpirun -n 10 path_gqt2.py

to produce ovelaps M_mmn, which are overlaps between Kohn-Sham wave functions.

Of course, the number of cores (here 6) is arbitrary, and it can be as
large as the number of points in case.klist_band. This will also
compute quantum metric tensor in which each band is treated as
independent.


Next we can plot results of the last calculation in which each band
was treated as indepenent by

>pband1.py

With this, each band is treated as separate unit.

If you want to combine bands, you can execute:

> path_gqt3.py

Then choose which bands to combine, and than execute

>pband1.py

For making a nicer plot, you can prepare "ppar.dat", which can define the following variables:
"""
Logarithmic = [True,False,False]        # should color be logarithmic or linear in the three plots
percent_removed=[0,0,0]  # color will be determined by a small percent of datapoints that are the largest or the smallest removed.
ymin,ymax = -8.7,8.7  # min,max in y direction
"""

------------------
To run for geometric and conventional superfluid weight, one should execute 
> path_gqt3_b.py
This can only be run after "path_gqt2.py" was finished and matrix M_mmn is available.
The results are plotted with the same script:
>pband1.py
------------------


For simple tests and to learn how to use the code, please run examples in test subdirectory.
For example, go inside Si/14x14x14 directory, in which converged Si files are located.
Check that Si.klist_band exists and contains the path we want.
Execute 
>../../../path_gqt1.py
and you should have mesh with all finite displacements in Si.klist_band.
Next execute lapw1. As described above, it can be done with wien2k or eDMFT. Let's use eDMFT
>x_dmft.py lapw1 --band
Next we execute
>mpirun -n 6 ../../../path_gqt2.py
to get all necessary overlaps <u_{n,k}|u_{m,k+b}>.
Finally we plot results with
>../../../pband1.py