Some questions about DMFT calculation

Hello.
I am currently learning how to run DMFT calculations on some materials.

For tutorial purposes, I am recreating the paper “Correlated electronic structure of the kagome metal Mn3Sn” by following the DFT+DMFT tutorial in the abinit.org

I’m currently using input like the one below.

tmpdata_prefix "/scratch/hyunwook/abinit"
# autoparal 1

#Multi-dataset parameters
ndtset 3
jdtset 1 2 3

#Definition of the unit cell
acell 3*1.8897261246257702
rprim  2.83250000000000 -4.90603391243884  0.00000000000000
       2.83250000000000  4.90603391243884  0.00000000000000
       0.00000000000000  0.00000000000000  4.53100000000000

natom 8
ntypat 2
znucl 25 50
typat 1 1 1 1 1 1 2 2
xred
          0.83880000      0.16120000      0.25000000
          0.83880000      0.67760000      0.25000000
          0.32240000      0.16120000      0.25000000
          0.16120000      0.83880000      0.75000000
          0.16120000      0.32240000      0.75000000
          0.67760000      0.83880000      0.75000000
          0.66666667      0.33333333      0.75000000
          0.33333333      0.66666667      0.25000000
pp_dirpath "$ABI_PSPDIR"
pseudos "Mn.GGA_PBE-JTH.xml, Sn.GGA_PBE-JTH.xml"

# kpoint properties
ngkpt     6 6 8         # Reciprocal space vectors are built from
                        # the rprim parameters. This is the size of the
                        # reciprocal k-points.
nshiftk   1             # Convergence of the density with regular shifts.
shiftk    0.0 0.0 0.5

# to use dmft, below equation must satisfied.
# bandpp*npband = nband
np_spkpt  1
npspinor  1
npfft     1
npband    60
bandpp    3

np_spkpt1 2
npband1   30

#Planewave basis set, number of bands and occupations
optdriver 0
accuracy 6
ecut      20.0
pawecutdg 40.0
occopt    3             # Occupation option for metal
tsmear    1200 K        # Temperature of smearing

pawprtvol 3             # Printing additional information
prtvol 4

## all calculation has one spin component(no spin, noncollinear)
nsppol    1

# First dataset - DFT with no polarization
## basic
usedmft1    0
pawspnorb1  0

## SCF
nband1      90             # Number of bands
nstep1      40
nline1      3             # Number of line minimisations
nnsclo1     3             # Number of non-self consistent loops
# toldfe1     1.0d-10      

## Symmetry
istwfk1  *1



# Second dataset - DFT with non collinear
## basic
usedmft2    0
getden2      -1
pawspnorb2  1
nspden2     4
nspinor2    2
nband2      180         # Number of bands


## SCF
nstep2    80
nline2    5             # Number of line minimisations
nnsclo2   3             # Number of non-self consistent loops
diemix2   0.33
tolwfr2   1.0d-10

## Symmetry
istwfk2  *1

## DFT+U
usepawu2     1
dmatpuopt2   1          # The density matrix: the simplest expression.
lpawu2       2 -1       # Angular momentum for the projected Hamiltonian
f4of2_sla2   0.0  0.0
upawu2       0.0  0.0  eV  # Values of U for each angular momentum
jpawu2       0.0  0.0  eV  # Values of J



# Third dataset - DMFT
usedmft3    1
optforces   0
getwfk3    -1
pawspnorb3  1
nspden3     4
nspinor3    2
nband3      180           # Number of bands

## DMFT Loop setup
nstep3      15
nnsclo3     15            # Number of non-self consistent loops
#? does nline, nstep, nnsclo must be same?
nline3      15            # Number of line minimisations


## Symmetry
istwfk3  *1

## DMFT
dmftbandi 72            # First band included in the projection. Initial
dmftbandf 148            # and final bands.

dmft_nwlo 200           # Logarythmic frequency mesh
dmft_nwli 300000        # Linear freqeuncy mesh
dmft_iter 1             # Number of iterations of the DMFT part.
                        # We often use single-shot, since anyway the charge density
                        # changes through the DFT+DMFT anyway.
dmftcheck 0
dmft_rslf 1             # Read self-energy, if nothing (like here) initialize.
dmft_mxsf 0.7           # Mixing of the old and new self-energy at every iterations.
dmft_dc   1             # Double counting type. 1 is Fully Localized Limit (FLL)

### CTQMC
dmft_solv        5      # Choice of solver: Internal CT-SEG.
dmftqmc_l        100     # Number of time slices for G(tau).
dmftqmc_n        5.d6   # Number of QMC sweeps
dmftqmc_therm    10000  # Thermalization
dmftctqmc_gmove  0      # Global move occurence in QMC
dmftctqmc_order  50     # Perturbation order

## DFT+U
usepawu3     10
dmatpuopt3   1          # The density matrix: the simplest expression.
lpawu3       2 -1       # Angular momentum for the projected Hamiltonian
f4of2_sla3   0.0  0.0
upawu3       4.00  0.0  eV  # Values of U for each angular momentum
jpawu3       0.45  0.0  eV  # Values of J

I have some questions and need some advice.

  1. I saw there are some restrictions in SOC + DMFT (https://discourse.abinit.org/t/can-abinit942-do-the-dmft-soc-job/2959. Does this restriction could affect the result in this materials? In which case does this restriction break?
  2. How can I calculate Magnetic moment from DMFT calculation? (in the paper, they adjust U and J with bandstructure and magnetic moments)
  3. Is it okay to set “f4of2_sla3 0.0 0.0”? (I don’t know the exact meaning of f2, f4, etc. any explanation is welcome)
  4. What is the meaning of “dmft_kspectralfunc” in the DFT+DMFT tutorial? I cannot find any document.

Any advice is welcome!

Thank you.

Hi,

(1) For DMFT+SOC calculations it would be better to use “dmft_solv=8” in order to include the OFF-diagonal elements of the hybridization. Additionally, you need to be aware that the CT-QMC is done on a real imaginary time grid, it does not take into account complex hybridization.

(2) The magnetic moment arising from the CT-QMC should be printed at the end of the Monte-Carlo. If not, you can deduce it by looking at the printed occupation matrices. Let me know if you need more help for that. If you are interested in magnetic properties, it is better to use “usepawu=4” to avoid an overestimation of the magnetic moment.

(3) It gives the ratio of the Slater integrals used for the Coulomb interaction. If you are not sure of the meaning of the variable, it is probably better to leave the default value.

(4) It is probably a typo. It should be dmft_kspectral_func to get the DMFT spectral function resolved over K-points.

Best regards,
Fred.