-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scissor operator to conduction band #83
Conversation
Dear Martí, Thanks for creating this PR. I will go over it in the coming days and get back to you if I have questions. Best regards, |
Dear Martí, I have begun reviewing the PR. One general comment: in your current design, one has to keep track of where A second point. I have a bunch of new changes that I will soon merge from the branch Best, |
Dear Nakib, You're right, I've fully forgotten about band plotting; indeed, your solution looks cleaner. Moreover, one thing that I forgot about is that it should be forbidden to use the scissor operator if the system is defined as metallic. Best regards, Martí PS: Shall I do changes over Green branch to prevent merging conflicts then? Anyway, I'll take a look at the additions :) |
Dear Martí, I agree that it should be the Regarding your comment about metallic systems, I agree. You can simple enforce the scissor amount to be zero if Right now Many thanks for contributing! Best regards, |
Dear Nakib, I've rewritten it on top of develop branch with all the modifications we've discussed. For such changes, I've supposed that wann%numwannbands must be equal to el%numbands. Is this last assumption always true ? Martí |
Yes, Could you please share your outputs for the silicon case with and without the scissor shift? In particular, if you set up a calculation such that only the conduction bands are transport active (you can do this by setting p.s. I have set up a regression test, but the necessary input files are too large for sharing on github; I'm working on a solution for this. Best, |
Dear Nakib, I've conducted the test as implemented in my version of the repository with and without the scissor applied (see noscissor.log and scissor.log, for the one without and with the scissor operator applied, respectively), and as you can see the transport coefficients are different. I've tracked back the difference and is due to the Shall I regularize the energies to build and compute delta functions by removing the chemical potential, so that, the only transitions in which delta would become scissor dependent would be those involving valence and conduction states? Best regards, Martí |
Forgot about the regularization idea, it makes no sense. |
Hi Martí, Let me think about this for a bit. I will get back to you soon. Best |
Inspecting the files Best, |
Dear Nakib, The difference (error) grows with the scissor amount but it seems to somehow saturate. See the attached files: Additionally, as reference of the values expected to take this scissor operator in common semiconductors, take the case of Si (Ge), which requires around 0.6 (0.8) eV scissor to match the experimental gap. This last is especially crucial for Ge, which has no band-gap within DFT-LDA, and thus will have nonphysical transitions allowed without such a correction. Another option besides the scissor operator (maybe a future enhancement), and to be fair the physically correct one (as you remove empirical stuff) would be to allow Best regards, Martí |
Thanks, Martí. The numerical issue is a bit worrisome, and I will take a closer look at how the triangular weights are calculated. Perhaps one can use some tricks there to remove this issue coming from scissor shifts. I noticed that you have left it up to the user to scissor shift their reference energy and chemical potential directly at the level of the input. I agree with this choice. I will make a note of this in the documentation. Regarding GW corrections, I agree. In fact, GW will correct the band mass as well, which is critical for mobility calculations. I hope to have updates regarding this soon. I am currently setting up github actions for this repo and will accept this merge request right after. Thanks again for your contribution! |
Added scissor operator to conduction band, for cases in which such a correction might be essential, like Ge. Tested against test case (Si) but with n-doping (log files attached). The used scissor operator for this case was that necessary for gap to match that of Varshni's model [Y. Varshni, Physica 34, 149 (1967)] for Si at 300 K.
noscissor.log
scissor.log