PAOFLOW.pyskeaf.runner#

High-level driver that orchestrates a SKEAF run for one (θ, φ) angle.

Phase 4: run_at_angle glues slice / orbit / averaging modules together. Phase 5: run_skeaf consumes a PAOFLOW.pyskeaf.config.SkeafConfig directly, including the hvd H-vector setup and the hvd == 'r' rotation sweep, and writes all five Fortran-compatible output files. Phase 6: optional joblib parallelism over the angle sweep (cfg.n_jobs) plus structured logging progress reports.

The Fortran main program around skeaf_v1p3p0_r149.F90 lines 1100–2950 is the reference for the call sequence.

Attributes#

Classes#

BXSFRun

The calculation or skip outcome for one PAOFLOW BXSF file.

Functions#

run_at_angle(bxsf, theta, phi, *, numint[, ...])

Run a single-angle SKEAF analysis.

run_angle_sweep(bxsf, angles_rad, *, numint, **kwargs)

Convenience wrapper: call run_at_angle() for each row of angles_rad.

run_skeaf(config[, bxsf, write_files, output_dir, ...])

Top-level driver: run SKEAF as defined by config.

run_paoflow_bxsf_files(config, *, input_dir[, ...])

Run selected PAOFLOW BXSF bands whose energy ranges contain E_F.

Module Contents#

PAOFLOW.pyskeaf.runner.logger[source]#
class PAOFLOW.pyskeaf.runner.BXSFRun[source]#

The calculation or skip outcome for one PAOFLOW BXSF file.

path: pathlib.Path[source]#
minimum_ev: float[source]#
maximum_ev: float[source]#
fermi_energy_ev: float[source]#
result: PAOFLOW.pyskeaf.results.SKEAFResult | None = None[source]#
skipped_reason: str | None = None[source]#
property calculated: bool[source]#
PAOFLOW.pyskeaf.runner.run_at_angle(bxsf, theta, phi, *, numint, fermi_energy=None, min_freq_kT=0.0, freq_same_frac=0.01, avg_same_frac=0.05, allow_near_walls=False)[source]#

Run a single-angle SKEAF analysis.

See module docstring for details. Returns a SKEAFResult whose orbits list contains one Orbit per averaged extremum.

PAOFLOW.pyskeaf.runner.run_angle_sweep(bxsf, angles_rad, *, numint, **kwargs)[source]#

Convenience wrapper: call run_at_angle() for each row of angles_rad.

angles_rad has shape (n_angles, 2) with columns (theta, phi). Returns a single SKEAFResult whose orbits list is the concatenation of all per-angle orbits, in the order the angles were given.

PAOFLOW.pyskeaf.runner.run_skeaf(config, bxsf=None, *, write_files=True, output_dir=None, output_suffix='')[source]#

Top-level driver: run SKEAF as defined by config.

Parameters:
  • config – Either a SkeafConfig instance or a path to a config.in file.

  • bxsf – Pre-loaded BXSF dataset. If None, loaded from config.filename.

  • write_files – When True (default) the five Fortran-compatible output files are written to output_dir (cwd if not given).

  • output_dir – Destination directory for output files. Created if missing.

PAOFLOW.pyskeaf.runner.run_paoflow_bxsf_files(config, *, input_dir, filenames=None, all_files=False, output_dir=None, write_files=True)[source]#

Run selected PAOFLOW BXSF bands whose energy ranges contain E_F.

PAOFLOW BXSF grids and the Fermi-energy field in config.in use eV. read_config_in() converts that field to internal Rydberg, so it is converted back to eV here for the eligibility test. Select arbitrary BXSF names with filenames or every *.bxsf in input_dir with all_files=True. If neither is supplied, the legacy filename in config.in is used.

Output files use the trailing numeric band index when present, e.g. results_short_1.out for Fermi_surf_band_1.bxsf. Arbitrary filenames use their complete stem, e.g. results_short_manual_name.out.