Author Topic: Question about annealing and current calculation  (Read 5678 times)

0 Members and 1 Guest are viewing this topic.

Offline BlackBarrel

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: cn
  • Reputation: 0
    • View Profile
Question about annealing and current calculation
« on: November 14, 2012, 06:31 »
Dear Quantumwise Staff:

I have two questions and they may be related or not.

First, when I find it hard to converge for a certain device, I raise the temperature in both electrode and central region to a higher one, say 1000 K. Then the obtained .nc file is used as the initial state for the room temperature calculation by manually reading and adjusting the former "electron_temperature" in electrodes' and central region's calculators. Is such annealing procedure correct?

Second, when I calculate the current of room temperature .nc file obtained by annealing, a great discrepancy occurs between the current of "transmission_spectrum.current()" (I added it to the script) and the one shown by the analyzer. Such mismatch can be up to 2 orders of magnitude. Which current is reliable? Or neither?

Thank you!

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5531
  • Country: dk
  • Reputation: 90
    • View Profile
    • QuantumATK at Synopsys
Re: Question about annealing and current calculation
« Reply #1 on: November 14, 2012, 10:26 »
1. Yes
2. Both are correct, but most likely they are referring to different transmission spectra, perhaps if you have the high-T and room-T transmission spectra in the same NC file?

Offline BlackBarrel

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Question about annealing and current calculation
« Reply #2 on: November 15, 2012, 07:52 »
1. Yes
2. Both are correct, but most likely they are referring to different transmission spectra, perhaps if you have the high-T and room-T transmission spectra in the same NC file?


There is only one spectrum in my .nc file (which is of room temperature), so it couldn't be mistaken. Would you mind examining my .nc file? Although I think it's too large to be attached...

Anyway, thank you!

PS: What if I lower only the T of central region while keep the T of electrodes at 1000 K during the annealing? I see no difference in the procedure of SCF...
« Last Edit: November 15, 2012, 07:54 by BlackBarrel »

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5531
  • Country: dk
  • Reputation: 90
    • View Profile
    • QuantumATK at Synopsys
Re: Question about annealing and current calculation
« Reply #3 on: November 15, 2012, 23:02 »
I can only speak in general terms without the NC file (which you can send using some service for large files, if you want, for instance http://sprend.com/).

When you do transmission_spectrum.current(), the current is computed assuming the same electrode temperatures as in the calculation. In the analyzer you can specify a different value, and the default is 300 K, so if that is not the same as in your calculation, then yes the current will be different. It may also be helpful to know that the current is not saved inside the transmission spectrum object, it's computed on the fly every time (it's fast).

As for the PS, there is no well-defined temperature in the central region - it's in non-equilibrium, which is the "NE" in NEGF, the method used for computing the transmission :)

Offline BlackBarrel

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Question about annealing and current calculation
« Reply #4 on: November 17, 2012, 16:41 »
I can only speak in general terms without the NC file (which you can send using some service for large files, if you want, for instance http://sprend.com/).

When you do transmission_spectrum.current(), the current is computed assuming the same electrode temperatures as in the calculation. In the analyzer you can specify a different value, and the default is 300 K, so if that is not the same as in your calculation, then yes the current will be different. It may also be helpful to know that the current is not saved inside the transmission spectrum object, it's computed on the fly every time (it's fast).

As for the PS, there is no well-defined temperature in the central region - it's in non-equilibrium, which is the "NE" in NEGF, the method used for computing the transmission :)


Your comment is indeed correct, but the calculator of central region (as well as those of the electrodes) has a parameter called "electron temperature" in numerical_accuracy_parameters. Is it useless to modify the temperature in the central region? What's the relationship among the three temperatures? I see only the electrodes' temperature included in the current integration.

.nc file is sent to your email. Any advice is appreciated.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5531
  • Country: dk
  • Reputation: 90
    • View Profile
    • QuantumATK at Synopsys
Re: Question about annealing and current calculation
« Reply #5 on: November 17, 2012, 21:51 »
You are right, technically the NumericalAccuracyParameters class, which takes the keyword for electron temperature, can also be used for the central region. However, it is not used, so specifying a temperature here has no effect at all.

I don't see any issue with your NC file. If I drop it on the I-V Curve Custom Analyzer it shows

Quote
Data for interpolation
Voltage list (Volt)
( 0.1)
Current list (nano Ampere)
( 0.85961535)

and I get the exact same result if I calculate it using the current() method:

Quote
$ atkpython
Atomistix ToolKit 12.8.r1 [Build 1032d2d]

In [1]: t = nlread('kpts_test_kpt320.nc')[0]

In [2]: t.current()
+----------------------------------------------------------+
| Current Report                                           |
+----------------------------------------------------------+
| Applied bias        = 0.100 Volt                         |
| Bias window         = [ 0.050 Volt, -0.050 Volt ]        |
| Bias window covered = 100.00 %                           |
| Calculated current  = 8.5961534944e-10 A                 |
| Spin                = All available                      |
+----------------------------------------------------------+

Out[2]: PhysicalQuantity(8.5961534944e-10,A)

In [3]:

Offline BlackBarrel

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Question about annealing and current calculation
« Reply #6 on: November 19, 2012, 08:21 »
I think I know where I made the mistake. In my old script I changed only the T of central region without modifying those of the electrodes. Those .nc files obtained by the old script have the problem of discrepant current. Later I fixed it and obtained some new .nc files (one of which is sent to you) and the new .nc files don't have such problem. However, I stored them together with similar filenames and thus I can't tell the old ones from the new ones... It seems that I've sent a new one to you. Thank you for your answer! Another problem here. Often the annealing is very hard to converge, accompanied by such warnings:
Code
################################################################################
# WARNING                                                                      #
#                                                                              #
# The computed multigrid residual is greater than the required accuracy.       #
#                                                                              #
# Computed residual :   6.68609e-10                                            #
# Required accuracy :   1.00000e-12                                            #
#                                                                              #
################################################################################
Do they lead to hard convergence? How to eliminate them?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5531
  • Country: dk
  • Reputation: 90
    • View Profile
    • QuantumATK at Synopsys
Re: Question about annealing and current calculation
« Reply #7 on: November 19, 2012, 10:07 »
This may be something different than annealing. Do you have gates in the structure? There is a bug in 12.2, fixed in 12.8, about the multigrid method which can lead to these warnings.

Offline BlackBarrel

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Question about annealing and current calculation
« Reply #8 on: November 22, 2012, 12:01 »
Yes I do have gates in my device. What does this bug affect? Does it mean that even if the SCF is converged, the final .nc file is unreliable with several warnings like that?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5531
  • Country: dk
  • Reputation: 90
    • View Profile
    • QuantumATK at Synopsys
Re: Question about annealing and current calculation
« Reply #9 on: November 22, 2012, 23:09 »
Yes, that is a distinct possibility. You should rerun with 12.8, perhaps with the "converged" state from 12.2 as a starting point to save time.

Offline BlackBarrel

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Question about annealing and current calculation
« Reply #10 on: November 23, 2012, 06:49 »
Thank you for your advice! I'll rerun them with 12.8 and see if the results will change.