Author Topic: About the repeatability and correctness of the calculation using ATK  (Read 5694 times)

0 Members and 1 Guest are viewing this topic.

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Dear ATK experts,

I am studying the transport properties (transmission spectrum) of a device using Huckel method. I have done two calculations with the same device configuration, the same bias voltage, while there are a little bit differences between the parameters for the calculations, such as k-point sampling, Poison solver, damping factor and so on. Both the two calculations were converged to the same tolerance. Attached are the .py file for the two calculations.

However, the transmission spectrums are quite different. The current in one calculation is about ten times of that in another calculation.

Who can tell me which one is correct and what’s wrong with the other calculation? How should I choose the parameters for the next calculation?

Thank you very much for your kind help!

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Comparison of the two transmission spectrums...

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5418
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
The changes you have made between the two calculations are not insignificant. Basically one calculation has a lot higher accuracy than the other (in particular in regards to k-points).

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Thank you very much for your reply.

I do know that the accuracy (in particular in regards to k-point) of one calculation might be much higher than that of the other one. I am confused because I saw both the two calculations were converged to the same tolerance. I had thought that if the calculation could converge to a reasonable tolerance, it should be trusted and reliable. It seems that this view-of-point needs to be adjusted.  Now, I have no idea how to determine if the result is reliable----the "Converged" is no longe the criterion.

For this case, is it necessary to take a k-point scan as described in tutorial https://docs.quantumwise.com/tutorials/atk_transport_calculations/atk_transport_calculations.html ?Or just take the result with higher accuracy as the final result?

Thanks a lot again for your kind help!

Offline Petr Khomyakov

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 1290
  • Country: dk
  • Reputation: 25
    • View Profile
The tolerance parameter that you set explicitly in the script is only for  self-consistent total energy calculations. As I said in one of the previous topics, you should converge a physical quantity of interest (total energy, transmission, IV curve and so on) with respect to k-point density or any other relevant computational settings.  This corresponds to a different tolerance that you do not set explicitly in the script - this is something you decide for yourself when you stop increasing the k-mesh density by looking at how the physical quantity changes upon the density increase. The tutorial you have mentioned describes this procedure.


Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Thank you very much for your explanation! It's really helpful and I began to know what "Converge" means.

That means, if I want to carry out a calculation about a physical property, say, in this case, the transmission spectrum, I'd better check the convergence of this particular property in respect to the computational parameters which  would significantly affect the accuracy of the calculation, such as k-mesh density and  mesh cut-off. A way to check the convergence of such parameters is to take a scan. Is it correct?

Even for a 2D device, the k-mesh is defined as (1, kb, kc). Do I need to take a scan of both kb and kc or just take a scan of kb or kc? The former one must be a tedious work!

For the calculation of transmission spectrum, besides the k-mesh density and mesh cut-off, is there any other parameter that I need to check?

Thank you again for your kind help!
« Last Edit: December 23, 2017, 14:59 by lknife »

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
I tried to write a script to make a k-point scan of the calculation by following the tutorial mentioned above. However, because I am not familiar with Python coding, I don't know how to change and update the parameters of the Calculator in the loop. There is something wrong with the script. Could you please help me with it? I do appreciate your kind help!

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
The k/point sampling grid needs to be an instance of the MonkhorstPackGrid module, and then be passed as NumericalAccuracyParameters. I think attached script should work.

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Dear Jess Wellendorff,

Thank you very much for your kind help! It's really helpful! I am studying the python programming about ATK, wishing to learn more from you!

Thanks a lot again!

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Dear Jess Wellendorff,

Could you please help me check the attached .py file for k-point scanning? It was written according to your script with just a little modification. It was shown in the .log file that no SCF calculation was used. However, I do want to use the SCF calculation. What's wrong with the script?
In addition, there are some errors about plotting the curve. It was said "TypeError: float() argument must be a string or a number". Why?

Another problem: I cannot find the access to the Forum from the website "www.quantumwise.com" now. Is there any problem with the website?

I appreciate you for your kind help!

Lknife

« Last Edit: January 4, 2018, 15:14 by lknife »

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
1) By default, the ATK semi-empirical calculators are non-selfconsistent. Try using the Script Generator to switch this to self-consistent (think you can untick a check box to do this).
2) The python script you attach is empty, so I cannot say what the problem is.
3) The website was recently updated, I suggest using the QW documentation website as an entry for the Forum (www.docs.quantumwise.com) or directly use the link https://www.quantumwise.com/forum/

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Thank you very much for your prompt reply! For the empty .py file,  I am sorry for the mistake and I have uploaded the correct one. Please help me to check it.

Thanks a lot again for your kind help!

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Line 431 needs to be changed like this:
Code
Value = transmission_spectrum.current().inUnitsOf(Ampere)*1.e9
The reason is that
Code
transmission_spectrum.current
just points to the Python method "current", while
Code
transmission_spectrum.current()
executes the method and returns the value of the current. The
Code
.inUnitsOf(Ampere)*1.e9
makes sure the stored value of the current is in units of nA.

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Thank you very much for your help! I really appreciate that!

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Dear Jess Wellendorff,

I got the result of the kscan calculation for my device, could you please have a look at it?
From the figure, it seems that the convergence of the current is mostly affected by the resolution of kB, and 100 for kC is enough, is it right?