-
Notifications
You must be signed in to change notification settings - Fork 0
ES Distribuciones
⚙️ Página generada — no la edites aquí. Origen:
BHF_DISTRIBUTION.md. Corrígela en el repositorio y el wiki se regenera solo.
Motor de distribución continua integrado en la GUI y disponible por CLI y API Python.
-
mossbauer_distribution.py: motor Hesse–Rübartsch (P(BHF) ≥ 0+ regularización Tikhonov/TV). -
mossbauer_ws5.py: lectura/doblado de.ws5y sidecars Normos. -
mossbauer_bhf_pipeline.py: función de alto nivel para endpoint web. -
fit_bhf_distribution_cli.py: script CLI para pruebas y generación de.dat/.png.
| Modo | Variable distribuida | Uso típico |
|---|---|---|
P(BHF) |
Campo hiperfino |
Ferritas, óxidos con desorden magnético |
P(ΔEQ) |
Desdoblamiento cuadrupolar | Silicatos, vidrios, fases amorfas paramagnéticas |
P(δ) |
Desplazamiento isomérico | Distribución de entornos electrónicos |
P(BHF, ΔEQ) 2D |
Campo + cuadrupolo | Nanopartículas con acoplamiento |
P(δ, ΔEQ) 2D |
IS + cuadrupolo | Dobletes anchos con variación simultánea de centro y separación |
P(BHF, δ) 2D |
Campo + IS | Fases magnéticas con distribución de entornos (sensible a calibración) |
Todos los modos admiten componentes nítidas simultáneas (sextetes, dobletes o singletes con amplitud libre no negativa ajustada junto a la distribución).
Penaliza la curvatura de la distribución:
donde alpha en la GUI; botones de preset (fino / medio / suave) y L-curve α para estimación automática por máxima curvatura o GCV.
Penaliza la variación total de la distribución:
Favorece distribuciones con transiciones abruptas (mezcla de pocas fases bien definidas), a diferencia de Tikhonov que suaviza. Seleccionable en el panel de opciones del modo distribución.
python3 fit_bhf_distribution_cli.py muestra.ws5 \
--bmin 0 --bmax 50 --nbins 50 \
--gamma 0.18 --alpha 0.01 \
--plot --scan-alphaSalidas:
-
*_bhf_spectrum.dat: velocidad, datos, ajuste, residuo, cuentas dobladas. -
*_bhf_distribution.dat: variable (BHF o ΔEQ), P, P normalizada. -
*_bhf_summary.json: parámetros y métricas. -
*_bhf_plot.png: espectro + residual + P(BHF). -
*_bhf_alpha_scan.dat/.png: L-curve si se usa--scan-alpha --plot.
El CLI cubre los mismos modos que la GUI (mismo motor):
# P(ΔEQ) con BHF fijo (0 = doblete):
python3 fit_bhf_distribution_cli.py muestra.adt --variable quad --bmax 3
# Formas: histograma (por defecto), gaussiana, vbf (--vbf-components N), binomial:
python3 fit_bhf_distribution_cli.py muestra.adt --shape vbf --vbf-components 2
# Regularizador del histograma: tikhonov (defecto), tv, maxent:
python3 fit_bhf_distribution_cli.py muestra.adt --reg-mode maxent
# Kernel Voigt y correlación δ(H) / ΔEQ(H):
python3 fit_bhf_distribution_cli.py muestra.adt --profile Voigt --voigt-sigma 0.06 \
--delta-slope 0.002
# Distribución 2D P(BHF, ΔEQ) (matriz + ejes + momentos en el summary):
python3 fit_bhf_distribution_cli.py muestra.adt --dist-2d --qmin -1 --qmax 1Para el ajuste discreto headless (plantilla de sesión + espectro) está
mossbauer_fit_cli.py, con --bootstrap N (errores Monte Carlo),
--profile-likelihood (intervalos asimétricos 1σ/2σ) y serie con warm-start
al pasar varios espectros. Ambos CLIs están documentados en el manual
(docs/manual_en/main.pdf, apéndice «Command-line tools»).
En la GUI, con modo P(BHF) activado, se puede activar sumar componentes activos nítidos. Los componentes activos 1–3 se suman a la distribución como singlete, doblete o sextete. El ajuste recalcula P(BHF) y la amplitud de cada nítido simultáneamente.
Para añadir una fase tipo Fe metálico residual con BHF fijo desde CLI:
python3 fit_bhf_distribution_cli.py muestra.ws5 \
--bmin 15 --bmax 45 --nbins 50 \
--alpha 0.1 --gamma 0.18 \
--sharp-bhf 33 --sharp-gamma 0.14 \
--plot --scan-alphaCuando la muestra es gruesa (absorción > ~15 %), se puede activar la corrección de espesor también en modo distribución. El modo distribución usa una transformada inversa que recupera la linealidad en los pesos:
El solver regularizado trabaja sobre docs/correccion_espesor.tex para la derivación completa.
from mossbauer_bhf_pipeline import fit_ws5_bhf_distribution
payload = fit_ws5_bhf_distribution(
"muestra.ws5",
bmin=0,
bmax=50,
nbins=50,
alpha=1e-2,
gamma=0.18,
sharp_bhf=[33.0], # opcional
)
print(payload["BHF_centers"])
print(payload["probability"])
print(payload["fitted_curve"])-
alphaes el parámetro crítico: usar--scan-alphao el botónL-curve αde la GUI para elegirlo. - Si
B_min=0, el ajuste puede usar bajo campo para absorber contribuciones no magnéticas. Para distribución magnética pura, probar--bmin 15o--bmin 20. -
delta,quadygammason globales/fijos para toda la distribución en el modo 1D. - Para distribuciones 2D: la malla puede ser grande (
$N_x \times N_y$ bins); usar regularizaciones$\alpha_x$ ,$\alpha_y$ independientes y verificar estabilidad variando ambas. Verdocs/distribuciones_2d_mossbauer.tex. - Distribuciones con IS (
P(δ),P(δ, ΔEQ)): muy sensibles a calibración de velocidad y folding point. Verdocs/distribuciones_is_mossbauer.tex.
© 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