Skip to content

OMBackend 0.8.0: index reduction on by default, MSL 4.1.0 fixes, model cache - #90

Merged
JKRT merged 4 commits into
masterfrom
index-reduction
Oct 23, 2026
Merged

JKRT merged 4 commits into
masterfrom
index-reduction

Conversation

@JKRT

@JKRT JKRT commented Oct 23, 2026

Copy link
Copy Markdown
Member
  • Index reduction and state selection on OMJLIR (Pantelides, dummy derivatives, dynamic state sets), on by default (OMBACKEND_INDEX_REDUCTION).
  • MSL 4.1.0 fixes: initialization, solver clocks, sample() in clusters, hidden linear constraints, events (band edge, exact-zero relations, degenerate steps), the init solver compiled once. MSL 4.1.0 coverage 487 -> 500/534 validated, 30 min on 3 workers.
  • OMBackend.Cache: models kept within 6 GiB, the oldest forgotten first.

Version 0.8.0; compat OMFrontend 1.7.5, OMRuntimeExternalC 0.3.6: merge after OpenModelica/OMRuntimeExternalC.jl#22 and OpenModelica/OMFrontend.jl#106 are registered.

🤖 Generated with Claude Code

JKRT added 4 commits October 22, 2026 09:48
OMBackend's own index reduction on OMJLIR, before SimCode: the structure
with known values folded, Pantelides, symbolic differentiation (function
derivative annotations, der() of expressions, record constructors), dummy
derivatives with OpenModelica's state choice (StateSelect, prefer as
artificial states), dynamic state sets in OpenModelica's form, and index
reduction with arrays kept.

With it: initialization (omc's rule for underdetermined systems, parameters
an initial algorithm assigns), events (event iteration at the start, the
re-solve by Levenberg-Marquardt and damped Newton, relations on their
boundaries), error and step control, the model's Modelica functions compiled
once they pay (tiered, extractor calls hoisted, call partials in the
Jacobian), SimCode passes (zero flow, observed equations without cycles),
noEvent for smooth() of order 1 and up.

MSL 4.1.0 coverage (run 29): validate 483/534 (90.4 %) in 36.5 min.

Assisted-by: Claude Opus 5.5
…uild time

Solver clocks, sample() in clusters, hidden linear constraints, the init
solver compiled once, time relations at their band edge, exact-zero cluster
relations, the degenerate-step restart. MSL 4.1.0: 487 -> 500/534 in 30 min.

Assisted-by: Claude Opus 5.5
Sizes by summarysize without following GlobalRefs (OMBACKEND_CACHE_LIMIT_GIB);
forgetModel also clears the array path lists.

Assisted-by: Claude Opus 5.5
@JKRT
JKRT merged commit 41a5304 into master Oct 23, 2026
13 of 14 checks passed
@JKRT
JKRT deleted the index-reduction branch October 23, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant