Author Topic: wrong results got by Surface Model in 2016.0  (Read 7751 times)

0 Members and 1 Guest are viewing this topic.

Offline 395235863

  • Heavy QuantumATK user
  • ***
  • Posts: 81
  • Country: cn
  • Reputation: 0
    • View Profile
wrong results got by Surface Model in 2016.0
« on: July 23, 2016, 04:25 »
why no periodic characteristic in left electrode?
Thank you very much!

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #1 on: July 25, 2016, 09:51 »
Could you please attach the script you have used? Thanks.

Offline 395235863

  • Heavy QuantumATK user
  • ***
  • Posts: 81
  • Country: cn
  • Reputation: 0
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #2 on: July 25, 2016, 15:55 »
I have attached it

' Surface-Mo-MoS2.py '

Offline Petr Khomyakov

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 1290
  • Country: dk
  • Reputation: 25
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #3 on: July 25, 2016, 17:40 »
According to the tutorial on SurfaceConfiguration calculation, see http://docs.quantumwise.com/tutorials/gf_surface.html?highlight=surface%20configuration, one should, "in the Poisson solver settings, change the boundary condition on the right-hand C-face to Neumann".

It seems that you have not changed that setting for the boundary condition as it follows from your python script. 

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #4 on: July 26, 2016, 14:42 »
1) Yes, you should use the Neumann boundary condition on the right-hand face of the surface configuration central region (towards vacuum).

2) After some testing, I think the problem you see is due to k-point sampling. As usual, the electrode should not be too thin, but I think your electrode has an OK size. But your k-point grid does not sample the Gamma point (because it is a even grid, 8x16 in kA,kB), so the electrode Fermi level may not be well determined. It is very important to accurately determine the electrode Fermi level in one- or two-probe calculations. In fact, this is the main reason to use many k-points along C for device electrodes. I suggest to use a Gamma-centered k-grid, either of the form 5x9x100, or by enabling "Shift to Gamma" in the Script Generator.

Offline 395235863

  • Heavy QuantumATK user
  • ***
  • Posts: 81
  • Country: cn
  • Reputation: 0
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #5 on: July 27, 2016, 17:43 »
I changed my script in device boundary conditions and k-points.

But  the result also seems wrong!

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #6 on: July 28, 2016, 08:34 »
Right, doesn't look quite right. Try to double the electrode size along C. Ought to improve things.

Offline 395235863

  • Heavy QuantumATK user
  • ***
  • Posts: 81
  • Country: cn
  • Reputation: 0
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #7 on: July 28, 2016, 11:20 »
I doubled the electrode size along C.

Then the job can't  run!Maybe too large?

log file:
"
+------------------------------------------------------------------------------+
|                                                                              |
| Atomistix ToolKit 2016.0 [Build adaf9ce]                                     |
|                                                                              |
+------------------------------------------------------------------------------+

Timing:                          Total     Per Step        %

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

Loading Modules + MPI   :       5.05 s       5.05 s      99.00% |=============|
--------------------------------------------------------------------------------
Total                   :       5.10 s

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 20293 RUNNING AT ibcu1
=   EXIT CODE: 1
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
"

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: wrong results got by Surface Model in 2016.0
« Reply #8 on: July 29, 2016, 11:38 »
As the first step, I would remove the Grimme correction. You can add it in a second step later, once you have achieved reasonable results without it.
The error you see is indeed probably due to "out of memory", so try using fewer MPI process (or more machines).
Also the electrode of 6 Å is on the short side, about 9 would be a lot better.
« Last Edit: July 29, 2016, 11:40 by Anders Blom »

Offline 395235863

  • Heavy QuantumATK user
  • ***
  • Posts: 81
  • Country: cn
  • Reputation: 0
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #9 on: August 10, 2016, 02:39 »
I used other model ,still have questions.
How can I change it ?

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #10 on: August 16, 2016, 10:06 »
OK, so I spent some time investigating this issue. For testing purposes, I used a small Mo(100) surface (without any S atoms at all), see attached scripts. The reason you do not find a smooth and bulk-like transition between the electrode and left-hand part of the central region is two-fold:

