Calculate Tc with VCA

Hi,

I have two questions regarding Tc calculated with VCA:

  1. Error with EPH Calculation:
--- !WARNING
src_file: m_crystal.F90
src_line: 928
message: |
    Found critical diffs in zion.
...
--- !ERROR
src_file: m_eph_driver.F90
src_line: 398
mpi_rank: 0
message: |
    Crystal structure from WFK and DDB do not agree! Check messages above!
...

To resolve this, I edited the zion values in the DDB file to match those in the WFK file. After making this change, all calculations completed without further errors.

My question:
Is it okay to edit the zion values in the DDB file like this?


  1. Linewidth Comparison between EPH and anaddb:

When I changed the zion values in the DDB file, the anaddb output remained unaffected. Since editing the DDB file is necessary to perform EPH calculations, I used the modified DDB file for both EPH and anaddb calculations. This allowed me to compare the results from EPH and anaddb, ensuring consistency between the two.

I know the linewidth from EPH is expected to be twice the linewidth from anaddb, since their definitions differ.
I reviewed this discussion that mentions interpolation issues with EPH, so I avoided doing any interpolation in both EPH and anaddb. Instead, I only compared the linewidths at the Γ point.

However, the result I obtained is 2.6 times different, instead of 2.

I used eph_task = 2 to generate the GKK file from EPH and compared it with the GKK file input to anaddb. The difference is small:

The mode 6 resout is:

max value of GKK6.nc from EPH     = 2.3175205960211516
max value of GKK6.nc from anaddb  = 2.3175207107541453
mean value of GKK6.nc from EPH    = 0.0004987079362515341
mean value of GKK6.nc from anaddb = 0.0004987178065950254
max different value  = 1.4098356786035326e-06
mean different value = 1.4324080922574074e-07

My question:
Why do the two methods yield different results? Could it be due to VCA?



output from EPH:

 q-point =    0.000000E+00    0.000000E+00    0.000000E+00
 Mode number    Frequency (Ha)  Linewidth (Ha)  Lambda(q,n)
    1        1.975938E-04    0.000000E+00    0.000000E+00
    2        1.975938E-04    0.000000E+00    0.000000E+00
    3        1.975938E-04    0.000000E+00    0.000000E+00
    4        5.628373E-03    5.362570E-04    1.901844E+00
    5        5.628373E-03    5.362570E-04    1.901844E+00
    6        5.628373E-03    5.362570E-04    1.901844E+00


output from anaddb:

 Q point =    0.000000E+00    0.000000E+00    0.000000E+00   isppol =    1
 Mode number    Frequency (Ha)  Linewidth (Ha)  Lambda(q,n)
       1        1.975938E-04    3.912614E-09    2.901424E-02
       2        1.975938E-04    3.912614E-09    2.901424E-02
       3        1.975938E-04    3.912614E-09    2.901424E-02
       4        5.628373E-03    2.046349E-04    1.870273E+00
       5        5.628373E-03    2.046349E-04    1.870273E+00
       6        5.628373E-03    2.046349E-04    1.870273E+00


input of DFPE

 ecut 40.0
 nband 16
 kptopt 3
 ngkpt 12 12 12
 nshiftk 1
 shiftk    0.0    0.0    0.0
 occopt 7
 tsmear 0.001 Ry
 iscf 7
 nstep 300
 tolvrs 1e-14
 rfphon 1
 nqpt 1
 qpt    0.0    0.0    0.0
 acell    1.0    1.0    1.0
 natom 2
 ntypat 2
 npsp 2
 ntypalch 2
 mixalch 
     0.9815 0.0185
     0.9815 0.0185
 rprim
        0.000000000         3.377026107        3.377026107
        3.377026107         0.000000000        3.377026107
        3.377026107         3.377026107        0.000000000
 typat 1 2
 xred
       0.000000000000      0.000000000000      0.000000000000
       0.250000000000      0.250000000000      0.250000000000
 znucl 6 5
 iomode 1
 irdwfk 1
 prtden 1
 prtwf  0
 prtvxc 0
 prtpot 1
 prepgkk 1
 use_nonscf_gkk 0


input of EPH

optdriver 7
eph_task  1
ph_intmeth 1          
ddb_ngqpt 1 1 1        # The ab-initio q-mesh (DDB, DVDB)
eph_intmeth 1       # Gaussian method for double-delta integration.
eph_fsmear 0.01 Ha   # Constant broadening in Gaussian function.
getwfk 1         
irdwfq 1
irdddb 1
irddvdb 1
ph_nqpath 1
ph_qpath
    0.0   0.0   0.0
asr 0
 ecut 40.0
 nband 16
 kptopt 3
 ngkpt 12 12 12
 nshiftk 1
 shiftk    0.0    0.0    0.0
 occopt 7
 tsmear 0.001 Ry
 iscf 7
 nstep 300
 tolvrs 1e-14
 acell    1.0    1.0    1.0
 natom 2
 ntypat 2
 npsp 2
 ntypalch 2
 mixalch 
     0.9815 0.0185
     0.9815 0.0185
 rprim
        0.000000000         3.377026107        3.377026107
        3.377026107         0.000000000        3.377026107
        3.377026107         3.377026107        0.000000000
 typat 1 2
 xred
       0.000000000000      0.000000000000      0.000000000000
       0.250000000000      0.250000000000      0.250000000000
 znucl 6 5
 iomode 1
 prtden 1
 prtvxc 0


input of anaddb

elphflag 1
telphint 1
elphsmear 0.01 Ha
nqpath 1
qpath
 0.0 0.0 0.0
mustar 0.1
asr 0
brav 1
ngqpt 1 1 1
ifcflag 1

diamond.targz (198.8 KB)

Hi JauWen,

The phonons with VCA should be fine, but the container in the DDB file is not adapted to describe the situation. Your fix is a start, but I am not sure that the EPH module implements the VCA in the reconstruction of the interpolated potential (@gmatteo ??). You can post-process the POT files, but maybe not interpolate them. It should not be too hard to add, but if it does not work it may not complain: it may just ignore the alchemical mixing and use the normal elemental pseudopotentials. You might check using an underconverged case and 1 atom, to see if there is a difference in the EPH final dtset with and without VCA (run GS and DFPT with VCA only)