# Dos representaciones de BDF2 en GLM

Ambas variantes están implementadas y son BDF2 matemáticamente. «Directo en `.din`» describe dónde aparece la historia, no un método numérico explícito. Se conservan IDs separados y la misma definición matemática en el catálogo compartido.

| ID | Sistema que recibe Calcula | Historia |
| --- | --- | --- |
| `20` | Euler implícito, con datos efectivos | Perl conserva dos estados y los combina antes de cada consulta. |
| `21` | Copia futura del modelo y relaciones matriciales BDF2 | La historia figura como variables declaradas en las ecuaciones de Calcula. |

## GLM 20: representación efectiva conservada

`--din-bdf2` o `--din-glm 20` escribe `-BDF2.din`. Comprueba que RK 1 del dato sea Euler implícito sin `bc`, evitando cambiar silenciosamente de método si el usuario modifica la tabla. Desde los bloques BDF2 calcula `y_ef=U*H`, `h_ef=h*A[0][0]` y `t_ef=t+h-h_ef`. El sistema de Euler resuelve el futuro físico correcto. No admite `DT` en el modelo ni convoluciones.

Los nuevos archivos llevan el descriptor GLM completo comentado; siguen funcionando los anteriores con `metodo BDF2` y `# historia`, donde `prev_y` era solo un metadato y no una variable de Calcula.

## GLM 21: representación directa

`--din-bdf2-directo` o `--din-glm 21` escribe `-BDF2-DIRECTO.din`. El generador común C escribe las relaciones `Y=h*A*F+U*H` y `H_nuevo=h*B*F+V*H`. A paso uniforme equivalen a `3*p_y-4*y+y_anterior=2*h*dy_futuro`. `glm_h1_y` es la historia de entrada real; `glm_next1_y` es la memoria nueva. Los coeficientes `glm_a/u/b/v/c_*` son datos suministrados en cada paso. El tiempo de la etapa es `t+h` y no se toma de la suma de la fila de `A`.

Ambas variantes arrancan con Euler implícito, usan paso fijo y recalculan coeficientes para el último paso desigual. GLM 21 no depende de ninguna tabla RK de la fuente. Mantiene las restricciones del alcance inicial: sin adaptación, listas, RERUN, convoluciones ni topologías que requieran `.mdin`.

## Pruebas y documentación

`tests/glm_matricial.t` compara ambas trayectorias paso a paso, las contrasta con una recurrencia independiente y verifica orden dos, tiempo futuro, último paso desigual, un caso rígido, otro no lineal y las ecuaciones reducidas del circuito de seis elementos. También prueba el `.din` autosuficiente, metadatos incompletos y fallos sin publicación parcial. `tests/bdf2.t` conserva las regresiones de GLM 20.

El contrato actual está en [GLM_CONTRATO.md](GLM_CONTRATO.md), el análisis que motivó el cambio en [REVISION_GLM_PLAN.md](REVISION_GLM_PLAN.md) y la especificación inicial en [PLAN_BDF2.md](PLAN_BDF2.md).
