Siru en Simusol · Documentación · Manual
La prioridad global de continuación se actualizó en PLAN_CAPACIDADES_MOTOR.md: ampliar primero las capacidades del motor y verificar cada una con un método mínimo. Ese plan reemplaza el orden de ampliaciones futuras de este documento; se conserva aquí el diseño y el registro de los hitos IMEX.
Estado del 2026-10-04: implementados Euler IMEX (ID 1) y ARS222 (ID 2), ambos desde un generador comun de tablas aditivas. Contrato y uso en IMEX.md y ARS222.md. Los pasos 1-5 estan cumplidos para el primer hito. El paso 7 esta parcialmente cumplido: tablas RK aditivas con c comun, orden 1/2 y descriptor v2, conservando lectura de din Euler v1. Siguen pendientes el conductor comun (paso 6), estimadores, adaptacion y PGLM matricial general. Posteriormente se implemento ROS=[1], ROS2 con Jacobiano del campo reducido y algebra lineal propia: ver ROS.md. EXP, TAYLOR, SPLIT y EXTRAP siguen siendo propuestas de sintaxis, no selectores habilitados.
GLM clasico unifica RK y multipaso lineales, pero no representa por si solo las operaciones de todos los integradores. Se mantienen RK y GLM; no se restaura el selector historico INTEGRADOR. Los numeros son identificadores arbitrarios dentro del catalogo de cada familia, no ordenes ni equivalencias entre familias.
| Selector | Alcance | Estado al comenzar este trabajo |
|---|---|---|
| RK | Motor historico | Existente; conservar sus resultados y listas. |
| GLM | Etapas e historia mediante A,U,B,V | Existente; conservar IDs y artefactos. |
| PGLM | Particionado/aditivo, incluido IMEX | Primer caso a implementar: Euler IMEX, ID 1. |
| ROS | Rosenbrock y variantes | ROS=[1] implementado: ROS2 fijo o adaptativo, Jacobiano del campo y LU. Otras variantes pendientes. |
| EXP | Exponenciales | Propuesta; necesita operadores y funciones matriciales. |
| TAYLOR | Derivadas superiores | Propuesta; necesita diferenciacion. |
| SPLIT | Composicion de subavances | Propuesta; necesita subproblemas definidos. |
| EXTRAP | Subdivisiones y extrapolacion | Propuesta; necesita orquestacion y estimador propios. |
Los nombres propuestos no anuncian soporte. Una familia o capacidad no disponible debe producir error, nunca caer silenciosamente en RK0. Ser simplectico no define otra familia: algunos RK ya tienen esa propiedad. Las ecuaciones con retardo, ruido y cambios de topologia requieren infraestructura especifica adicional.
| Pieza | Responsabilidad |
|---|---|
| Generador C, libdin | Modelo, particiones, ecuaciones de las etapas y metadatos. |
| Conductor | Tiempo, intentos, aceptacion/rechazo, salida y coordinacion de eventos. |
| Motor | Etapas, memoria, estimacion de error y politica de paso propias. |
| Calcula persistente | Resolver/evaluar los sistemas; futuras operaciones especializadas si hacen falta. |
El contrato futuro de cada motor distingue preparar, intentar_paso, aceptar_paso, descartar_intento y reiniciar. Un intento no modifica el estado confirmado. La historia fisica y la memoria de un metodo no son lo mismo. No todos los motores necesitan un anillo ni todos pueden reducirse a una sola resolucion ampliada.
Se conserva la cadena independiente .d/.ds -> .din -> simulacion: el artefacto lleva ecuaciones y descriptor en comentarios, sin necesitar el .dat ni un catalogo externo al correr. El Jacobiano interno del resolvedor de Calcula no se presume equivalente al del campo diferencial que necesita Rosenbrock.
Se implementa solo Euler IMEX aditivo sobre un sistema que define un campo diferencial univoco. No es aun un generador de cualquier tabla PGLM. La parte explicita se declara por estado; la implicita es la derivada total menos esa contribucion. No se infiere una particion a partir de las ramas del circuito.
Ejemplo propuesto para .ds:
RUN_CONTROLS
PGLM=[1]
IMEX_EXPLICITA=[X,-X]
SIRU_PASO=[0.1]
SIRU_ADAPT=[0]
IMEX_EXPLICITA es una lista de pares estado,expresion; debe cubrir exactamente los estados del modelo, en cualquier orden. La expresion inicial admite numeros, estados, tiempo, parametros y aritmetica + - * / ^ ( ); no variables algebraicas, derivadas, DT, asignaciones, funciones ni separadores internos. Para .d, el control equivalente se escribe IMEX EXPLICITA = [X,-X]. La sintaxis limitada evita atribuir caracter explicito a una expresion que dependa de incognitas de la etapa. Ampliar expresiones y particiones es un hito posterior.
Con F = E + I, las ecuaciones son:
y_nuevo = y + h*(E(t,y) + I(t+h,y_nuevo))
= y + h*(E(t,y) + F(t+h,y_nuevo) - E(t+h,y_nuevo))
Calcula resuelve el modelo completo en el tiempo futuro y la ecuacion ampliada. E(t,y) solo usa datos del paso; las contribuciones de todos los estados futuros se resuelven juntas. Es Euler IMEX aditivo, no Lie-Trotter ni dos Euler completos consecutivos. El archivo resultante conserva la identidad PGLM y la particion.
| Condicion | Primer hito |
|---|---|
| Paso | Fijo; ultimo paso acortado para llegar al final. |
| Adaptacion, listas y RERUN | Rechazar. |
| Llaves, lazos/cortes con mdin, convoluciones | Rechazar. |
| DAE general o indice alto | No se promete soporte; el modelo debe determinar las derivadas dados tiempo y estados. |
| Motor temporal | Reutilizar la conduccion de un paso existente mediante un adaptador, sin cambiar RK. |
| Coeficientes de usuario | No habilitados para PGLM en este hito. |
.din..din; validar metadatos antes de arrancar Calcula.