Author Topic: the topological invariants in tutorial "Bi2Se3 topological insulator"  (Read 7722 times)

0 Members and 1 Guest are viewing this topic.

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Dear Sir/all

I am now studying the tutorial "Bi2Se3 topological insulator" and have some questions about it, hoping that someone in this forum can help me!

I followed the directions in this tutorial and have done all the steps except the last section "Python script for the calculating the topological invariants". After downloading the python script "TopologicalInvariant3D.py" without any modification, I executed the scripts below:

——————————————————————————————————————————————————
from TopologicalInvariant3D import topologicalInvariant3D

bulk_configuration = nlread("bi2se3_bulk_sogga.nc", BulkConfiguration)[0]

print '-----------------------------------'
print 'Topological Invariants = ', topologicalInvariant3D(bulk_configuration)
print '-----------------------------------'
——————————————————————————————————————————————————

I replaced the bulk_configuration with the results previously obtained. However, the final results is "Topological Invariants =  [0 0 0 0]", no matter which bulk_configuration was used, GGA or SOGGA. Also, I am not sure how to get the "bi2Se3_bulk_sogga.nc" since it's not in the tutorial.

Can anyone here help me to answer this question? I appreciate your kindness!

Thanks again! 

Offline Daniele Stradi

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 286
  • Country: dk
  • Reputation: 3
    • View Profile
Have you also used the other scripts and can reproduce all the figures? Can you attach the scripts that you generated?

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Yes, I can get the same figures using other scripts.

Because the .nc files are too big to be attached, only .py files are presented here.

The one named Bi2Se3_bulk.py was used to produce the bulk configuration with GGA and SOGGA exchange correlation.
The one named TopologicalInvariant3D.py was the file downloaded from the website without any modification.
The file named "using of topologicalInvariant3D_new.py" was the usage of "TopologicalInvariant3D.py" on the bulk configuration calculated with SOGGA exchange correlation.
The file named "using of topologicalInvariant3D_new.log" is the result.

No matter how many times I did the calculation, it showed me the same result: "Topological Invariants =  [0 0 0 0]". Could you please tell me what's wrong with the calculation?

Thank you very much!

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
We are currently looking into this issue, keep you posted...

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
I confirm that something is not right with the computed topological invariants. We need to look further into this in order to figure out the problem.

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Yesterday I tried the tutorial again and happened to get the save result as the tutorial:

--------------------------------------------------------------------------------

File IO, nlread         :      32.40 s      16.20 s      63.80|=============|
Loading Modules + MPI   :       1.67 s       1.67 s       3.30||
--------------------------------------------------------------------------------
Total                   :      50.79 s
-----------------------------------
Topological Invariants =  [1 0 0 0]
-----------------------------------

Since the time consuming of this calculation was very short, I tried another time to verify the calculation. However, this time it still gave me the result as I mentioned before: "Topological Invariants =  [0 0 0 0]" and the time consuming increased again to about 3h.

That means, I got two different results: (1)"Topological Invariants =  [1 0 0 0]" and (2) "Topological Invariants =  [0 0 0 0]" with "the same" python script and bulk configuration.

The bulk configuration was obtained by running the script "Bi2Se3_bulk.py " downloaded from the tutorial without any modification. I tried several times with the same bulk configuration.  Only one result with "Topological Invariants =  [1 0 0 0]" was obtained. The other results were "Topological Invariants =  [0 0 0 0]". I hope anybody here can help me find the answer to this question.

Attached are the .log files for the calculation with "Topological Invariants =  [1 0 0 0]" and "Topological Invariants =  [0 0 0 0]. It can be seen that they are totally different.

Thanks a lot for anyone who can help me!


Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
I'v found something about the question.

If I do the calculation using ATK version 2015.1, I will get the result "Topological Invariants =  [1 0 0 0]" within a minute. However, if I do the calculation using ATK version 2016.3, it will take a long time (more than 4 hours) and get the result "Topological Invariants =  [0 0 0 0]".

Then, what's the difference about ATK version 2015.1 and version 2016.3 on this calculation? Which one is correct?

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
I am guessing the ATK 2015 result is the correct one, but I have not yet verified this.

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
OK, so I finally found the reason for the nonfunctional script for calculating the topological invariants: One of the ATK functions used in the  script "TopologicalInvariant3D.py" has changed from ATK 2016 and forward. Also, as of ATK 2017, where more electron occupation functions are introduced, a small correction is also needed. Use the following corrected scripts to get the correct result, which is [1 0 0 0] as stated in the tutorial:

* ATK 2015 and 2016: "topological_invariants.py" and "TopologicalInvariant3D.py"

* ATK 2017: "topological_invariants_atk2017.py" and "TopologicalInvariant3DATK2017.py"

I will of course update the online tutorial.
Thanks for the help on resolving this issue!

BR, Jess

Offline lknife

  • QuantumATK Guru
  • ****
  • Posts: 214
  • Country: us
  • Reputation: 1
    • View Profile
Thank you very much for your perfect solution to my problem! From this case, I found that there's really too much I need to learn about the software and python script.

Thanks a lot again!

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Please bear in mind that the script for computing topological invariants is for now only suited for 3D bulks, which are described by 4 invariants. For 2D systems, e.g. monolayers, there are probably fewer invariants. If you are interested in studying 2D systems, we may be able to adapt the script for that - just provide us a research paper about how to compute topological invariants in 2D materials.

Offline lknife

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

I found a literature: Topological insulators and superconductors, REVIEWS OF MODERN PHYSICS, VOLUME 83, OCTOBER-DECEMBER 2011, DOI: 10.1103/RevModPhys.83.1057". There are something about the topological invariant for topological superconductors, as well as for 2D systems, on page 1100 . However, because of my limited knowledge on the theory about that, I am not sure if it is suitable for you.

Best regards,

Lknife

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Dear Lknife,
thanks for the reference, we will have a look at it and see if we can figure out how to compute the topological invariants for 2D systems.

Cheers,
Jess

Offline Roc2019

  • Heavy QuantumATK user
  • ***
  • Posts: 56
  • Country: cn
  • Reputation: 0
    • View Profile
Dear Sir,

Would you like to update the script to calculate the topological invariants ? It does not work for the newest version 2019.12.sp1.

Thank you so much.