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

0 Members and 1 Guest are viewing this topic.

#### Lim changmin

• Regular QuantumATK user
• Posts: 23
• Country:
• Reputation: 0
##### 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

#### Anders Blom

• QuantumATK Staff
• Supreme QuantumATK Wizard
• Posts: 5519
• Country:
• Reputation: 89
##### 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...

#### Lim changmin

• Regular QuantumATK user
• Posts: 23
• Country:
• Reputation: 0
##### 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.

#### Anders Blom

• QuantumATK Staff
• Supreme QuantumATK Wizard
• Posts: 5519
• Country:
• Reputation: 89
##### 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.

#### Lim changmin

• Regular QuantumATK user
• Posts: 23
• Country:
• Reputation: 0
##### Re: Grain Boundary Scattering doping problem
« Reply #4 on: September 2, 2024, 15:23 »
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!

#### Anders Blom

• QuantumATK Staff
• Supreme QuantumATK Wizard
• Posts: 5519
• Country:
• Reputation: 89
##### 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.