Author Topic: Grain Boundary Scattering doping problem  (Read 7790 times)

0 Members and 1 Guest are viewing this topic.

Offline Lim changmin

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: kr
  • Reputation: 0
    • View Profile
Grain Boundary Scattering doping problem
« on: August 18, 2024, 15:30 »
Hi all

I am trying to calculate Silicon grain boundary resistivity through grain boundary generator and grain boundary scattering with doping(5e20) included.

My grain boundary scattering settings are E0=0eV, E1=0eV, point : 1 / K-point density : 7 Angstrom

When calculating Silicon structure with transmission spectrum with E0=0eV, E1=0eV, point : 1, with 5e20 doping, it showed transmission area.

However, boundary scattering transmission did not show transmission area, resulting grain boundary resistivity to infinite.

I want to see the 5e20 doping grain boundary resistivity when E=0eV.  How can I solve this problem?

Thank you

The attached file is the py file with grain boundary scattering

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5585
  • Country: dk
  • Reputation: 101
    • View Profile
    • QuantumATK at Synopsys
Re: Grain Boundary Scattering doping problem
« Reply #1 on: August 27, 2024, 02:09 »
Hard to answer without seeing the output you refer to. The calculation of the area is very straightforward in the code (volume divided by length) so it's hard to imagine this being zero...

Offline Lim changmin

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: kr
  • Reputation: 0
    • View Profile
Re: Grain Boundary Scattering doping problem
« Reply #2 on: August 30, 2024, 08:25 »
Thank you for your reply. What I want to see is the transmission results at 0eV with different doping concentrations.

For further understanding, I posted figures transmission results of Silicon crystal structure(100) orientation at doping concentrations of 5e20, 1e21 at 0eV.

That is what I want to check at polycrystal as well. However, the result shows the resistivity as infinite even though I doped the silicon. Transmission result of silicon polycrystal is also shown in the figure. And the error occurred is also shown in Linux terminal.

zipdir/NL/CommonConcepts/PhysicalQuantity.py:1544: RuntimeWarning: divide by zero encountered in divide
zipdir/SentaurusMaterialsWorkbench/GrainBoundaryScattering/GrainBoundaryScattering.py:2428: RuntimeWarning: divide by zero encountered in divide
zipdir/SentaurusMaterialsWorkbench/GrainBoundaryScattering/GrainBoundaryScattering.py:2431: RuntimeWarning: invalid value encountered in add
zipdir/SentaurusMaterialsWorkbench/GrainBoundaryScattering/GrainBoundaryScattering.py:2431: RuntimeWarning: invalid value encountered in multiply

Should I just adjust the setting of 0eV to other values, instead of doping the silicon?

Lastly, the grain boundary scattering method that I am using does not support HSE06 currently(My current version is 2023.09)
Can it be solved when I update the license?

Thank you.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5585
  • Country: dk
  • Reputation: 101
    • View Profile
    • QuantumATK at Synopsys
Re: Grain Boundary Scattering doping problem
« Reply #3 on: August 31, 2024, 00:00 »
The tool is really designed for metals, that is why the transmission is evaluated at the Fermi level. For a semiconductor, it does make sense to dope it to get some current (and make it metal-ish), but 5e20 seems to not be enough, as the Fermi level is still in the band gap and the error you get is because the reflectivity is exactly one, and R/(1-R) diverges.

I don't see any reason one could not use HSE, at least in the current version.

Offline Lim changmin

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: kr
  • Reputation: 0
    • View Profile
Re: Grain Boundary Scattering doping problem
« Reply #4 on: September 2, 2024, 15:23 »
Thank you for your reply.
For more doping for the Silicon however, 1e21 didn't work as well. From the band structure of the silicon at 5e20 doping, conduction bands go 0.145 eV below fermi energy level, which can make transmission spectrum. These doping (1e20, 5e20, 1e21) transmission spectrum went well with bulk silicon(not poly-silicon), but didn't meet the expectation at grain boundary scattering.

Should I just adjust the energy point at transmission parameter in grain boundary scattering instead of doping?
Since doping changes the fermi level in bandgap, I assume that adjusting fermi energy level point in transmission parameter would make similar results.

