mirror of
https://github.com/triqs/dft_tools
synced 2024-12-23 04:43:42 +01:00
Fixed DC formulas with SOC (#227)
This commit is contained in:
parent
031ba1ea40
commit
a072a5450f
@ -1730,6 +1730,11 @@ class SumkDFT(object):
|
|||||||
elif self.SP == 1 and self.SO == 1:
|
elif self.SP == 1 and self.SO == 1:
|
||||||
Ncr[sp] = Ncrtot / 2.0
|
Ncr[sp] = Ncrtot / 2.0
|
||||||
|
|
||||||
|
# Uses "orbital" dimension with SO for double counting
|
||||||
|
if self.SP == 1 and self.SO == 1:
|
||||||
|
assert dim % 2 == 0
|
||||||
|
dim //= 2
|
||||||
|
|
||||||
if use_dc_value is None:
|
if use_dc_value is None:
|
||||||
|
|
||||||
if U_interact is None and J_hund is None:
|
if U_interact is None and J_hund is None:
|
||||||
@ -1744,7 +1749,7 @@ class SumkDFT(object):
|
|||||||
J_hund * (Ncr[sp] - 0.5)
|
J_hund * (Ncr[sp] - 0.5)
|
||||||
self.dc_imp[icrsh][sp] *= Uav
|
self.dc_imp[icrsh][sp] *= Uav
|
||||||
self.dc_energ[icrsh] -= J_hund / \
|
self.dc_energ[icrsh] -= J_hund / \
|
||||||
2.0 * (Ncr[sp]) * (Ncr[sp] - 1.0)
|
len(spn) * (Ncr[sp]) * (Ncr[sp] - 1.0)
|
||||||
mpi.report(
|
mpi.report(
|
||||||
"DC for shell %(icrsh)i and block %(sp)s = %(Uav)f" % locals())
|
"DC for shell %(icrsh)i and block %(sp)s = %(Uav)f" % locals())
|
||||||
|
|
||||||
@ -1768,7 +1773,7 @@ class SumkDFT(object):
|
|||||||
J_hund * (Ncr[sp] - Ncr[sp] / dim)
|
J_hund * (Ncr[sp] - Ncr[sp] / dim)
|
||||||
self.dc_imp[icrsh][sp] *= Uav
|
self.dc_imp[icrsh][sp] *= Uav
|
||||||
self.dc_energ[
|
self.dc_energ[
|
||||||
icrsh] -= (U_interact + (dim - 1) * J_hund) / dim * 0.5 * Ncr[sp] * Ncr[sp]
|
icrsh] -= (U_interact + (dim - 1) * J_hund) / dim / len(spn) * Ncr[sp] * Ncr[sp]
|
||||||
mpi.report(
|
mpi.report(
|
||||||
"DC for shell %(icrsh)i and block %(sp)s = %(Uav)f" % locals())
|
"DC for shell %(icrsh)i and block %(sp)s = %(Uav)f" % locals())
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user