SBUP3-Ultrafast is a research workflow for modeling femtosecond light interaction with bulk GaAs by coupling microscopic carrier dynamics to macroscopic pulse propagation. The repository combines transition inputs, a multi-transition Semiconductor Bloch Equation solver, a UPPE propagation stage, and validation plus plotting utilities into one reproducible pipeline. It is designed for practical collaboration: colleagues can run, inspect, and compare results with minimal setup while still keeping access to advanced calibration, dispersion, and DFT regeneration paths. Outputs include time-domain fields, optical-response spectra, convergence metrics, publication-ready figures, and machine-readable reports for downstream analysis, benchmarking, and traceability across experiments in shared collaborative development cycles.
Use one command from the repo root:
./run_all.shThis runs end to end:
- dependency setup/check
- SBE
- UPPE
- plots
- validation report
- Python 3.10+
bash- For optional DFT regeneration only: GPAW in a conda environment
Conda:
conda env create -f environment.yml
conda activate sbup3Local venv:
python3 -m venv .venv
.venv/bin/pip install numpy matplotlibDefault portable run:
./run_all.shCommon variants:
# Coupled loop mode
./run_all.sh --mode coupling -- --iters 3
# Full mode (sequential + coupling)
./run_all.sh --mode full
# Use an existing Python env without creating/updating .venv
./run_all.sh --no-setup --python /path/to/pythonOptional DFT regeneration (requires GPAW env):
./run_all.sh --run-dft --dft-env gpaw --mode sequentialIf you prefer direct Python entry points:
# Sequential SBE -> UPPE + plots + validation
python analysis/run_pipeline.py --mode sequential --plots --validate
# Coupling + plots + validation
python analysis/run_pipeline.py --mode coupling --plots --validateValidation only:
python analysis/validate_sbup3.py --ref-csv analysis/data/gaas_dielectric_reference.csvUnit tests:
python -m unittest discover -s testssbe/*.npyandsbe/transition_model.jsonuppe/outputs/*.npyanalysis/figures/*.pnganalysis/reports/*.json
analysis/pipeline, plotting, validation, calibration utilitiessbe/SBE solveruppe/UPPE propagation and dispersioncoupling/iterative SBE/UPPE loopdft/GPAW-based ground-state and response scriptstests/unit testsdocs/manuscript and extended notes
Detailed knobs (calibration, probe settings, multi-transition controls, dispersion switches, manual DFT/LR-TDDFT commands) are documented in docs/advanced.md.