And another thing is that the calculation keeps show that it does not support HSE06 for grain boundary scattering.
I am posting a error code below.

File "zipdir/SentaurusMaterialsWorkbench/GrainBoundaryScattering/GrainBoundaryScattering.py", line 488, in __init__
                                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "zipdir/SentaurusMaterialsWorkbench/GrainBoundaryScattering/GrainBoundaryScattering.py", line 488, in __init__
NL.ComputerScienceUtilities.Exceptions.NLValueError: GrainBoundaryScattering is not supported for HSE06.
NL.ComputerScienceUtilities.Exceptions.NLValueError: GrainBoundaryScattering is not supported for HSE06.
NL.ComputerScienceUtilities.Exceptions.NLValueError: GrainBoundaryScattering is not supported for HSE06.
                                ^^^^^^^^^^^^^^^^^^^^^^^^
Thank you!

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5585
  • Country: dk
  • Reputation: 101
    • View Profile
    • QuantumATK at Synopsys
Re: Grain Boundary Scattering doping problem
« Reply #5 on: September 5, 2024, 23:44 »
I am not sure if maybe the HSE check (and hence error) is a legacy from when we didn't support HSE in NEGF. Anyway, a much faster way to get the right band gap in Si would be to use DFT+1/2 or MetaGGA, but also you don't really need the band gap to be perfect if you are looking at a heavily doped structure, since only transmission near the Fermi level will be relevant. Therefore only the curvature of the bands will be important, and those are reproduced well by LDA or GGA in Si (not so in Germanium!).

But there is a more fundamental question here, coming from the first error you got. It would be interesting to see the full log file for the run with 5e20 or 1e21. It should be able to run through all configurations and the NEGF + bulk calculations, and the error only appears in the post-processing. If so, then you should have the HDF5 file with all data, and we can do the computation of the resistance manually perhaps, or with a modified script. So, check the output HDF5 and log file first.

Offline Lim changmin

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: kr
  • Reputation: 0
    • View Profile
Re: Grain Boundary Scattering doping problem
« Reply #6 on: September 20, 2024, 05:00 »
Thank you for the tips!

I am sending the log and hdf5 file for 5e20, and 1e21 doping respectively. You can see the doping concentration in the title of the file.
I used GGA.PBE at 5e20 and MGGA.R2SCAN at 1e21.

I will also try to find some ways to solve the issue.

Thank you

Offline Lim changmin

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: kr
  • Reputation: 0
    • View Profile
Re: Grain Boundary Scattering doping problem
« Reply #7 on: September 20, 2024, 05:05 »
I think there is some error occurred while uploading hdf5 file. So I uploaded log files first.

For hdf5 file, I uploaded the files as py output files.

The file attached in this reply is hdf5 files

Thank you

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5585
  • Country: dk
  • Reputation: 101
    • View Profile
    • QuantumATK at Synopsys
Re: Grain Boundary Scattering doping problem
« Reply #8 on: September 21, 2024, 00:34 »
The good news is that all the heavy calculations have completed, we don't need to repeat them.
We can also see that, as expected, the reflection coefficient is 1.0, which of course translates to an infinite GB resistivity.

The HDF5 file will generally be too large to attach here. But in that file, there should be a Transmission Spectrum, maybe 2, for bulk and device, respectively.

I can see the run only takes ~1 hour, I can try it myself, if you send the INPUT Py file (for 1e21).

Offline Lim changmin

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: kr
  • Reputation: 0
    • View Profile
Re: Grain Boundary Scattering doping problem
« Reply #9 on: September 21, 2024, 08:55 »
Thank you for your help!!

I posted the py file of 5e20 and 1e21 doping polycrystal structure!!

I hope this will help to solve the problem!!

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5585
  • Country: dk
  • Reputation: 101
    • View Profile
    • QuantumATK at Synopsys
