shankar1729 / jdftx

JDFTx: software for joint density functional theory
http://jdftx.org
82 stars 54 forks source link

electron-phonon matrix elements for a spin polarized system #293

Closed dijasila closed 9 months ago

dijasila commented 1 year ago

http://jdftx.org/EphMatrixElements.html

For a spin polarized system, what changes should I make in the WannierEph.py script to plot the Eliashberg spectral function?

shankar1729 commented 1 year ago

If you are doing a spin-polarized calculation in vector-spin mode (i.e. with spin-orbit coupling), then the script should work unchanged in logic, except for changing the spin degeneracy factor g_s to 1.

If your are doing it in z-spin mode, then the wannier function generation part will generate separate wannier files for the up and down polarizations, suffixed Up and Dn. Correspondingly, modify the WannierEph.py script to loop over the two spin polarizations and collect contributions to the Eliashberg spectral function from Up and Dn spins. Also, you will need to update the spin degeneracy factor g_s to 1 in the DOS and spectral function expressions.

If you update this and want to contribute a pull request with an extension to the tutorial, that will be greatly appreciated!

Best, Shankar

shankar1729 commented 1 year ago

For an SOC run, you use relativistic orbital specifications eg. p+(+1/2) as discussed in the DOS command, if you are using atomic orbital projections, or add sUp and sDn at the end of the Gaussian orbitals to make spinorial projectors.

Best, Shankar

On Tue, Aug 22, 2023 at 8:41 PM Sajid Ali @.***> wrote:

Hi Shankar, many thanks, Yes, I am happy to alter the script and do the pull request. May I ask another question, what is the correct syntax for generating Wannier functions from SOC calculations. My understanding is that for a spin-z calculation, this syntax should be wannier-center Gaussian 0.196010218 0.903567236 0.289100759.....

But what it would be for an SOC run?

— Reply to this email directly, view it on GitHub https://github.com/shankar1729/jdftx/issues/293#issuecomment-1689099072, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHASII53TWM2X5JB3YZA4TLXWVGUDANCNFSM6AAAAAA3XZMRLU . You are receiving this because you commented.Message ID: @.***>

dijasila commented 1 year ago

elph.zip

Hi Shankar, please take a look at the WannierEph.py script for a spin-z calculation. Does that sound right to you. I have just tried to collect the contribution from spin-up and down channels. It does not seem to produce the correct results though, so apparently there is some mistake that I have made.

Note: this is not a clean script, once we agree on a finalized script, I will clean it out before making the merge request.

shankar1729 commented 1 year ago

I notice that you have a sum over up and dn hamiltonians, and P matrix elements similarly. This is incorrect: you need to process the up and dn electrons separately. Essentially, use the logic in the original script, within a loop over suffix = "Up" and "Dn" (suffix added to each file name read in like "wannier.mlwfH").

Collect contributions to the Eliashberg spectral function independently from Up and Dn: so only the spectral function adds up.

Then, the final calculation of resistivity from the spectral function is unmodified.

Best, Shankar