PAOFLOW.topology.do_fermisurf#
Functions#
|
Identify Fermi-surface bands and write BXSF and NPZ output files. |
Module Contents#
- PAOFLOW.topology.do_fermisurf.do_fermisurf(data_controller)[source]#
Identify Fermi-surface bands and write BXSF and NPZ output files.
- Parameters:
data_controller (DataController) – Object providing
data_arraysanddata_attributes. Required array:E_k(shape(nkpnts, nawf, nspin)), distributed over MPI pools. Required attributes:nawf,nk1,nk2,nk3,nspin,fermi_up,fermi_dw,npool,opath,verbose.- Returns:
On rank 0, writes the following output files for each spin channel
ispin:FermiSurf_{ispin}.bxsf: BXSF file containing all bands that intersect the Fermi window[fermi_dw, fermi_up].Fermi_surf_band_{i}_{ispin}.npz: compressed NumPy archive with the band eigenvalues on the full 3-D k-grid (keynameband, shape(nk1, nk2, nk3)), whereimatches the compact per-band BXSF suffixFermi_surf_band_{i+1}.bxsf.
- Return type:
None
Notes
A band is included in the Fermi surface if at least one k-point lies below
fermi_upand at least one lies abovefermi_dw, i.e. the band energy range overlaps the window[fermi_dw, fermi_up]. This covers three cases:the band crosses
fermi_upfrom below,the band crosses
fermi_dwfrom above, orthe band lies entirely within the window.
The gathered eigenvalue array is reshaped to
(nk1, nk2, nk3, nawf, nspin)before the BXSF writer is called. Only MPI rank 0 performs the band selection, the file I/O, and the NPZ saves; all ranks synchronise at the end viaMPI.Barrier.