Architecture¶
The application follows a straightforward desktop workflow:
the main window edits an in-memory
InputCardsobjectthe current cards are written to a Magboltz input file
a
QProcessrunsmagboltzand streams the input through stdinthe captured stdout is parsed into a
RunResultstructurethe result becomes available to export dialogs and plot windows
Main layers¶
Data model¶
The data layer lives in magboltz_gui.data and contains two central pieces:
GasDatabasefor the bundled gas lookup tableInputCards/InputGasfor the editable Magboltz card state
Runtime and parsing¶
The runtime helpers live in magboltz_gui.util:
parserreads and writes Magboltz card filesprocessmanages the live subprocess tied to the main windowoutput_parserturns raw stdout into a structuredRunResultrun_resultdefines the nested dataclasses used by export and plotting
Export layer¶
Exports are implemented in two small layers:
export_typesdefines the public export modes and option dataclassesexport_controllerturns aRunResultinto CSV, JSON, or XML output
GUI layer¶
The Qt layer is implemented in magboltz_gui.window. The GUI classes are
described in GUI Layer; they are intentionally not autodocumented here
because they depend directly on generated Qt bindings and runtime GUI imports.