-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
⚙️ Generated page — do not edit here. Source:
docs/architecture_en.md. Edit it in the repository and the wiki rebuilds itself.
Fitbauer separates the Mössbauer computation from the graphical interface. The practical rule is:
core/ → physics, fitting, reconstruction, validation and result views
gui/ → widgets, menus, sessions, render and user orchestration
CLIs → headless clients of core/
Pure code, without Qt/Tk:
-
physics.py: line shapes and component absorption. -
fit_engine.py: discrete fitting and bootstrap. -
mossbauer_distribution.py: fitting ofP(BHF)/P(ΔEQ)distributions. -
session.py:ModelStateand headless session. -
reconstruction.py: reconstruction of models, residuals, subspectra, areas and distribution curves. -
validation.py: structural and parameter-bounds validation. -
result_views.py: result reading API for reports and panels. -
params.py: canonical registry of parameters, defaults and bounds.
Modular Qt interface. It must not contain physics engines or heavy fitting logic.
-
state.py: GUI snapshots (ComponentViewState,CalibrationViewState,DistributionViewState,UiActionState, etc.). -
fit_workflow.py: common GUI fitting flow: progress, errors and render. -
model_workflow.py: loading/folding, construction ofFitState, plot/info update. -
discrete_fit.pyanddistribution_fit.py: specific orchestration of each mode. -
session_io.py: JSON session viaProjectState. -
reports.py: user outputs backed bycore.result_views. -
compat.py: historical compatibility of symbols/patches from the oldmossbauer_qt.py.
Thin entry point. It should be limited to creating MossbauerQtWindow, re-exporting the necessary historical symbols and calling main().
WS5/ADT file
↓ core.folding / core.data_io
FileState
↓ GUI snapshots
ModelState / FitState
↓ core.fit_engine or distribution
FitResult / BhfDistributionFit
↓ core.reconstruction + core.result_views
Canvas / reports / exports
The GUI avoids reading widgets directly from the logic. Each important panel exposes a snapshot:
-
CalibrationPanel.to_view_state()→CalibrationViewState -
ComponentPanel.to_view_state()→ComponentViewState -
DistributionPanel.to_view_state()→DistributionViewState - global actions →
UiActionState
The snapshots are read-only. Writes still occur on widgets when results have to be applied, sessions loaded or menus synchronized.
Both modes share:
- progress dialog,
- error handling,
- result render,
-
GuiFitResultandRuntimeResultState.
The physics is not merged: the discrete mode uses core.fit_engine; the distributions use mossbauer_distribution.py.
Before fitting, the GUI calls core.validation:
- discrete/bootstrap:
validate_fit_state(...), - distribution:
validate_distribution_parameters(...).
The bounds come mainly from core.params.
Some tests/extensions patch symbols in mossbauer_qt.py. The compatibility is centralized in gui.compat.frontend_attr(...) and in HistoricalRuntimeCompatMixin. New code must depend on the real modules, not on those re-exports.
© Jorge Sánchez Marcos, Nieves Menéndez González — Departamento de Química Física, UAM · Wiki generado desde docs/ para Fitbauer v5.0.0
Fitbauer v5.0.0
Start
- Home
- Installation
- User flows Data
- Folding
- Calibration (33 T)
- Spectrum comparison Fitting
- Distribution fitting
- Peak detection
- Profile likelihood
- Batch fitting Reference
- Command-line tools
- NORMOS (.JOB)
- Session format
- Sextet model (spec)
- Architecture
Inicio
- Inicio
- Instalación
- Flujos de usuario Datos
- Plegado (folding)
- Calibración (33 T)
- Comparación de espectros Ajuste
- Distribuciones
- Detección de mínimos
- Verosimilitud perfilada
- Ajuste en serie Referencia
- Línea de comandos
- NORMOS (.JOB)
- Formato de sesión
- Modelo de sextete (spec)
- Arquitectura