Re: Grain Boundary Scattering doping problem
« Reply #10 on: October 1, 2024, 01:18 »
I made some modifications to the script, most notably I switched the DFT calculator to a Slater-Koster tight-binding and used a Tersoff potential to relax it. That way I can do a full run in less than a minute on my laptop, so this is a lot easier to use for troubleshooting. The basic principles are exactly the same as in DFT though.

Now, I also get r=1 in this case, but again for obvious reasons: the entire transmission is basically zero.

I have a suspicion that this is quite simply because the doping tag is not promoted internally when the configurations are generated. The whole workflow was done for metals so this particular use case was not considered, although propagating tags would in general be a good idea, for other purposes too. Let me check with our developers.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5585
  • Country: dk
  • Reputation: 101
    • View Profile
    • QuantumATK at Synopsys
Re: Grain Boundary Scattering doping problem
« Reply #11 on: October 2, 2024, 01:22 »
As suspected, the tags are not transferred, and modifying the code to allow this would be very hard. So, you are basically left with the option to put together the workflow yourself. It's actually not that complicated, the study object primarily makes it easy to do for a large amount of different grain boundaries, but the steps it performs for each one are described in the manual:
https://docs.quantumatk.com/manual/Types/GrainBoundaryScattering/GrainBoundaryScattering.html#grainboundaryscattering

Note also that you need to passivate the dangling bonds in the grain boundary with hydrogen, else you will have very strong scattering from these. This is also something the automatic flow is not designed to do.

Offline Lim changmin

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: kr
  • Reputation: 0
    • View Profile
Re: Grain Boundary Scattering doping problem
« Reply #12 on: October 4, 2024, 09:37 »
Thank you for your answer. But I am little bit confused with your answer about "put together the workflow yourself".

Does it mean that I have to used the analysis in workflows part?

Also, would it be little bit more probable if I use the nlread settings of doped structure in SMW import?

For example, the grain boundary scattering needs optimization of the structure in advance, so what I am planning is
1. optimize the structure.
2. Put the structure into the builder and dope it with 1e21 or 5e20.
3. Than using the nlread setting from python

I posted the python file that I mentioned above.
Would it be better if I can arranged the code like that?

Thank you.




Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5585
  • Country: dk
  • Reputation: 101
    • View Profile
    • QuantumATK at Synopsys
Re: Grain Boundary Scattering doping problem
« Reply #13 on: October 8, 2024, 19:46 »
What I meant was that instead of using the SMW workflow, just perform each task separately, as listed on the manual page, and then compute the interface resistance from these quantities:

  • Construct the device configuration using the GB generator and the relaxed bulk configuration.
  • Convert the device configuration to a bulk configuration as in OptimizeDeviceConfiguration.
  • Perform structural relaxation of the bulk configuration as in OptimizeDeviceConfiguration. Only the central atoms around the grain boundary will be relaxed. The length of the region with structural relaxations is determined by the input parameters optimization_region_length.
  • Convert the relaxed bulk configuration to a device configuration
  • Perform a self-consistent DFT-NEGF calculation for the relaxed device configuration
  • Total energy of relaxed DeviceConfiguration.
  • Total energy of electrode configuration.
  • TransmissionSpectrum calculation for the device configuration
  • TransmissionSpectrum calculation for the pristine (electrode) structure (‘Sharvin resistance’),

If some step is unclear, let me know.

Offline Lim changmin

  • Heavy QuantumATK user
  • ***
  • Posts: 28
  • Country: kr
  • Reputation: 0
    • View Profile
Re: Grain Boundary Scattering doping problem
« Reply #14 on: October 17, 2024, 06:46 »
Dear Anders Blom

Thank you for your advice.
I have some questions and a new issue while calculating the grain boundary.

1. From your reply, at number 6,7 is there a reason to calculate the total energy of relaxed structure? Can I just run over to 8,9 instead without calculating total energy?

2. I calculated a structure with 1e21 doping tag attached, and grain boundary scattering actually worked. But only for this structure. I tried other structures and they gave infinite resistance results.
I attached the py, log file and screenshot of the 1e21 doping structure results. As you can see, I calculated the grain boundary scattering with 1e21 doping and 0eV. But the calculation was successful.  Hope this might help.