This can be done with some easy Python scripting. If you have an HDF5 file with a transmission spectrum and phonon transmission spectrum, the following code will compute these quantities for a given temperature. Then you just have to loop over the temperature and plot it.
transmission_spectrum = nlread("file.hdf5", TransmissionSpectrum)[-1]
phonon_transmission_spectrum = nlread("file.hdf5", PhononTransmissionSpectrum)[-1]
temperature = 300*Kelvin
from AddOns.TransportCoefficients.Utilities import evaluateMoments
k0, k1, k2 = evaluateMoments(transmission_spectrum, temperature)
thermal_conductance_phonons = phonon_transmission_spectrum.thermalConductance(temperature)
conductance = k0
peltier_coefficient = -k1/(k0*Units.e)
seebeck_coefficient = -k1/(k0*Units.e*temperature)
thermal_conductance_electrons= (k2*k0-k1*k1)/(temperature*k0*Units.e**2)
total_thermal_conductance = thermal_conductance_electrons + thermal_conductance_phonons
zt = conductance*seebeck_coefficient**2*temperature/total_thermal_conductance
Sorry if I made any typos, I had no good case to check against right at hand, but hopefully you get the idea.
If you have a spin-polarized system, each quantity k0, k1, k2 needs to be separately evaluated for up and down spin and then all quantities are added up (a bit complex, we can add this later in this discussion if relevant).
Dear Anders Blom
I tried hard using Python scripting, but unfortunately, I didn't get a result because I didn't know how to write codes using Python.
I want to attach an HDF5 file with the transmission and phonon spectrum, but the site does not allow it because it is too large.
Please send me your email for sending the file, and I ask you to help me write the complete code to calculate these quantities with temperature.
I desperately need your help.
Sincere regards
Emal: wisam122@ahoo.com