How majidhaddad02/wien2k_gen works
FORGE is an HPC dispatcher and performance/convergence optimizer for electronic-structure calculations, centered on WIEN2k while exposing multiple backends. The main workflow starts with a user command, parses a calculation and detects hardware, advises and builds parallel configuration, then submits work to a cluster scheduler. Separate branches cover SCF diagnosis, Bayesian and GNN-assisted optimization, and monitoring/history. Source excerpts and the SOURCE INDEX establish several internal links; README-documented capabilities support the broader product branches. Some subsystem internals were not sampled, so those links are documented rather than inferred from names.
Components 21
User entry points
- CLI commands
src/forge/cli_commands - Interactive wizard
src/forge/wizard.py
Case and resource planning
- Case parser
src/forge/core/case_parser.py - WIEN2k backend
src/forge/backends/wien2k/core.py - Hardware detection
src/forge/core/hardware - HPC topology
src/forge/core/topology.py - Resource advisor
src/forge/optimizer/advisor.py - Configuration builder
src/forge/core/builder.py
Execution and schedulers
- Execution pipeline
src/forge/core/pipeline.py - Scheduler planning
src/forge/core/scheduler.py - SLURM submission
src/forge/submit/slurm.py
Optimization and analysis
- SCF diagnosis
src/forge/cli_commands/diagnose.py - Convergence analysis
src/forge/optimizer/convergence.py - Job monitoring
src/forge/optimizer/monitor/engine.py
Learning and history
- Bayesian optimizer
src/forge/optimizer/bayesian/core.py - Execution history
src/forge/optimizer/history.py - K-point predictor
src/forge/ml/gnn_kpoint_predictor.py
Other components
- Operator
- Materials Project
- HPC scheduler
- WIEN2k runtime
Connections 26
- Operator → CLI commands: invokes
README.md - Operator → Interactive wizard: configures
README.md - CLI commands → Case parser: analyzes case
README.md - CLI commands → Execution pipeline: generates configuration
README.md - Interactive wizard → Configuration builder: builds settings
src/forge/wizard.py - Case parser → WIEN2k backend: provides case data
src/forge/backends/wien2k/core.py - WIEN2k backend → Case parser: parses inputs
src/forge/backends/wien2k/core.py - Execution pipeline → Configuration builder: orchestrates build
src/forge/core/pipeline.py - Execution pipeline → Hardware detection: detects resources
src/forge/core/pipeline.py - Execution pipeline → HPC topology: uses topology
src/forge/core/pipeline.py - Execution pipeline → WIEN2k backend: selects backend
src/forge/core/pipeline.py - Execution pipeline → Resource advisor: requests advice
src/forge/core/pipeline.py - Hardware detection → HPC topology: informs topology
- Resource advisor → HPC topology: analyzes resources
src/forge/optimizer/advisor.py - CLI commands → Scheduler planning: plans submission
src/forge/cli_commands/submit.py - CLI commands → Execution pipeline: prepares submission
src/forge/cli_commands/submit.py - CLI commands → SLURM submission: submits job
src/forge/cli_commands/submit.py - SLURM submission → HPC scheduler: queues job
README.md - HPC scheduler → WIEN2k runtime: runs calculation
README.md - CLI commands → SCF diagnosis: diagnoses convergence
README.md - SCF diagnosis → Convergence analysis: analyzes SCF
- Job monitoring → Resource advisor: uses recommendations
src/forge/optimizer/monitor/engine.py - Bayesian optimizer → Execution history: warm-starts from
src/forge/optimizer/bayesian/core.py - Materials Project → K-point predictor: supplies training data
- K-point predictor → CLI commands: predicts k-point grids
- CLI commands → Job monitoring: monitors jobs