Author Topic: How to get figure of merit.  (Read 4438 times)

0 Members and 1 Guest are viewing this topic.

Offline A_Shimizu

  • New QuantumATK user
  • *
  • Posts: 4
  • Country: us
  • Reputation: 0
    • View Profile
How to get figure of merit.
« 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.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: How to get figure of merit.
« Reply #1 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.

Offline A_Shimizu

  • New QuantumATK user
  • *
  • Posts: 4
  • Country: us
  • Reputation: 0
    • View Profile
Re: How to get figure of merit.
« Reply #2 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.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: How to get figure of merit.
« Reply #3 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 ;)