1) The HGH-tier4 basis functions for Mo are fairly long ranged, extending 11 Bohrs. Your electrode thickness needs to be twice this range, plus two times the range of the pseudopotential projectors. Your electrode therefore needs to be at least 12 Å along the z-axis in order to minimize overlaps with atoms in the scattering region (interactions across the electrode extension). You can use the Electrode Validator to check if a bulk configuration with a converged calculator can be used as an electrode (see http://docs.quantumwise.com/tutorials/atk_transport_calculations/atk_transport_calculations.html#check-the-electrode-geometry-and-size).

2) The HGH pseudopotential for Mo has 14 valence electrons in it. The lowest electrode Hamiltonian eigenvalues are therefore ca. -60 eV (run a band structure or DOS calculation to check this). The default semi-circle NEGF contour integral method has -1.5 Hartree (-41 eV) as the default lower bound for the integration limit. Some core electron density is therefore not captured by the default integration bound with the 14-valence electron HGH potential for Mo. This causes poor SCF convergence in the NEGF calculation and charge accumulation at the electrode-central region interface (see also the box just above the headline at this link: http://docs.quantumwise.com/tutorials/atk_transport_calculations/atk_transport_calculations.html#analyzing-the-results). There are two different ways to fix this: a) increase the semi-circle lower bound to 2.5 Ha (surface_hgh_semi-circle.py), or b) use the new Ozaki contour integral method (http://docs.quantumwise.com/manuals/Types/OzakiContour/OzakiContour.html), which does not depend on an energy bound (surface_hgh_ozaki.py). This is an extremely reliable contour integration method, but may be a little slower than the semi-circle method.

Finally, I would like to suggest you try out the SG15 pseudopotentials as an alternative to HGH, see http://docs.quantumwise.com/manuals/ATKDFT.html#sec-sg15.

Offline 395235863

  • Heavy QuantumATK user
  • ***
  • Posts: 81
  • Country: cn
  • Reputation: 0
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #11 on: August 19, 2016, 11:03 »
OK, so I spent some time investigating this issue. For testing purposes, I used a small Mo(100) surface (without any S atoms at all), see attached scripts. The reason you do not find a smooth and bulk-like transition between the electrode and left-hand part of the central region is two-fold:

1) The HGH-tier4 basis functions for Mo are fairly long ranged, extending 11 Bohrs. Your electrode thickness needs to be twice this range, plus two times the range of the pseudopotential projectors. Your electrode therefore needs to be at least 12 Å along the z-axis in order to minimize overlaps with atoms in the scattering region (interactions across the electrode extension). You can use the Electrode Validator to check if a bulk configuration with a converged calculator can be used as an electrode (see http://docs.quantumwise.com/tutorials/atk_transport_calculations/atk_transport_calculations.html#check-the-electrode-geometry-and-size).

2) The HGH pseudopotential for Mo has 14 valence electrons in it. The lowest electrode Hamiltonian eigenvalues are therefore ca. -60 eV (run a band structure or DOS calculation to check this). The default semi-circle NEGF contour integral method has -1.5 Hartree (-41 eV) as the default lower bound for the integration limit. Some core electron density is therefore not captured by the default integration bound with the 14-valence electron HGH potential for Mo. This causes poor SCF convergence in the NEGF calculation and charge accumulation at the electrode-central region interface (see also the box just above the headline at this link: http://docs.quantumwise.com/tutorials/atk_transport_calculations/atk_transport_calculations.html#analyzing-the-results). There are two different ways to fix this: a) increase the semi-circle lower bound to 2.5 Ha (surface_hgh_semi-circle.py), or b) use the new Ozaki contour integral method (http://docs.quantumwise.com/manuals/Types/OzakiContour/OzakiContour.html), which does not depend on an energy bound (surface_hgh_ozaki.py). This is an extremely reliable contour integration method, but may be a little slower than the semi-circle method.

Finally, I would like to suggest you try out the SG15 pseudopotentials as an alternative to HGH, see http://docs.quantumwise.com/manuals/ATKDFT.html#sec-sg15.

Thank you very much !  Other questions need your help.

  • Quote
    The HGH pseudopotential for Mo has 14 valence electrons in it. The lowest electrode Hamiltonian eigenvalues are therefore ca. -60 eV (run a band structure or DOS calculation to check this).
    How to estimate the lowest electrode Hamiltonian eigenvalues roughly by the element and its valence electrons' number?
    How to run a band structure or DOS calculation to check this?to get a more accurate  eigenvalue
  • Quote
    the box just above the headline at this link: http://docs.quantumwise.com/tutorials/atk_transport_calculations/atk_transport_calculations.html#analyzing-the-results
    I have understand how to choose the setting Integral lower bound  by your detailed explanation above.
    But how to choose the other settings Real axis point density & Circle points & Real axis infinitesimal in Semicirclecontour ?
    Number of poles in OzakiContour ?

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: wrong results got by Surface Model in 2016.0
« Reply #12 on: August 19, 2016, 13:36 »
Quote
How to estimate the lowest electrode Hamiltonian eigenvalues roughly by the element and its valence electrons' number?
How to run a band structure or DOS calculation to check this?to get a more accurate  eigenvalue
Simply run an ordinary bandstructure or DOS analysis for the (bulk) electrode alone, using the pseudopotential you are gonna use for the 1-probe device calculation. See e.g. http://docs.quantumwise.com/tutorials/crystal_bandstructure/crystal_bandstructure.html.

Quote
I have understand how to choose the setting Integral lower bound  by your detailed explanation above.
But how to choose the other settings Real axis point density & Circle points & Real axis infinitesimal in Semicirclecontour ?
Number of poles in OzakiContour ?
- When changing the integral lower bound for the equilibrium contour, you don't need to worry about the settings for the non-equilibrium contour. So just leave them as they are. But when increasing the equilibrium contour integral lower bound you may also need to increase the number of circle points for the equilibrium contour (in order to preserve the density of points on the cirlce).
- For the Ozaki contour, I recommend to use the "Estimate" tool to estimate the number of poles needed to obtain some user-specified accuracy (which you can most likely leave at default value).