PAOFLOW.pyskeaf.results#
Result dataclasses and output writers for PAOFLOW.pyskeaf.
The output filenames are kept identical to those produced by the Fortran
SKEAF (results_freqvsangle.out, results_short.out,
results_long.out, results_orbitoutlines_invAng.out,
results_orbitoutlines_invau.out) so that downstream plotting scripts
(e.g. Cylinder/plot.py) keep working unmodified.
Phase 1 only defines the dataclasses and stubs the writers; full output formatting will be filled in as later phases produce real orbit data.
Classes#
A single extremal orbit on the Fermi surface at a fixed (θ, φ). |
|
Top-level container for a complete SKEAF run. |
Functions#
|
Write the CSV-style |
|
Write the human-readable |
|
Write the verbose |
|
Write the orbit-outline coordinate files in both Å⁻¹ and a.u.⁻¹. |
Module Contents#
- class PAOFLOW.pyskeaf.results.Orbit[source]#
A single extremal orbit on the Fermi surface at a fixed (θ, φ).
Mirrors the per-orbit fields written by the Fortran
sliceextand the final averaging step.- avg_coords_ruc: numpy.ndarray[source]#
- avg_coords_ruc_std: numpy.ndarray[source]#
- rep_contour_xy: numpy.ndarray | None = None[source]#
- outline_au: numpy.ndarray | None = None[source]#
- outline_ang: numpy.ndarray | None = None[source]#
- class PAOFLOW.pyskeaf.results.SKEAFResult[source]#
Top-level container for a complete SKEAF run.
- angles: numpy.ndarray | None = None[source]#
- PAOFLOW.pyskeaf.results.write_results_freqvsangle(result, path='results_freqvsangle.out')[source]#
Write the CSV-style
results_freqvsangle.out(Fortran-compatible).Columns:
Theta(deg),Phi(deg),Freq(kT),mstar(me),Curv(kTA2),Type(+e-h),NumOrbCopy. Numeric format matches Fortranwrite(19, '(F10.6, ",", F10.6, ",", ES14.6, "," ...))at skeaf_v1p3p0_r149.F90:2701.
- PAOFLOW.pyskeaf.results.write_results_short(result, path='results_short.out')[source]#
Write the human-readable
results_short.out(Fortran-compatible).Mirrors the per-angle block at skeaf_v1p3p0_r149.F90:2780–2810. Header comes from
_results_header(). Orbits are written in the order they appear inresult.orbits; the writer detects angle changes by inspecting consecutive(theta, phi)pairs and emits an “ANGLE n of N” delimiter.
- PAOFLOW.pyskeaf.results.write_results_long(result, path='results_long.out')[source]#
Write the verbose
results_long.out(every orbit copy listed).Same structure as
results_short.outbut additionally records the representative-copy slice index and orbit number used for the outline file (Fortran F90:986–988).
- PAOFLOW.pyskeaf.results.write_orbit_outlines(result, path_invang='results_orbitoutlines_invAng.out', path_invau='results_orbitoutlines_invau.out')[source]#
Write the orbit-outline coordinate files in both Å⁻¹ and a.u.⁻¹.
Each orbit’s representative contour is converted from slicing-frame Å⁻¹ to BZ-frame Cartesian Å⁻¹ via the rotation matrix at that angle, then shifted by the centroid’s nearest-RUC-lattice-vector offset (Fortran F90:990–1015). The a.u.⁻¹ file is the Å⁻¹ file scaled by
CONV_AU_TO_ANG(= 0.529177209).Notes
The Fortran outline writer requires
rep_contour_xyto have been populated byPAOFLOW.pyskeaf.runner.run_at_angle(); orbits without a contour are silently skipped.