QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: A_Shimizu on July 25, 2021, 21:27

Title: How to get figure of merit.
Post by: A_Shimizu on July 25, 2021, 21:27
Hello.

I am having problem with obtaining the figure of merit. I have followed this tutorial and get ZT vs Energy graph and I got it one.
https://docs.quantumatk.com/tutorials/phonon_calcs/phonon_calcs.html
But the graph I want is ZT vs Temperature. Is there anyway I can get ZT vs Temperature with Quantum ATK?

Thank you.
Title: Re: How to get figure of merit.
Post by: Anders Blom on July 29, 2021, 09:19
Sure, it's relatively straightforward in a Python script.

The best approach for you is to check out the code for the Thermoelectric plugin, which is available in open source in lib/site-packages/AddOns/TransportCoefficients in the installation tree.

The file Utilities.py contains a function that computes the moments, and then you can see in TransportCoefficientsWidget.py (line 386-389) how these are used to compute the Seebeck coefficient. Now you just need to do this as a function of temperature which is a parameter to the moments function, extract the values and plot them.

Note however that this will just capture the electron temperature dependence. If you also want to include the ionic temperature (specifically, how the transmission spectrum and the thermal conductances depend on temperature), you need much more work, e.g. using our SpecialThermalDisplacement method.
Title: Re: How to get figure of merit.
Post by: A_Shimizu on July 29, 2021, 23:24
Thank you for your reply.

I have found line 386-389

            conductance_up                   =  k0_up
            peltier_coefficient_up           = -k1_up/(k0_up*Units.e)
            seebeck_coefficient_up           = -k1_up/(k0_up*Units.e*temperature)
            thermal_conductance_electrons_up =  (k2_up*k0_up-k1_up*k1_up)/(temperature*k0_up*Units.e**2)

If possible, would you tell me how exactly do I make change here? Also, it looks like those lines are for spin up, do we make change on spin down(line 395-398)?

Thank you for your time.
Title: Re: How to get figure of merit.
Post by: Anders Blom on July 29, 2021, 23:59
It's not that you should change those lines, but they show how to calculate the quantities you need. You will need to create a whole standalone Python script to do this, but that code can serve as guidance, was my point.

If you don't have a spin-polarized calculation, I think you can just do it for one spin channel.

Otherwise the really simplest way to do this is to enter different temperature values in the widget in the GUI and write down the ZT for each temperature and plot it separately. Might even be faster ;)