mirror of
https://github.com/triqs/dft_tools
synced 2024-11-08 07:03:50 +01:00
thermal cond. added to conductivity_and_seebeck
This commit is contained in:
parent
78000328f1
commit
5e17d333ee
@ -934,6 +934,9 @@ class SumkDFTTools(SumkDFT):
|
|||||||
|
|
||||||
seebeck : dictionary of double
|
seebeck : dictionary of double
|
||||||
Seebeck coefficient in each direction. If zero is not present in Om_mesh the Seebeck coefficient is set to NaN.
|
Seebeck coefficient in each direction. If zero is not present in Om_mesh the Seebeck coefficient is set to NaN.
|
||||||
|
|
||||||
|
kappa : dictionary of double.
|
||||||
|
thermal conductivity in each direction. If zero is not present in Om_mesh the thermal conductivity is set to NaN
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if not (mpi.is_master_node()):
|
if not (mpi.is_master_node()):
|
||||||
@ -947,7 +950,10 @@ class SumkDFTTools(SumkDFT):
|
|||||||
for direction in self.directions}
|
for direction in self.directions}
|
||||||
A1 = {direction: numpy.full((n_q,), numpy.nan)
|
A1 = {direction: numpy.full((n_q,), numpy.nan)
|
||||||
for direction in self.directions}
|
for direction in self.directions}
|
||||||
|
A2 = {direction: numpy.full((n_q,), numpy.nan)
|
||||||
|
for direction in self.directions}
|
||||||
self.seebeck = {direction: numpy.nan for direction in self.directions}
|
self.seebeck = {direction: numpy.nan for direction in self.directions}
|
||||||
|
self.kappa = {direction: numpy.nan for direction in self.directions}
|
||||||
self.optic_cond = {direction: numpy.full(
|
self.optic_cond = {direction: numpy.full(
|
||||||
(n_q,), numpy.nan) for direction in self.directions}
|
(n_q,), numpy.nan) for direction in self.directions}
|
||||||
|
|
||||||
@ -957,21 +963,28 @@ class SumkDFTTools(SumkDFT):
|
|||||||
direction, iq=iq, n=0, beta=beta, method=method)
|
direction, iq=iq, n=0, beta=beta, method=method)
|
||||||
A1[direction][iq] = self.transport_coefficient(
|
A1[direction][iq] = self.transport_coefficient(
|
||||||
direction, iq=iq, n=1, beta=beta, method=method)
|
direction, iq=iq, n=1, beta=beta, method=method)
|
||||||
|
A2[direction][iq] = self.transport_coefficient(
|
||||||
|
direction, iq=iq, n=2, beta=beta, method=method)
|
||||||
print "A_0 in direction %s for Omega = %.2f %e a.u." % (direction, self.Om_mesh[iq], A0[direction][iq])
|
print "A_0 in direction %s for Omega = %.2f %e a.u." % (direction, self.Om_mesh[iq], A0[direction][iq])
|
||||||
print "A_1 in direction %s for Omega = %.2f %e a.u." % (direction, self.Om_mesh[iq], A1[direction][iq])
|
print "A_1 in direction %s for Omega = %.2f %e a.u." % (direction, self.Om_mesh[iq], A1[direction][iq])
|
||||||
|
print "A_2 in direction %s for Omega = %.2f %e a.u." % (direction, self.Om_mesh[iq], A2[direction][iq])
|
||||||
if ~numpy.isnan(A1[direction][iq]):
|
if ~numpy.isnan(A1[direction][iq]):
|
||||||
# Seebeck is overwritten if there is more than one Omega =
|
# Seebeck and kappa are overwritten if there is more than one Omega =
|
||||||
# 0 in Om_mesh
|
# 0 in Om_mesh
|
||||||
self.seebeck[direction] = - \
|
self.seebeck[direction] = - \
|
||||||
A1[direction][iq] / A0[direction][iq] * 86.17
|
A1[direction][iq] / A0[direction][iq] * 86.17
|
||||||
|
self.kappa[direction] = A2[direction][iq] - A1[direction][iq]*A1[direction][iq]/A0[direction][iq]
|
||||||
|
self.kappa[direction] *= 293178.0
|
||||||
self.optic_cond[direction] = beta * \
|
self.optic_cond[direction] = beta * \
|
||||||
A0[direction] * 10700.0 / numpy.pi
|
A0[direction] * 10700.0 / numpy.pi
|
||||||
for iq in xrange(n_q):
|
for iq in xrange(n_q):
|
||||||
print "Conductivity in direction %s for Omega = %.2f %f x 10^4 Ohm^-1 cm^-1" % (direction, self.Om_mesh[iq], self.optic_cond[direction][iq])
|
print "Conductivity in direction %s for Omega = %.2f %f x 10^4 Ohm^-1 cm^-1" % (direction, self.Om_mesh[iq], self.optic_cond[direction][iq])
|
||||||
if not (numpy.isnan(A1[direction][iq])):
|
if not (numpy.isnan(A1[direction][iq])):
|
||||||
print "Seebeck in direction %s for Omega = 0.00 %f x 10^(-6) V/K" % (direction, self.seebeck[direction])
|
print "Seebeck in direction %s for Omega = 0.00 %f x 10^(-6) V/K" % (direction, self.seebeck[direction])
|
||||||
|
print "kappa in direction %s for Omega = 0.00 %f W/(m * K)" % (direction, self.kappa[direction])
|
||||||
|
|
||||||
|
return self.optic_cond, self.seebeck, self.kappa
|
||||||
|
|
||||||
return self.optic_cond, self.seebeck
|
|
||||||
|
|
||||||
def fermi_dis(self, w, beta):
|
def fermi_dis(self, w, beta):
|
||||||
r"""
|
r"""
|
||||||
|
Loading…
Reference in New Issue
Block a user