-
Notifications
You must be signed in to change notification settings - Fork 8
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
btd inversion to negf.py #106
base: main
Are you sure you want to change the base?
Conversation
Thanks for the PR, it looks great!
You can keep pushing commits to your branch and they will appear here. |
I think i have cloned a wrong version of the hubbard code, the rest of the code still has the energy-loops, so this code doesnt make sense right now |
Added some more stuff |
I dont understand, is this related to the "batching" of the energy-points? :) |
Yes, but perhaps I misunderstood its purpose, I just saw you did |
Ahh that must be Sofias doing, i didnt know this was in there already! :) |
Yes I added the |
The way I think of this is that you also build up the entire |
Yes zS - H - sum(Sigma) is build for all the energy-points given, but I guess it only stores the A_i, B_i and C_i blocks so this only scales linearly with n_orbitals and linearly with E-points... I guess having call the matrix operations on these 4-dim arrays are the tradeoff of having to do this in python if we still want some speed? :) |
I think the speed only boils down to being important when the sizes of the blocks are small in which case the overhead becomes high. For larger matrices/blocks (say 400) I wouldn't suspect much of an overhead. This is about how a user would use the routines, not so much about efficiency (which users can control with the parameter). |
Just tried to see how far i could push my laptop: |
OK that seems undoable if we want to run calculations locally in our laptops... |
Hi, I have something that is partially working right now on the graphene strip, but im encountering an error where the self-energy parsed to the _G function has shape "(4,)" instead of the usual (4,4). Its not really a problem to tell the code what to do when it gets this parsed, but is it on purpose that a self-energy array with this shape is given? |
Hi @AleksBL which script are you using to test it? I for instance checked |
Okay cool, ill get back to it soon :) |
…tion or the full matrix, also divided the energy contour arrays in blocks to avoid using too much memory
…EQ correction integrals
…tly faster. (test-BTD_2.py)
Added the BTD inversion to NEGF.py
Edit: forgot to add the tbt flag to the _G calls in the NEGF class, im a githubnoob and it wont allow be to add this for some reason.....