-
Notifications
You must be signed in to change notification settings - Fork 0
ES Arquitectura
⚙️ Página generada — no la edites aquí. Origen:
docs/architecture.md. Corrígela en el repositorio y el wiki se regenera solo.
Fitbauer separa el cálculo Mössbauer de la interfaz gráfica. La regla práctica es:
core/ → física, ajuste, reconstrucción, validación y vistas de resultado
gui/ → widgets, menús, sesiones, render y orquestación de usuario
CLIs → clientes headless de core/
Código puro, sin Qt/Tk:
-
physics.py: formas de línea y absorción de componentes. -
fit_engine.py: ajuste discreto y bootstrap. -
mossbauer_distribution.py: ajuste de distribucionesP(BHF)/P(ΔEQ). -
session.py:ModelStatey sesión headless. -
reconstruction.py: reconstrucción de modelos, residuos, subespectros, áreas y curvas de distribución. -
validation.py: validación estructural y de límites de parámetros. -
result_views.py: API de lectura de resultados para informes y paneles. -
params.py: registro canónico de parámetros, defaults y límites.
Interfaz Qt modular. No debe contener motores físicos ni lógica de ajuste pesada.
-
state.py: snapshots de GUI (ComponentViewState,CalibrationViewState,DistributionViewState,UiActionState, etc.). -
fit_workflow.py: flujo común de ajuste GUI: progreso, errores y render. -
model_workflow.py: carga/folding, construcción deFitState, actualización de plot/info. -
discrete_fit.pyydistribution_fit.py: orquestación específica de cada modo. -
session_io.py: sesión JSON medianteProjectState. -
reports.py: salidas de usuario apoyadas encore.result_views. -
compat.py: compatibilidad histórica de símbolos/parches del antiguomossbauer_qt.py.
Punto de entrada fino. Debe limitarse a crear MossbauerQtWindow, reexportar símbolos históricos necesarios y llamar a main().
Fichero WS5/ADT
↓ core.folding / core.data_io
FileState
↓ snapshots GUI
ModelState / FitState
↓ core.fit_engine o distribución
FitResult / BhfDistributionFit
↓ core.reconstruction + core.result_views
Canvas / informes / exportaciones
La GUI evita leer widgets directamente desde la lógica. Cada panel importante expone un snapshot:
-
CalibrationPanel.to_view_state()→CalibrationViewState -
ComponentPanel.to_view_state()→ComponentViewState -
DistributionPanel.to_view_state()→DistributionViewState - acciones globales →
UiActionState
Los snapshots son de lectura. Las escrituras siguen ocurriendo sobre widgets cuando hay que aplicar resultados, cargar sesiones o sincronizar menús.
Ambos modos comparten:
- diálogo de progreso,
- manejo de errores,
- render del resultado,
-
GuiFitResultyRuntimeResultState.
La física no se fusiona: el discreto usa core.fit_engine; las distribuciones usan mossbauer_distribution.py.
Antes de ajustar, la GUI llama a core.validation:
- discreto/bootstrap:
validate_fit_state(...), - distribución:
validate_distribution_parameters(...).
Los límites proceden principalmente de core.params.
Algunos tests/extensiones parchean símbolos en mossbauer_qt.py. La compatibilidad se centraliza en gui.compat.frontend_attr(...) y en HistoricalRuntimeCompatMixin. El código nuevo debe depender de los módulos reales, no de esos reexports.
© 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