MSL coverage of OM.jl
Measured 2026-10-04: 425 example models of the Modelica Standard Library, each run through OM.jl's pipeline (flatten, translate, simulate) and validated against the reference trajectories. No-skip run on GitHub Actions (ubuntu-latest, Julia 1.13), 1 workers, 600 s per model.
Commits: OM.jl 9dc6be8, Absyn.jl ca584ba, ArrayUtil.jl bbb3b17, DAE.jl 29da583, DoubleEnded.jl 3955cc5, ImmutableList.jl 132055a, ListUtil.jl d08d8b2, MetaModelica.jl 97f5b3b, OMBackend.jl f661a4a, OMFrontend.jl 84592a5, OMLibraryTesting.jl be78d42, OMParser.jl 95f7f34, OMRuntimeExternalC.jl be33a94, SCode.jl 02f9ecc.
Generated by scripts/publish_coverage.jl from the run's results; do not edit by hand.
Summary
| Phase reached | Models | Share |
|---|---|---|
| frontend | 423 | 99.5 % |
| backend | 398 | 93.6 % |
| simulate | 324 | 76.2 % |
| validate | 299 | 70.4 % |
| total | 425 |
Per domain
| Domain | Models | Validate | Simulate only | Backend only | Frontend only | None |
|---|---|---|---|---|---|---|
| Blocks | 25 | 16 | 1 | 4 | 3 | 1 |
| ComplexBlocks | 2 | 2 | 0 | 0 | 0 | 0 |
| Electrical.Analog | 41 | 38 | 0 | 3 | 0 | 0 |
| Electrical.Digital | 23 | 21 | 0 | 1 | 1 | 0 |
| Electrical.Machines | 38 | 30 | 5 | 3 | 0 | 0 |
| Electrical.MultiPhase | 4 | 4 | 0 | 0 | 0 | 0 |
| Electrical.PowerConverters | 42 | 38 | 2 | 2 | 0 | 0 |
| Electrical.QuasiStationary | 10 | 9 | 0 | 1 | 0 | 0 |
| Electrical.Spice3 | 14 | 4 | 5 | 3 | 2 | 0 |
| Fluid | 23 | 2 | 0 | 18 | 3 | 0 |
| Magnetic.FluxTubes | 11 | 5 | 1 | 4 | 1 | 0 |
| Magnetic.FundamentalWave | 26 | 23 | 1 | 2 | 0 | 0 |
| Magnetic.QuasiStatic | 23 | 17 | 1 | 5 | 0 | 0 |
| Math.FastFourierTransform | 2 | 2 | 0 | 0 | 0 | 0 |
| Math.Nonlinear | 1 | 0 | 0 | 0 | 1 | 0 |
| Math.Random | 1 | 1 | 0 | 0 | 0 | 0 |
| Mechanics.MultiBody | 42 | 29 | 2 | 10 | 1 | 0 |
| Mechanics.Rotational | 16 | 13 | 3 | 0 | 0 | 0 |
| Mechanics.Translational | 14 | 12 | 2 | 0 | 0 | 0 |
| Media | 40 | 13 | 0 | 15 | 12 | 0 |
| Media.Incompressible | 1 | 0 | 0 | 0 | 1 | 0 |
| StateGraph | 7 | 5 | 1 | 1 | 0 | 0 |
| Thermal.FluidHeatFlow | 12 | 10 | 0 | 2 | 0 | 0 |
| Thermal.HeatTransfer | 4 | 4 | 0 | 0 | 0 | 0 |
| Utilities | 3 | 1 | 1 | 0 | 0 | 1 |
What stops the models that do not validate
Grouped by the last phase a model reached and its first error (names and numbers blanked).
| Stops after | Models | First error | Examples |
|---|---|---|---|
| backend | 22 | Simulation retcode: Unstable | Blocks.Examples.NoiseExamples.NormalNoiseProperties, Blocks.Examples.NoiseExamples.UniformNoiseProperties |
| backend | 10 | Simulation retcode: InitialFailure | Electrical.Analog.Examples.SimpleTriacCircuit, Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_InverterDrive |
| backend | 9 | ExtraVariablesSystemException: The system is unbalanced. There are N highest order derivat | Blocks.Examples.NoiseExamples.DrydenContinuousTurbulence, Fluid.Examples.ASTBatchPlant.BatchPlantStandardWater |
| frontend | 8 | UndefVarError: … not defined in … | Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonPullInStroke, Media.Examples.SolveOneNonlinearEquation.InverseIncompressibleshT |
| backend | 4 | InterruptException: | Electrical.PowerConverters.Examples.DCDC.HBridge.HBridgeDCDrive, Fluid.Examples.TraceSubstances.RoomCO2WithControls |
| frontend | 4 | InterruptException: | Blocks.Examples.Rectifier12pulseFFT, Blocks.Examples.Rectifier6pulseFFT |
| frontend | 4 | UnsupportedLowering: a record assignment from this expression: r_N[N] | Media.Examples.ReferenceAir.InverseshTX, Media.Examples.ReferenceAir.MoistAir |
| simulate | 4 | Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis, Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.GeneralLeakage | |
| backend | 3 | InvalidSystemException: The system is structurally singular! Here are the problematic vari | Electrical.Analog.Examples.HeatingNPNOrGate, Electrical.Analog.Examples.HeatingPNPNORGate |
| backend | 3 | Simulation retcode: MaxIters | Electrical.Machines.Examples.SynchronousInductionMachines.SMEELoadDump, Magnetic.FundamentalWave.Examples.BasicMachines.SMEELoadDump |
| backend | 2 | Derivative of | Magnetic.FluxTubes.Examples.Hysteresis.HysteresisModelComparison, Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis1 |
| backend | 2 | DomainError with -N: | Media.Examples.ReferenceAir.DryAir1, Media.Examples.ReferenceAir.DryAir2 |
| backend | 2 | MethodError: no method matching isless(::FloatN, ::Vector{FloatN}) | Media.Examples.MixtureGases, Media.Examples.TestOnly.IdealGasN2Mix |
| backend | 2 | UnsupportedLowering: derivative initial-equation rows not finite at the entry guesses: der | Electrical.Machines.Examples.AsynchronousInductionMachines.AIMCwithLosses, Magnetic.FundamentalWave.Examples.BasicMachines.AIMCwithLosses |
| frontend | 2 | Error: | Electrical.Spice3.Examples.Graetz, Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder |
| frontend | 2 | UndefVarError: … not defined in local scope | Media.Examples.R134a.R134a1, Media.Examples.R134a.R134a2 |
| frontend | 2 | toSim: unsupported BDAE.Equation variant OMBackend.Backend.BDAE.ASSERT_EQUATION | Fluid.Examples.IncompressibleFluidNetwork, Fluid.Examples.InverseParameterization |
| simulate | 2 | Validation failed for signals: capacitorN.v, capacitorN.v, filter.x[N], filter.x[N], smee. | Electrical.Machines.Examples.SynchronousInductionMachines.SMEERectifier, Magnetic.FundamentalWave.Examples.BasicMachines.SMEERectifier |
| simulate | 2 | Validation failed for signals: mpN.S.v, mpN.S.v | Electrical.Spice3.Examples.InvertersApartRecord, Electrical.Spice3.Examples.InvertersExtendedModel |
| backend | 1 | Derivative of ModelicaMediaCommonsmoothStep(-N + t, mediump(t), | Media.Examples.WaterIF97 |
| backend | 1 | Derivative of ModelicaMediaWaterIFNUtilitiesrhoph(N, | Fluid.Examples.NonCircularPipes |
| backend | 1 | ArgumentError: The equations have at least one cycle. | Mechanics.MultiBody.Examples.Elementary.RollingWheel |
| backend | 1 | ArgumentError: var"…"(t) is present in the system but var"…"(t) is not an unknown. | Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Start |
| backend | 1 | BoundsError: attempt to access Num at index [N] | Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic |
| backend | 1 | DirectRHS: structural imbalance in reduced system: N full_equations vs N unknowns. The mod | Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.MultiPhaseTwoLevel_RL |
| backend | 1 | ExtraEquationsSystemException: The system is unbalanced. There are N highest order derivat | Fluid.Examples.ControlledTankSystem.ControlledTanks |
| backend | 1 | IFN medium function tsat called with too low pressure\np = -N Pa <= N Pa (triple point pre | Media.Examples.Tests.MediaTestModels.Water.WaterIF97_pT |
| backend | 1 | Modelica runtime error: The arguments xmin and xmax to OneNonLinearEquation.solve(..)\nd | Media.Examples.PsychrometricData |
| backend | 1 | ModelicaAssertionError: assertion violated at time N: Mass in tank is zero | Fluid.Examples.AST_BatchPlant.Test.OneTank |
| backend | 1 | ModelicaAssertionError: assertion violated at time N: Tank starts to overflow (level = hei | Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe2 |
| backend | 1 | ModelicaInternal_readLine failed: Not possible to open file "…" for reading: | Electrical.Digital.Examples.RAM |
| backend | 1 | OverflowError: -N * -N overflowed for type IntN | Fluid.Examples.BranchingDynamicPipes |
| backend | 1 | UnsupportedLowering: derivative initial equations on algebraic or observed variables witho | Fluid.Examples.HeatExchanger.HeatExchangerSimulation |
| backend | 1 | UnsupportedLowering: initialization equations that do not reduce to the states and paramet | StateGraph.Examples.ControlledTanks |
| frontend | 1 | MethodError: no method matching toSimExp(::PARTEVALFUNCTION) | Math.Nonlinear.Examples.quadratureLobatto3 |
| frontend | 1 | UnsupportedLowering: not a constant: (! rSFlipFlop_Qini) | Blocks.Examples.BooleanNetwork1 |
| frontend | 1 | transpose not defined for Array{IntN, N}. Consider using … for higher-dimensional arrays | Electrical.Digital.Examples.MUX2x1 |
| none | 1 | ModelicaIO_readMatrixSizes failed: Not possible to open file "…": No such file or director | Utilities.Examples.ReadRealMatrixFromFile |
| none | 1 | Worker process crashed: ProcessExitedException(N) | Blocks.Examples.Interaction1 |
| simulate | 1 | Reference CSV not found: /home/runner/work/OMLibraryTesting.jl/OMLibraryTesting.jl/OM.jl/O | Electrical.Machines.Examples.ControlledDCDrives.SpeedControlledDCPM |
| simulate | 1 | Validation compared no signal: none of the N reference signals is in the solution | Utilities.Examples.readRealParameterModel |
| simulate | 1 | Validation failed for signals: JN.D.v | Electrical.Spice3.Examples.CascodeCircuit |
| simulate | 1 | Validation failed for signals: aimc.idqrr[N], aimc.idqrr[N], aimc.idq_sr[N] | Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_YD |
| simulate | 1 | Validation failed for signals: aimc.idq_sr[N] | Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Steinmetz |
| simulate | 1 | Validation failed for signals: bearingFriction.mode, bearingFriction.startForward | Mechanics.Rotational.Examples.LossyGearDemo2 |
| simulate | 1 | Validation failed for signals: bodyOfConstraint.vN[N], bodyOfConstraint.vN[N], bodyOfCon | Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint |
| simulate | 1 | Validation failed for signals: brake.mode | Mechanics.Rotational.Examples.SimpleGearShift |
| simulate | 1 | Validation failed for signals: compositeStep.compositeStepN.transition.enableFire, transit | StateGraph.Examples.ShowExceptions |
| simulate | 1 | Validation failed for signals: filter[N].x[N], filter[N].x[N], filter[N].x[N], filter[N].x | Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.ThreePhaseTwoLevel_PWM |
| simulate | 1 | Validation failed for signals: impureRandom_y | Blocks.Examples.NoiseExamples.ImpureGenerator |
| simulate | 1 | Validation failed for signals: inertiaN.phi, inertiaN.w, revoluteN.phi, revoluteN.w, revol | Mechanics.MultiBody.Examples.Rotational3DEffects.BevelGear1D |
| simulate | 1 | Validation failed for signals: mnN.Dinternal, mnN.Dinternal, mpN.Dinternal, mpN.Sinternal, | Electrical.Spice3.Examples.Nor |
| simulate | 1 | Validation failed for signals: mpN.S.v, mpN.S.v, mpN.S.v, mpN.S.v | Electrical.Spice3.Examples.FourInverters |
| simulate | 1 | Validation failed for signals: rectifier.pren[N].u, rectifier.pren[N].u, rectifier.pre_n | Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulseDCDrive |
| simulate | 1 | Validation failed for signals: smr.idq_rr[N] | Electrical.Machines.Examples.SynchronousInductionMachines.SMR_DOL |
| simulate | 1 | Validation failed for signals: springDamperN.v_rel, massWithStopAndFriction.mode | Mechanics.Translational.Examples.HeatLosses |
Models that simulate but do not validate
Blocks.Examples.NoiseExamples.ImpureGenerator: Validation failed for signals: impureRandom_y
Electrical.Machines.Examples.AsynchronousInductionMachines.AIMCSteinmetz: Validation failed for signals: aimc.idqsr[1]
Electrical.Machines.Examples.AsynchronousInductionMachines.AIMCYD: Validation failed for signals: aimc.idqrr[1], aimc.idqrr[2], aimc.idqsr[2]
Electrical.Machines.Examples.ControlledDCDrives.SpeedControlledDCPM: Reference CSV not found: /home/runner/work/OMLibraryTesting.jl/OMLibraryTesting.jl/OM.jl/OMLibraryTesting.jl/r
Electrical.Machines.Examples.SynchronousInductionMachines.SMEERectifier: Validation failed for signals: capacitor1.v, capacitor2.v, filter.x[1], filter.x[2], smee.idqdr[1], smee.idq_
Electrical.Machines.Examples.SynchronousInductionMachines.SMRDOL: Validation failed for signals: smr.idqrr[2]
Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulseDCDrive: Validation failed for signals: rectifier.pren[1].u, rectifier.pren[2].u, rectifier.pre_n[3].u, rectifier.pre
Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.ThreePhaseTwoLevel_PWM: Validation failed for signals: filter[1].x[1], filter[1].x[2], filter[2].x[1], filter[2].x[2]
Electrical.Spice3.Examples.CascodeCircuit: Validation failed for signals: J2.D.v
Electrical.Spice3.Examples.FourInverters: Validation failed for signals: mp1.S.v, mp2.S.v, mp3.S.v, mp4.S.v
Electrical.Spice3.Examples.InvertersApartRecord: Validation failed for signals: mp1.S.v, mp2.S.v
Electrical.Spice3.Examples.InvertersExtendedModel: Validation failed for signals: mp1.S.v, mp2.S.v
Electrical.Spice3.Examples.Nor: Validation failed for signals: mn1.Dinternal, mn2.Dinternal, mp1.Dinternal, mp1.Sinternal, mp2.Dinternal, mp2.
Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis:
Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Rectifier: Validation failed for signals: capacitor1.v, capacitor2.v, filter.x[1], filter.x[2], smee.excitation.electroMa
Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.GeneralLeakage:
Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint: Validation failed for signals: bodyOfConstraint.v0[1], bodyOfConstraint.v0[2], bodyOfConstraint.v_0[3], cons
Mechanics.MultiBody.Examples.Rotational3DEffects.BevelGear1D: Validation failed for signals: inertia2.phi, inertia2.w, revolute1.phi, revolute1.w, revolute2.phi, revolute2.
Mechanics.Rotational.Examples.EddyCurrentBrake:
Mechanics.Rotational.Examples.LossyGearDemo2: Validation failed for signals: bearingFriction.mode, bearingFriction.startForward
Mechanics.Rotational.Examples.SimpleGearShift: Validation failed for signals: brake.mode
Mechanics.Translational.Examples.EddyCurrentBrake:
Mechanics.Translational.Examples.HeatLosses: Validation failed for signals: springDamper1.v_rel, massWithStopAndFriction.mode
StateGraph.Examples.ShowExceptions: Validation failed for signals: compositeStep.compositeStep12.transition.enableFire, transition3.enableFire, tr
Utilities.Examples.readRealParameterModel: Validation compared no signal: none of the 3 reference signals is in the solution