From 05a53b77f0c3816b30bd63fbd91a47f460387fa3 Mon Sep 17 00:00:00 2001 From: JKRT Date: Wed, 28 Oct 2026 10:30:25 +0100 Subject: [PATCH] Validation as OpenModelica's library testing: omc's tube comparison in Julia compare_signal compared at 101 evenly spaced samples: a switch up to a sample interval late passed and a deviation between samples was not seen. It now compares OM.jl's values at every reference time against the band omc's diffSimulationResults builds (SimulationResultsCmpTubes.c, ported as tube_compare in src/tubes.jl, fused multiply-adds where clang contracts) with OpenModelica's library testing settings (relTol 3e-3, relTolDiffMinMax 3e-3, rangeDelta 1e-3): a model's signals in order sharing the reference's times as omc's one call does, over [StartTime, stopTime], a reference event not compared, a non-finite value failing. The experiment lists record StartTime, simulated from there (MSL ForceStrokeBehaviour: -4). SignalComparison and signals.json carry the band at the plotted samples and the compared/event/outside counts; the viewer draws the band and where OM.jl is furthest outside it. Tests check the port against omc's verdicts and band. Assisted-by: Claude Opus 5.5 --- README.md | 6 + models/experiments_Modelica_3.2.3.txt | 850 ++++++++++---------- models/experiments_Modelica_4.1.0.txt | 1068 ++++++++++++------------- models/models.toml | 7 +- src/OMLibraryTesting.jl | 1 + src/comparison.jl | 236 +++--- src/discovery.jl | 14 +- src/report.jl | 46 +- src/runner.jl | 14 +- src/signals.jl | 23 +- src/tubes.jl | 494 ++++++++++++ src/types.jl | 36 +- test/comparisonTests.jl | 143 +++- test/registryTests.jl | 5 + test/signalsTests.jl | 22 +- 15 files changed, 1867 insertions(+), 1098 deletions(-) create mode 100644 src/tubes.jl diff --git a/README.md b/README.md index 0cc6479..2d54e4f 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,12 @@ Each model is tested through up to four pipeline phases: Results are compared against Dymola-generated reference trajectories from the MAP-LIB reference results repository. +Each listed signal is compared as OpenModelica's library testing compares it (omc's `diffSimulationResults` with +relTol 3e-3, relTolDiffMinMax 3e-3, rangeDelta 1e-3; ported to Julia as `tube_compare`, `src/tubes.jl`): OM.jl's +values at every time of the reference must lie in a band around it, 0.1 % of the time span wide in time and 0.3 % +of the value and of the signal's range high; a reference event is not compared. A value that is not finite fails. +The report's signal viewer plots the band at 101 evenly spaced times. + ## Latest coverage diff --git a/models/experiments_Modelica_3.2.3.txt b/models/experiments_Modelica_3.2.3.txt index 61f54f2..49ef62b 100644 --- a/models/experiments_Modelica_3.2.3.txt +++ b/models/experiments_Modelica_3.2.3.txt @@ -1,425 +1,425 @@ -Modelica.Blocks.Examples.BooleanNetwork1|10|1e-06 -Modelica.Blocks.Examples.BusUsage|2|1e-06 -Modelica.Blocks.Examples.FilterWithDifferentiation|0.9|1e-06 -Modelica.Blocks.Examples.FilterWithRiseTime|4|1e-06 -Modelica.Blocks.Examples.Filter|0.9|1e-06 -Modelica.Blocks.Examples.IntegerNetwork1|10|1e-06 -Modelica.Blocks.Examples.Interaction1|10|1e-06 -Modelica.Blocks.Examples.InverseModel|1|1e-06 -Modelica.Blocks.Examples.LogicalNetwork1|10|1e-06 -Modelica.Blocks.Examples.NoiseExamples.ActuatorWithNoise|8|1e-05 -Modelica.Blocks.Examples.NoiseExamples.AutomaticSeed|2|1e-06 -Modelica.Blocks.Examples.NoiseExamples.Densities|20|1e-06 -Modelica.Blocks.Examples.NoiseExamples.Distributions|2|1e-06 -Modelica.Blocks.Examples.NoiseExamples.DrydenContinuousTurbulence|100|1e-06 -Modelica.Blocks.Examples.NoiseExamples.ImpureGenerator|2|1e-06 -Modelica.Blocks.Examples.NoiseExamples.NormalNoiseProperties|20|1e-09 -Modelica.Blocks.Examples.NoiseExamples.UniformNoiseProperties|20|1e-09 -Modelica.Blocks.Examples.NoiseExamples.UniformNoise|2|1e-06 -Modelica.Blocks.Examples.PID_Controller|4|1e-06 -Modelica.Blocks.Examples.RealNetwork1|10|1e-06 -Modelica.Blocks.Examples.Rectifier12pulseFFT|2.5|1e-06 -Modelica.Blocks.Examples.Rectifier6pulseFFT|2.5|1e-06 -Modelica.Blocks.Examples.ShowLogicalSources|10|1e-06 -Modelica.Blocks.Examples.SlewRateLimiter|1|1e-06 -Modelica.Blocks.Examples.TotalHarmonicDistortion|0.1|1e-06 -Modelica.ComplexBlocks.Examples.ShowTransferFunction|1|1e-06 -Modelica.ComplexBlocks.Examples.TestConversionBlock|1.01|1e-06 -Modelica.Electrical.Analog.Examples.AD_DA_conversion|0.2|1e-06 -Modelica.Electrical.Analog.Examples.AmplifierWithOpAmpDetailed|0.003|2e-07 -Modelica.Electrical.Analog.Examples.CauerLowPassAnalog|60|1e-06 -Modelica.Electrical.Analog.Examples.CauerLowPassOPV|60|1e-06 -Modelica.Electrical.Analog.Examples.CauerLowPassSC|60|1e-06 -Modelica.Electrical.Analog.Examples.CharacteristicIdealDiodes|1|1e-06 -Modelica.Electrical.Analog.Examples.CharacteristicThyristors|6|1e-06 -Modelica.Electrical.Analog.Examples.ChuaCircuit|50000|1e-06 -Modelica.Electrical.Analog.Examples.CompareTransformers|50|1e-06 -Modelica.Electrical.Analog.Examples.ControlledSwitchWithArc|6|1e-06 -Modelica.Electrical.Analog.Examples.DifferenceAmplifier|1|1e-06 -Modelica.Electrical.Analog.Examples.GenerationOfFMUs|1|1e-06 -Modelica.Electrical.Analog.Examples.HeatingMOSInverter|5|1e-06 -Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate|200|1e-06 -Modelica.Electrical.Analog.Examples.HeatingPNP_NORGate|200|1e-06 -Modelica.Electrical.Analog.Examples.HeatingRectifier|5|1e-06 -Modelica.Electrical.Analog.Examples.HeatingResistor|5|1e-06 -Modelica.Electrical.Analog.Examples.IdealTriacCircuit|2|1e-06 -Modelica.Electrical.Analog.Examples.InvertingAmp|1|1e-06 -Modelica.Electrical.Analog.Examples.NandGate|1e-07|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Comparator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Differentiator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.HighPass|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Integrator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.InvertingAmp|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.InvertingSchmittTrigger|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.LCOscillator|0.01|0.0001 -Modelica.Electrical.Analog.Examples.OpAmps.LowPass|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Multivibrator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.NonInvertingAmp|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.SchmittTrigger|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.SignalGenerator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.VoltageFollower|1|1e-06 -Modelica.Electrical.Analog.Examples.OvervoltageProtection|0.4|1e-06 -Modelica.Electrical.Analog.Examples.Rectifier|0.1|1e-06 -Modelica.Electrical.Analog.Examples.ResonanceCircuits|1|1e-06 -Modelica.Electrical.Analog.Examples.ShowSaturatingInductor|6.2832|1e-06 -Modelica.Electrical.Analog.Examples.ShowVariableResistor|1|1e-06 -Modelica.Electrical.Analog.Examples.SimpleTriacCircuit|0.001|1e-12 -Modelica.Electrical.Analog.Examples.SwitchWithArc|2|1e-06 -Modelica.Electrical.Analog.Examples.ThyristorBehaviourTest|0.0002|1e-06 -Modelica.Electrical.Digital.Examples.Adder4|5|1e-06 -Modelica.Electrical.Digital.Examples.BUF3S|12|1e-06 -Modelica.Electrical.Digital.Examples.Counter3|10|1e-06 -Modelica.Electrical.Digital.Examples.Counter|100|1e-06 -Modelica.Electrical.Digital.Examples.DFFREGL|25|1e-06 -Modelica.Electrical.Digital.Examples.DFFREGSRH|15|1e-06 -Modelica.Electrical.Digital.Examples.DFFREGSRL|15|1e-06 -Modelica.Electrical.Digital.Examples.DFFREG|25|1e-06 -Modelica.Electrical.Digital.Examples.DLATREGL|25|1e-06 -Modelica.Electrical.Digital.Examples.DLATREGSRH|25|1e-06 -Modelica.Electrical.Digital.Examples.DLATREGSRL|25|1e-06 -Modelica.Electrical.Digital.Examples.DLATREG|25|1e-06 -Modelica.Electrical.Digital.Examples.FlipFlop|250|1e-06 -Modelica.Electrical.Digital.Examples.FullAdder|10|1e-06 -Modelica.Electrical.Digital.Examples.HalfAdder|5|1e-06 -Modelica.Electrical.Digital.Examples.INV3S|12|1e-06 -Modelica.Electrical.Digital.Examples.MUX2x1|15|1e-06 -Modelica.Electrical.Digital.Examples.Multiplexer|250|1e-06 -Modelica.Electrical.Digital.Examples.NRXFER|12|1e-06 -Modelica.Electrical.Digital.Examples.NXFER|12|1e-06 -Modelica.Electrical.Digital.Examples.RAM|400|1e-06 -Modelica.Electrical.Digital.Examples.VectorDelay|10|1e-06 -Modelica.Electrical.Digital.Examples.WiredX|12|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Conveyor|20|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_DOL|1.5|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Initialize|1.5|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_InverterDrive|1.5|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Inverter|1.5|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Steinmetz|1|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Transformer|2.5|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_YD|2.5|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_withLosses|5|1e-06 -Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMS_Start|1.5|1e-06 -Modelica.Electrical.Machines.Examples.ControlledDCDrives.CurrentControlledDCPM|2|1e-06 -Modelica.Electrical.Machines.Examples.ControlledDCDrives.PositionControlledDCPM|2.5|1e-06 -Modelica.Electrical.Machines.Examples.ControlledDCDrives.SpeedControlledDCPM|1|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCEE_Start|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Cooling|25|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_CurrentControlled|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_QuasiStationary|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Start|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Temperature|3|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_withLosses|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCSE_SinglePhase|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCSE_Start|2|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_DOL|3|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_Generator|30|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_LoadDump|10|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_Rectifier|1.1|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_Braking|0.8|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_CurrentSource|2|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_Inverter|1.5|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_NoLoad|0.04|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_VoltageSource|2|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMR_DOL|2.5|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMR_Inverter|1.5|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.AIMC_Transformer|2.5|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.AsymmetricalLoad|0.1|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.Rectifier12pulse|0.1|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.Rectifier6pulse|0.1|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.TransformerTestbench|0.1|1e-06 -Modelica.Electrical.MultiPhase.Examples.Rectifier|0.1|1e-06 -Modelica.Electrical.MultiPhase.Examples.TestSensors|0.1|1e-06 -Modelica.Electrical.MultiPhase.Examples.TransformerYD|1|1e-06 -Modelica.Electrical.MultiPhase.Examples.TransformerYY|1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.Rectifier1Pulse.Thyristor1Pulse_R_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.Rectifier1Pulse.Thyristor1Pulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.DiodeBridge2Pulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.HalfControlledBridge2Pulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_DC_Drive|15|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.DiodeBridge2mPulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.HalfControlledBridge2mPulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_DC_Drive|15|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.DiodeCenterTap2Pulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.DiodeCenterTap2mPulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.DiodeCenterTapmPulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.MultiPhaseTwoLevel_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.MultiPhaseTwoLevel_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.ThreePhaseTwoLevel_PWM|2|1e-05 -Modelica.Electrical.PowerConverters.Examples.DCAC.SinglePhaseTwoLevel.SinglePhaseTwoLevel_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCAC.SinglePhaseTwoLevel.SinglePhaseTwoLevel_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepDown.ChopperStepDown_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepDown.ChopperStepDown_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepUp.ChopperStepUp_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_DC_Drive|24|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_R|0.1|1e-06 -Modelica.Electrical.QuasiStationary.Machines.Examples.TransformerTestbench|0.1|1e-06 -Modelica.Electrical.QuasiStationary.MultiPhase.Examples.BalancingDelta|1|1e-06 -Modelica.Electrical.QuasiStationary.MultiPhase.Examples.BalancingStar|1|1e-06 -Modelica.Electrical.QuasiStationary.MultiPhase.Examples.TestSensors|0.1|1e-06 -Modelica.Electrical.QuasiStationary.MultiPhase.Examples.UnsymmetricalLoad|1|1e-06 -Modelica.Electrical.QuasiStationary.SinglePhase.Examples.ParallelResonance|1|1e-06 -Modelica.Electrical.QuasiStationary.SinglePhase.Examples.Rectifier|1|1e-06 -Modelica.Electrical.QuasiStationary.SinglePhase.Examples.SeriesBode|1|1e-06 -Modelica.Electrical.QuasiStationary.SinglePhase.Examples.SeriesResonance|1|1e-06 -Modelica.Electrical.QuasiStationary.SinglePhase.Examples.Transformer|1|1e-06 -Modelica.Electrical.Spice3.Examples.CascodeCircuit|0.2|1e-07 -Modelica.Electrical.Spice3.Examples.CoupledInductors|0.2|1e-06 -Modelica.Electrical.Spice3.Examples.FourInverters|5|1e-06 -Modelica.Electrical.Spice3.Examples.Graetz|0.025|1e-06 -Modelica.Electrical.Spice3.Examples.InvertersApartRecord|5|1e-06 -Modelica.Electrical.Spice3.Examples.InvertersExtendedModel|5|1e-06 -Modelica.Electrical.Spice3.Examples.Inverter|1e-11|1e-07 -Modelica.Electrical.Spice3.Examples.Nand|2e-07|1e-06 -Modelica.Electrical.Spice3.Examples.Nor|5|1e-06 -Modelica.Electrical.Spice3.Examples.Oscillator|0.025|1e-06 -Modelica.Electrical.Spice3.Examples.Spice3BenchmarkDifferentialPair|1|1e-05 -Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder|1e-06|1e-06 -Modelica.Electrical.Spice3.Examples.Spice3BenchmarkMosfetCharacterization|1e-07|1e-06 -Modelica.Electrical.Spice3.Examples.Spice3BenchmarkRtlInverter|1e-07|1e-08 -Modelica.Fluid.Examples.AST_BatchPlant.BatchPlant_StandardWater|3600|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.OneTank|100|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe1|35|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe2|120|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TanksWithEmptyingPipe1|120|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TanksWithEmptyingPipe2|120|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TwoTanks|100|1e-06 -Modelica.Fluid.Examples.BranchingDynamicPipes|10|1e-06 -Modelica.Fluid.Examples.ControlledTankSystem.ControlledTanks|900|1e-06 -Modelica.Fluid.Examples.DrumBoiler.DrumBoiler|5400|1e-06 -Modelica.Fluid.Examples.Explanatory.MeasuringTemperature|1.1|1e-06 -Modelica.Fluid.Examples.Explanatory.MomentumBalanceFittings|1.1|1e-06 -Modelica.Fluid.Examples.HeatExchanger.HeatExchangerSimulation|200|1e-05 -Modelica.Fluid.Examples.HeatingSystem|6000|1e-06 -Modelica.Fluid.Examples.IncompressibleFluidNetwork|200|1e-06 -Modelica.Fluid.Examples.InverseParameterization|10|1e-06 -Modelica.Fluid.Examples.NonCircularPipes|1|1e-06 -Modelica.Fluid.Examples.PumpingSystem|2000|1e-06 -Modelica.Fluid.Examples.Tanks.EmptyTanks|50|1e-06 -Modelica.Fluid.Examples.Tanks.TanksWithOverflow|25000|1e-06 -Modelica.Fluid.Examples.Tanks.ThreeTanks|200|1e-06 -Modelica.Fluid.Examples.TraceSubstances.RoomCO2WithControls|86400|1e-06 -Modelica.Fluid.Examples.TraceSubstances.RoomCO2|3600|1e-06 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.HysteresisModelComparison|14|1e-05 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis|0.02|0.0001 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis1|0.02|1e-06 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis2|0.1|0.0001 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.ThreePhaseTransformerWithRectifier|0.2|1e-06 -Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ArmatureStroke|0.05|1e-07 -Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ForceCurrentBehaviour|6|1e-07 -Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ForceStrokeBehaviour|4|1e-07 -Modelica.Magnetic.FluxTubes.Examples.SaturatedInductor|0.1|1e-07 -Modelica.Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonPullInStroke|0.05|1e-07 -Modelica.Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonQuasiStationary|10|1e-07 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Conveyor|20|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_DOL_MultiPhase|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_DOL|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Initialize|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Inverter|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Steinmetz|1|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Transformer|2.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_YD|2.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_withLosses|5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMS_Start_MultiPhase|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMS_Start|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_DOL|3|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Generator_MultiPhase|30|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Generator|30|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_LoadDump|10|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Rectifier|1.1|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_Braking|0.8|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_CurrentSource|2|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_Inverter_MultiPhase|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_Inverter|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_VoltageSource|2|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMR_Inverter_MultiPhase|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMR_Inverter|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses|40|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.Components.MultiPhaseInductance|100|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.Components.SinglePhaseInductance|100|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.FixedShapes.CuboidSections|1|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.FixedShapes.CylinderSections|1|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.CylinderLeakage|1|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.GeneralLeakage|1|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.LinearInductor|0.2|1e-07 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.NonLinearInductor|0.2|1e-07 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Characteristics|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Conveyor|20|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_DOL|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Initialize|1.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Transformer|2.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_YD|2.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_withLosses|10|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Characteristics|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Start|1.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Generator|30|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_CurrentSource|2|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_MTPA|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_Mains|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_OpenCircuit|0.1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMR_CurrentSource|2|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.Components.EddyCurrentLosses|40|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.Components.MultiPhaseInductance|100|1e-06 -Modelica.Math.FastFourierTransform.Examples.RealFFT1|6|1e-06 -Modelica.Math.FastFourierTransform.Examples.RealFFT2|6|1e-06 -Modelica.Math.Nonlinear.Examples.quadratureLobatto3|5|1e-06 -Modelica.Math.Random.Examples.GenerateRandomNumbers|2|1e-06 -Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Constraints.RevoluteConstraint|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Constraints.SphericalConstraint|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Constraints.UniversalConstraint|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.ForceAndTorque|1.01|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.FreeBody|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.HeatLosses|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.InitSpringConstant|1.01|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.LineForceWithTwoMasses|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.PendulumWithSpringDamper|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses2|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses|2|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravity|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetDriving|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetPulling|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel|4|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.SpringDamperSystem|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.SpringMassSystem|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.SpringWithMass|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.Surfaces|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.ThreeSprings|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.UserDefinedGravityField|10|1e-08 -Modelica.Mechanics.MultiBody.Examples.Loops.Engine1a|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Engine1b_analytic|0.5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Engine1b|0.5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic|1.01|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6|1.01|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar1|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar_analytic|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.PlanarFourbar|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.ActuatedDrive|1.1|1e-06 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.BevelGear1D|1|1e-06 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.GearConstraint|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.GyroscopicEffects|5|1e-08 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.MovingActuatedDrive|1.1|1e-06 -Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.fullRobot|2|1e-06 -Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.oneAxis|1.6|1e-06 -Modelica.Mechanics.Rotational.Examples.Backlash|1|1e-06 -Modelica.Mechanics.Rotational.Examples.CoupledClutches|1.5|1e-06 -Modelica.Mechanics.Rotational.Examples.EddyCurrentBrake|1|1e-06 -Modelica.Mechanics.Rotational.Examples.ElasticBearing|10|1e-06 -Modelica.Mechanics.Rotational.Examples.FirstGrounded|1|1e-06 -Modelica.Mechanics.Rotational.Examples.First|1|1e-06 -Modelica.Mechanics.Rotational.Examples.Friction|3|1e-06 -Modelica.Mechanics.Rotational.Examples.GenerationOfFMUs|1|1e-06 -Modelica.Mechanics.Rotational.Examples.HeatLosses|1|1e-06 -Modelica.Mechanics.Rotational.Examples.LossyGearDemo1|0.5|1e-06 -Modelica.Mechanics.Rotational.Examples.LossyGearDemo2|0.5|1e-06 -Modelica.Mechanics.Rotational.Examples.LossyGearDemo3|1|1e-06 -Modelica.Mechanics.Rotational.Examples.OneWayClutchDisengaged|2|1e-06 -Modelica.Mechanics.Rotational.Examples.OneWayClutch|2|1e-06 -Modelica.Mechanics.Rotational.Examples.RollingWheel|5|1e-06 -Modelica.Mechanics.Rotational.Examples.SimpleGearShift|5|1e-06 -Modelica.Mechanics.Translational.Examples.Accelerate|1|1e-06 -Modelica.Mechanics.Translational.Examples.Brake|2|1e-06 -Modelica.Mechanics.Translational.Examples.Damper|1|1e-06 -Modelica.Mechanics.Translational.Examples.EddyCurrentBrake|1|1e-06 -Modelica.Mechanics.Translational.Examples.ElastoGap|5|1e-06 -Modelica.Mechanics.Translational.Examples.Friction|5|1e-06 -Modelica.Mechanics.Translational.Examples.GenerationOfFMUs|1|1e-06 -Modelica.Mechanics.Translational.Examples.HeatLosses|2|1e-06 -Modelica.Mechanics.Translational.Examples.InitialConditions|5|1e-06 -Modelica.Mechanics.Translational.Examples.Oscillator|1|1e-06 -Modelica.Mechanics.Translational.Examples.PreLoad|100|1e-06 -Modelica.Mechanics.Translational.Examples.Sensors|1|1e-06 -Modelica.Mechanics.Translational.Examples.SignConvention|1|1e-06 -Modelica.Mechanics.Translational.Examples.WhyArrows|1|1e-06 -Modelica.Media.Examples.IdealGasH2O|1|1e-06 -Modelica.Media.Examples.MixtureGases|1|1e-06 -Modelica.Media.Examples.MoistAir|1|1e-05 -Modelica.Media.Examples.PsychrometricData|1|1e-06 -Modelica.Media.Examples.R134a.R134a1|1.01|1e-06 -Modelica.Media.Examples.R134a.R134a2|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.DryAir1|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.DryAir2|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.Inverse_sh_TX|1|1e-06 -Modelica.Media.Examples.ReferenceAir.Inverse_sh_T|1|1e-06 -Modelica.Media.Examples.ReferenceAir.MoistAir1|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.MoistAir2|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.MoistAir|1|1e-05 -Modelica.Media.Examples.SimpleLiquidWater|100|1e-06 -Modelica.Media.Examples.SolveOneNonlinearEquation.InverseIncompressible_sh_T|1|1e-06 -Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sh_TX|1|1e-06 -Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sh_T|1|1e-06 -Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sine|0|1e-06 -Modelica.Media.Examples.TestOnly.FlueGas|1|1e-06 -Modelica.Media.Examples.TestOnly.IdealGasN2Mix|1|1e-06 -Modelica.Media.Examples.TestOnly.IdealGasN2|1|1e-06 -Modelica.Media.Examples.TestOnly.MixIdealGasAir|1|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Air.DryAirNasa|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Air.MoistAir|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Air.SimpleAir|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.IdealGases.Air|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.IdealGases.Nitrogen|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.IdealGases.SimpleNaturalGasFixedComposition|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.IdealGases.SimpleNaturalGas|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Incompressible.Essotherm650|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Incompressible.Glycol47|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.LinearFluid.LinearColdWater|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.LinearFluid.LinearWater_pT|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Water.ConstantPropertyLiquidWater|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Water.IdealSteam|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Water.WaterIF97OnePhase_ph|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Water.WaterIF97_pT|1.01|1e-06 -Modelica.Media.Examples.Tests.MediaTestModels.Water.WaterIF97_ph|1.01|1e-06 -Modelica.Media.Examples.TwoPhaseWater.TestTwoPhaseStates|22|1e-06 -Modelica.Media.Examples.WaterIF97|1|1e-06 -Modelica.Media.Incompressible.Examples.TestGlycol|1.01|1e-06 -Modelica.StateGraph.Examples.ControlledTanks|100|1e-06 -Modelica.StateGraph.Examples.ExecutionPaths|15|1e-06 -Modelica.StateGraph.Examples.FirstExample_Variant2|5|1e-06 -Modelica.StateGraph.Examples.FirstExample_Variant3|5|1e-06 -Modelica.StateGraph.Examples.FirstExample|5|1e-06 -Modelica.StateGraph.Examples.ShowCompositeStep|15|1e-06 -Modelica.StateGraph.Examples.ShowExceptions|20|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.IndirectCooling|1.5|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.OneMass|1|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.ParallelCooling|1|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.ParallelPumpDropOut|2|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.PumpAndValve|2|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.PumpDropOut|2|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.SimpleCooling|1|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.TestCylinder|2|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.TestOpenTank|1.5|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.TwoMass|1|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.TwoTanks|1.5|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.WaterPump|2|1e-06 -Modelica.Thermal.HeatTransfer.Examples.ControlledTemperature|10|1e-06 -Modelica.Thermal.HeatTransfer.Examples.GenerationOfFMUs|1|1e-06 -Modelica.Thermal.HeatTransfer.Examples.Motor|7200|1e-06 -Modelica.Thermal.HeatTransfer.Examples.TwoMasses|1|1e-06 -Modelica.Utilities.Examples.ReadRealMatrixFromFile|0.1|1e-06 -Modelica.Utilities.Examples.WriteRealMatrixToFile|0.1|1e-06 -Modelica.Utilities.Examples.readRealParameterModel|1.01|1e-06 +Modelica.Blocks.Examples.BooleanNetwork1|10|1e-06|0 +Modelica.Blocks.Examples.BusUsage|2|1e-06|0 +Modelica.Blocks.Examples.FilterWithDifferentiation|0.9|1e-06|0 +Modelica.Blocks.Examples.FilterWithRiseTime|4|1e-06|0 +Modelica.Blocks.Examples.Filter|0.9|1e-06|0 +Modelica.Blocks.Examples.IntegerNetwork1|10|1e-06|0 +Modelica.Blocks.Examples.Interaction1|10|1e-06|0 +Modelica.Blocks.Examples.InverseModel|1|1e-06|0 +Modelica.Blocks.Examples.LogicalNetwork1|10|1e-06|0 +Modelica.Blocks.Examples.NoiseExamples.ActuatorWithNoise|8|1e-05|0 +Modelica.Blocks.Examples.NoiseExamples.AutomaticSeed|2|1e-06|0 +Modelica.Blocks.Examples.NoiseExamples.Densities|20|1e-06|0 +Modelica.Blocks.Examples.NoiseExamples.Distributions|2|1e-06|0 +Modelica.Blocks.Examples.NoiseExamples.DrydenContinuousTurbulence|100|1e-06|0 +Modelica.Blocks.Examples.NoiseExamples.ImpureGenerator|2|1e-06|0 +Modelica.Blocks.Examples.NoiseExamples.NormalNoiseProperties|20|1e-09|0 +Modelica.Blocks.Examples.NoiseExamples.UniformNoiseProperties|20|1e-09|0 +Modelica.Blocks.Examples.NoiseExamples.UniformNoise|2|1e-06|0 +Modelica.Blocks.Examples.PID_Controller|4|1e-06|0 +Modelica.Blocks.Examples.RealNetwork1|10|1e-06|0 +Modelica.Blocks.Examples.Rectifier12pulseFFT|2.5|1e-06|0 +Modelica.Blocks.Examples.Rectifier6pulseFFT|2.5|1e-06|0 +Modelica.Blocks.Examples.ShowLogicalSources|10|1e-06|0 +Modelica.Blocks.Examples.SlewRateLimiter|1|1e-06|0 +Modelica.Blocks.Examples.TotalHarmonicDistortion|0.1|1e-06|0 +Modelica.ComplexBlocks.Examples.ShowTransferFunction|1|1e-06|0 +Modelica.ComplexBlocks.Examples.TestConversionBlock|1.01|1e-06|0 +Modelica.Electrical.Analog.Examples.AD_DA_conversion|0.2|1e-06|0 +Modelica.Electrical.Analog.Examples.AmplifierWithOpAmpDetailed|0.003|2e-07|0 +Modelica.Electrical.Analog.Examples.CauerLowPassAnalog|60|1e-06|0 +Modelica.Electrical.Analog.Examples.CauerLowPassOPV|60|1e-06|0 +Modelica.Electrical.Analog.Examples.CauerLowPassSC|60|1e-06|0 +Modelica.Electrical.Analog.Examples.CharacteristicIdealDiodes|1|1e-06|0 +Modelica.Electrical.Analog.Examples.CharacteristicThyristors|6|1e-06|0 +Modelica.Electrical.Analog.Examples.ChuaCircuit|50000|1e-06|0 +Modelica.Electrical.Analog.Examples.CompareTransformers|50|1e-06|0 +Modelica.Electrical.Analog.Examples.ControlledSwitchWithArc|6|1e-06|0 +Modelica.Electrical.Analog.Examples.DifferenceAmplifier|1|1e-06|0 +Modelica.Electrical.Analog.Examples.GenerationOfFMUs|1|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingMOSInverter|5|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate|200|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingPNP_NORGate|200|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingRectifier|5|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingResistor|5|1e-06|0 +Modelica.Electrical.Analog.Examples.IdealTriacCircuit|2|1e-06|0 +Modelica.Electrical.Analog.Examples.InvertingAmp|1|1e-06|0 +Modelica.Electrical.Analog.Examples.NandGate|1e-07|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Comparator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Differentiator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.HighPass|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Integrator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.InvertingAmp|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.InvertingSchmittTrigger|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.LCOscillator|0.01|0.0001|0 +Modelica.Electrical.Analog.Examples.OpAmps.LowPass|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Multivibrator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.NonInvertingAmp|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.SchmittTrigger|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.SignalGenerator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.VoltageFollower|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OvervoltageProtection|0.4|1e-06|0 +Modelica.Electrical.Analog.Examples.Rectifier|0.1|1e-06|0 +Modelica.Electrical.Analog.Examples.ResonanceCircuits|1|1e-06|0 +Modelica.Electrical.Analog.Examples.ShowSaturatingInductor|6.2832|1e-06|0 +Modelica.Electrical.Analog.Examples.ShowVariableResistor|1|1e-06|0 +Modelica.Electrical.Analog.Examples.SimpleTriacCircuit|0.001|1e-12|0 +Modelica.Electrical.Analog.Examples.SwitchWithArc|2|1e-06|0 +Modelica.Electrical.Analog.Examples.ThyristorBehaviourTest|0.0002|1e-06|0 +Modelica.Electrical.Digital.Examples.Adder4|5|1e-06|0 +Modelica.Electrical.Digital.Examples.BUF3S|12|1e-06|0 +Modelica.Electrical.Digital.Examples.Counter3|10|1e-06|0 +Modelica.Electrical.Digital.Examples.Counter|100|1e-06|0 +Modelica.Electrical.Digital.Examples.DFFREGL|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DFFREGSRH|15|1e-06|0 +Modelica.Electrical.Digital.Examples.DFFREGSRL|15|1e-06|0 +Modelica.Electrical.Digital.Examples.DFFREG|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DLATREGL|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DLATREGSRH|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DLATREGSRL|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DLATREG|25|1e-06|0 +Modelica.Electrical.Digital.Examples.FlipFlop|250|1e-06|0 +Modelica.Electrical.Digital.Examples.FullAdder|10|1e-06|0 +Modelica.Electrical.Digital.Examples.HalfAdder|5|1e-06|0 +Modelica.Electrical.Digital.Examples.INV3S|12|1e-06|0 +Modelica.Electrical.Digital.Examples.MUX2x1|15|1e-06|0 +Modelica.Electrical.Digital.Examples.Multiplexer|250|1e-06|0 +Modelica.Electrical.Digital.Examples.NRXFER|12|1e-06|0 +Modelica.Electrical.Digital.Examples.NXFER|12|1e-06|0 +Modelica.Electrical.Digital.Examples.RAM|400|1e-06|0 +Modelica.Electrical.Digital.Examples.VectorDelay|10|1e-06|0 +Modelica.Electrical.Digital.Examples.WiredX|12|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Conveyor|20|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_DOL|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Initialize|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_InverterDrive|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Inverter|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Steinmetz|1|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Transformer|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_YD|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_withLosses|5|1e-06|0 +Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMS_Start|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.ControlledDCDrives.CurrentControlledDCPM|2|1e-06|0 +Modelica.Electrical.Machines.Examples.ControlledDCDrives.PositionControlledDCPM|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.ControlledDCDrives.SpeedControlledDCPM|1|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCEE_Start|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Cooling|25|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_CurrentControlled|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_QuasiStationary|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Start|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Temperature|3|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_withLosses|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCSE_SinglePhase|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCSE_Start|2|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_DOL|3|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_Generator|30|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_LoadDump|10|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_Rectifier|1.1|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_Braking|0.8|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_CurrentSource|2|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_Inverter|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_NoLoad|0.04|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_VoltageSource|2|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMR_DOL|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMR_Inverter|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.AIMC_Transformer|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.AsymmetricalLoad|0.1|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.Rectifier12pulse|0.1|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.Rectifier6pulse|0.1|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.TransformerTestbench|0.1|1e-06|0 +Modelica.Electrical.MultiPhase.Examples.Rectifier|0.1|1e-06|0 +Modelica.Electrical.MultiPhase.Examples.TestSensors|0.1|1e-06|0 +Modelica.Electrical.MultiPhase.Examples.TransformerYD|1|1e-06|0 +Modelica.Electrical.MultiPhase.Examples.TransformerYY|1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.Rectifier1Pulse.Thyristor1Pulse_R_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.Rectifier1Pulse.Thyristor1Pulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.DiodeBridge2Pulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.HalfControlledBridge2Pulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_DC_Drive|15|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.DiodeBridge2mPulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.HalfControlledBridge2mPulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_DC_Drive|15|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.DiodeCenterTap2Pulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.DiodeCenterTap2mPulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.DiodeCenterTapmPulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.MultiPhaseTwoLevel_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.MultiPhaseTwoLevel_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.MultiPhaseTwoLevel.ThreePhaseTwoLevel_PWM|2|1e-05|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.SinglePhaseTwoLevel.SinglePhaseTwoLevel_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.SinglePhaseTwoLevel.SinglePhaseTwoLevel_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepDown.ChopperStepDown_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepDown.ChopperStepDown_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepUp.ChopperStepUp_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_DC_Drive|24|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_R|0.1|1e-06|0 +Modelica.Electrical.QuasiStationary.Machines.Examples.TransformerTestbench|0.1|1e-06|0 +Modelica.Electrical.QuasiStationary.MultiPhase.Examples.BalancingDelta|1|1e-06|0 +Modelica.Electrical.QuasiStationary.MultiPhase.Examples.BalancingStar|1|1e-06|0 +Modelica.Electrical.QuasiStationary.MultiPhase.Examples.TestSensors|0.1|1e-06|0 +Modelica.Electrical.QuasiStationary.MultiPhase.Examples.UnsymmetricalLoad|1|1e-06|0 +Modelica.Electrical.QuasiStationary.SinglePhase.Examples.ParallelResonance|1|1e-06|0 +Modelica.Electrical.QuasiStationary.SinglePhase.Examples.Rectifier|1|1e-06|0 +Modelica.Electrical.QuasiStationary.SinglePhase.Examples.SeriesBode|1|1e-06|0 +Modelica.Electrical.QuasiStationary.SinglePhase.Examples.SeriesResonance|1|1e-06|0 +Modelica.Electrical.QuasiStationary.SinglePhase.Examples.Transformer|1|1e-06|0 +Modelica.Electrical.Spice3.Examples.CascodeCircuit|0.2|1e-07|0 +Modelica.Electrical.Spice3.Examples.CoupledInductors|0.2|1e-06|0 +Modelica.Electrical.Spice3.Examples.FourInverters|5|1e-06|0 +Modelica.Electrical.Spice3.Examples.Graetz|0.025|1e-06|0 +Modelica.Electrical.Spice3.Examples.InvertersApartRecord|5|1e-06|0 +Modelica.Electrical.Spice3.Examples.InvertersExtendedModel|5|1e-06|0 +Modelica.Electrical.Spice3.Examples.Inverter|1e-11|1e-07|0 +Modelica.Electrical.Spice3.Examples.Nand|2e-07|1e-06|0 +Modelica.Electrical.Spice3.Examples.Nor|5|1e-06|0 +Modelica.Electrical.Spice3.Examples.Oscillator|0.025|1e-06|0 +Modelica.Electrical.Spice3.Examples.Spice3BenchmarkDifferentialPair|1|1e-05|0 +Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder|1e-06|1e-06|0 +Modelica.Electrical.Spice3.Examples.Spice3BenchmarkMosfetCharacterization|1e-07|1e-06|0 +Modelica.Electrical.Spice3.Examples.Spice3BenchmarkRtlInverter|1e-07|1e-08|0 +Modelica.Fluid.Examples.AST_BatchPlant.BatchPlant_StandardWater|3600|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.OneTank|100|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe1|35|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe2|120|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TanksWithEmptyingPipe1|120|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TanksWithEmptyingPipe2|120|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TwoTanks|100|1e-06|0 +Modelica.Fluid.Examples.BranchingDynamicPipes|10|1e-06|0 +Modelica.Fluid.Examples.ControlledTankSystem.ControlledTanks|900|1e-06|0 +Modelica.Fluid.Examples.DrumBoiler.DrumBoiler|5400|1e-06|0 +Modelica.Fluid.Examples.Explanatory.MeasuringTemperature|1.1|1e-06|0 +Modelica.Fluid.Examples.Explanatory.MomentumBalanceFittings|1.1|1e-06|0 +Modelica.Fluid.Examples.HeatExchanger.HeatExchangerSimulation|200|1e-05|0 +Modelica.Fluid.Examples.HeatingSystem|6000|1e-06|0 +Modelica.Fluid.Examples.IncompressibleFluidNetwork|200|1e-06|0 +Modelica.Fluid.Examples.InverseParameterization|10|1e-06|0 +Modelica.Fluid.Examples.NonCircularPipes|1|1e-06|0 +Modelica.Fluid.Examples.PumpingSystem|2000|1e-06|0 +Modelica.Fluid.Examples.Tanks.EmptyTanks|50|1e-06|0 +Modelica.Fluid.Examples.Tanks.TanksWithOverflow|25000|1e-06|0 +Modelica.Fluid.Examples.Tanks.ThreeTanks|200|1e-06|0 +Modelica.Fluid.Examples.TraceSubstances.RoomCO2WithControls|86400|1e-06|0 +Modelica.Fluid.Examples.TraceSubstances.RoomCO2|3600|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.HysteresisModelComparison|14|1e-05|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis|0.02|0.0001|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis1|0.02|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis2|0.1|0.0001|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.ThreePhaseTransformerWithRectifier|0.2|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ArmatureStroke|0.05|1e-07|0 +Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ForceCurrentBehaviour|6|1e-07|0 +Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ForceStrokeBehaviour|4|1e-07|-4 +Modelica.Magnetic.FluxTubes.Examples.SaturatedInductor|0.1|1e-07|0 +Modelica.Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonPullInStroke|0.05|1e-07|0 +Modelica.Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonQuasiStationary|10|1e-07|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Conveyor|20|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_DOL_MultiPhase|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_DOL|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Initialize|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Inverter|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Steinmetz|1|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_Transformer|2.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_YD|2.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_withLosses|5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMS_Start_MultiPhase|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.AIMS_Start|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_DOL|3|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Generator_MultiPhase|30|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Generator|30|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_LoadDump|10|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Rectifier|1.1|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_Braking|0.8|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_CurrentSource|2|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_Inverter_MultiPhase|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_Inverter|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_VoltageSource|2|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMR_Inverter_MultiPhase|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMR_Inverter|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses|40|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.Components.MultiPhaseInductance|100|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.Components.SinglePhaseInductance|100|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.FixedShapes.CuboidSections|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.FixedShapes.CylinderSections|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.CylinderLeakage|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.GeneralLeakage|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.LinearInductor|0.2|1e-07|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.NonLinearInductor|0.2|1e-07|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Characteristics|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Conveyor|20|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_DOL|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Initialize|1.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Transformer|2.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_YD|2.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_withLosses|10|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Characteristics|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Start|1.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Generator|30|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_CurrentSource|2|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_MTPA|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_Mains|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_OpenCircuit|0.1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMR_CurrentSource|2|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.Components.EddyCurrentLosses|40|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.Components.MultiPhaseInductance|100|1e-06|0 +Modelica.Math.FastFourierTransform.Examples.RealFFT1|6|1e-06|0 +Modelica.Math.FastFourierTransform.Examples.RealFFT2|6|1e-06|0 +Modelica.Math.Nonlinear.Examples.quadratureLobatto3|5|1e-06|0 +Modelica.Math.Random.Examples.GenerateRandomNumbers|2|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Constraints.RevoluteConstraint|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Constraints.SphericalConstraint|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Constraints.UniversalConstraint|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.ForceAndTorque|1.01|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.FreeBody|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.HeatLosses|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.InitSpringConstant|1.01|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.LineForceWithTwoMasses|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.PendulumWithSpringDamper|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses2|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses|2|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravity|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetDriving|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetPulling|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel|4|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.SpringDamperSystem|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.SpringMassSystem|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.SpringWithMass|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.Surfaces|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.ThreeSprings|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.UserDefinedGravityField|10|1e-08|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Engine1a|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Engine1b_analytic|0.5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Engine1b|0.5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic|1.01|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6|1.01|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar1|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar_analytic|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.PlanarFourbar|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.ActuatedDrive|1.1|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.BevelGear1D|1|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.GearConstraint|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.GyroscopicEffects|5|1e-08|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.MovingActuatedDrive|1.1|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.fullRobot|2|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.oneAxis|1.6|1e-06|0 +Modelica.Mechanics.Rotational.Examples.Backlash|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.CoupledClutches|1.5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.EddyCurrentBrake|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.ElasticBearing|10|1e-06|0 +Modelica.Mechanics.Rotational.Examples.FirstGrounded|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.First|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.Friction|3|1e-06|0 +Modelica.Mechanics.Rotational.Examples.GenerationOfFMUs|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.HeatLosses|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.LossyGearDemo1|0.5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.LossyGearDemo2|0.5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.LossyGearDemo3|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.OneWayClutchDisengaged|2|1e-06|0 +Modelica.Mechanics.Rotational.Examples.OneWayClutch|2|1e-06|0 +Modelica.Mechanics.Rotational.Examples.RollingWheel|5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.SimpleGearShift|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.Accelerate|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.Brake|2|1e-06|0 +Modelica.Mechanics.Translational.Examples.Damper|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.EddyCurrentBrake|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.ElastoGap|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.Friction|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.GenerationOfFMUs|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.HeatLosses|2|1e-06|0 +Modelica.Mechanics.Translational.Examples.InitialConditions|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.Oscillator|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.PreLoad|100|1e-06|0 +Modelica.Mechanics.Translational.Examples.Sensors|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.SignConvention|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.WhyArrows|1|1e-06|0 +Modelica.Media.Examples.IdealGasH2O|1|1e-06|0 +Modelica.Media.Examples.MixtureGases|1|1e-06|0 +Modelica.Media.Examples.MoistAir|1|1e-05|0 +Modelica.Media.Examples.PsychrometricData|1|1e-06|0 +Modelica.Media.Examples.R134a.R134a1|1.01|1e-06|0 +Modelica.Media.Examples.R134a.R134a2|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.DryAir1|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.DryAir2|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.Inverse_sh_TX|1|1e-06|0 +Modelica.Media.Examples.ReferenceAir.Inverse_sh_T|1|1e-06|0 +Modelica.Media.Examples.ReferenceAir.MoistAir1|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.MoistAir2|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.MoistAir|1|1e-05|0 +Modelica.Media.Examples.SimpleLiquidWater|100|1e-06|0 +Modelica.Media.Examples.SolveOneNonlinearEquation.InverseIncompressible_sh_T|1|1e-06|0 +Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sh_TX|1|1e-06|0 +Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sh_T|1|1e-06|0 +Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sine|0|1e-06|0 +Modelica.Media.Examples.TestOnly.FlueGas|1|1e-06|0 +Modelica.Media.Examples.TestOnly.IdealGasN2Mix|1|1e-06|0 +Modelica.Media.Examples.TestOnly.IdealGasN2|1|1e-06|0 +Modelica.Media.Examples.TestOnly.MixIdealGasAir|1|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Air.DryAirNasa|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Air.MoistAir|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Air.SimpleAir|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.IdealGases.Air|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.IdealGases.Nitrogen|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.IdealGases.SimpleNaturalGasFixedComposition|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.IdealGases.SimpleNaturalGas|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Incompressible.Essotherm650|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Incompressible.Glycol47|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.LinearFluid.LinearColdWater|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.LinearFluid.LinearWater_pT|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Water.ConstantPropertyLiquidWater|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Water.IdealSteam|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Water.WaterIF97OnePhase_ph|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Water.WaterIF97_pT|1.01|1e-06|0 +Modelica.Media.Examples.Tests.MediaTestModels.Water.WaterIF97_ph|1.01|1e-06|0 +Modelica.Media.Examples.TwoPhaseWater.TestTwoPhaseStates|22|1e-06|0 +Modelica.Media.Examples.WaterIF97|1|1e-06|0 +Modelica.Media.Incompressible.Examples.TestGlycol|1.01|1e-06|0 +Modelica.StateGraph.Examples.ControlledTanks|100|1e-06|0 +Modelica.StateGraph.Examples.ExecutionPaths|15|1e-06|0 +Modelica.StateGraph.Examples.FirstExample_Variant2|5|1e-06|0 +Modelica.StateGraph.Examples.FirstExample_Variant3|5|1e-06|0 +Modelica.StateGraph.Examples.FirstExample|5|1e-06|0 +Modelica.StateGraph.Examples.ShowCompositeStep|15|1e-06|0 +Modelica.StateGraph.Examples.ShowExceptions|20|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.IndirectCooling|1.5|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.OneMass|1|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.ParallelCooling|1|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.ParallelPumpDropOut|2|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.PumpAndValve|2|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.PumpDropOut|2|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.SimpleCooling|1|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.TestCylinder|2|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.TestOpenTank|1.5|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.TwoMass|1|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.TwoTanks|1.5|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.WaterPump|2|1e-06|0 +Modelica.Thermal.HeatTransfer.Examples.ControlledTemperature|10|1e-06|0 +Modelica.Thermal.HeatTransfer.Examples.GenerationOfFMUs|1|1e-06|0 +Modelica.Thermal.HeatTransfer.Examples.Motor|7200|1e-06|0 +Modelica.Thermal.HeatTransfer.Examples.TwoMasses|1|1e-06|0 +Modelica.Utilities.Examples.ReadRealMatrixFromFile|0.1|1e-06|0 +Modelica.Utilities.Examples.WriteRealMatrixToFile|0.1|1e-06|0 +Modelica.Utilities.Examples.readRealParameterModel|1.01|1e-06|0 diff --git a/models/experiments_Modelica_4.1.0.txt b/models/experiments_Modelica_4.1.0.txt index 9717d10..82a8200 100644 --- a/models/experiments_Modelica_4.1.0.txt +++ b/models/experiments_Modelica_4.1.0.txt @@ -1,534 +1,534 @@ -Modelica.Blocks.Examples.BooleanNetwork1|10|1e-06 -Modelica.Blocks.Examples.BusUsage|2|1e-06 -Modelica.Blocks.Examples.CompareSincExpSine|1|1e-06 -Modelica.Blocks.Examples.DemoSignalCharacteristic|0.5|1e-06 -Modelica.Blocks.Examples.DemonstrateContinuousSignalExtrema|1|1e-06 -Modelica.Blocks.Examples.DemonstrateSignalExtrema|1.5|1e-06 -Modelica.Blocks.Examples.FilterWithDifferentiation|0.9|1e-06 -Modelica.Blocks.Examples.FilterWithRiseTime|4|1e-06 -Modelica.Blocks.Examples.Filter|0.9|1e-06 -Modelica.Blocks.Examples.IntegerNetwork1|10|1e-06 -Modelica.Blocks.Examples.Interaction1|10|1e-06 -Modelica.Blocks.Examples.InverseModel|1|1e-06 -Modelica.Blocks.Examples.LogicalNetwork1|10|1e-06 -Modelica.Blocks.Examples.Modulation|1|1e-06 -Modelica.Blocks.Examples.Noise.ActuatorWithNoise|8|1e-05 -Modelica.Blocks.Examples.Noise.AutomaticSeed|2|1e-06 -Modelica.Blocks.Examples.Noise.Densities|20|1e-06 -Modelica.Blocks.Examples.Noise.Distributions|2|1e-06 -Modelica.Blocks.Examples.Noise.DrydenContinuousTurbulence|100|1e-06 -Modelica.Blocks.Examples.Noise.ImpureGenerator|2|1e-06 -Modelica.Blocks.Examples.Noise.NormalNoiseProperties|20|1e-09 -Modelica.Blocks.Examples.Noise.UniformNoiseProperties|20|1e-09 -Modelica.Blocks.Examples.Noise.UniformNoise|2|1e-06 -Modelica.Blocks.Examples.PID_Controller|4|1e-06 -Modelica.Blocks.Examples.RealNetwork1|10|1e-06 -Modelica.Blocks.Examples.Rectifier12pulseFFT|0.25|1e-06 -Modelica.Blocks.Examples.Rectifier6pulseFFT|0.25|1e-06 -Modelica.Blocks.Examples.ShowLogicalSources|10|1e-06 -Modelica.Blocks.Examples.SinCosEncoder|1|1e-05 -Modelica.Blocks.Examples.SlewRateLimiter|1|1e-06 -Modelica.Blocks.Examples.TotalHarmonicDistortion|0.1|1e-06 -Modelica.Clocked.Examples.CascadeControlledDrive.AbsoluteClocks|4|1e-06 -Modelica.Clocked.Examples.CascadeControlledDrive.Continuous|4|1e-06 -Modelica.Clocked.Examples.CascadeControlledDrive.SubClocked|4|1e-06 -Modelica.Clocked.Examples.CascadeControlledDrive.SuperSampled|4|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.AssignClockVectorized|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.AssignClock|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.BackSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.Hold|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.Sample1|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.Sample2|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.SampleClocked|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.SampleVectorizedAndClocked|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.ShiftSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.SubSample|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.SuperSample|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.TickBasedPulse|1|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.TickBasedStep|1|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.TimeBasedPulse|1|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.TimeBasedStep|1|1e-06 -Modelica.Clocked.Examples.Elementary.BooleanSignals.UpSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.ClockSignals.LogicalSample|2|1e-06 -Modelica.Clocked.Examples.Elementary.ClockSignals.RotationalSample|2|1e-06 -Modelica.Clocked.Examples.Elementary.ClockSignals.ShiftSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.ClockSignals.SubSample|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.ClockSignals.SuperSample|0.08|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.AssignClockVectorized|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.AssignClock|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.BackSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.Hold|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.Sample1|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.Sample2|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.SampleClocked|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.SampleVectorizedAndClocked|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.ShiftSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.SubSample|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.SuperSample|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.TickBasedStep|1|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.TimeBasedStep|1|1e-06 -Modelica.Clocked.Examples.Elementary.IntegerSignals.UpSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.AssignClockToSquareWaveHold|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.AssignClockToTriggerHold|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.AssignClockVectorized|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.AssignClock|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.BackSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.FractionalDelay|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.HoldWithDAeffects1|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.HoldWithDAeffects2|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.Hold|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.Sample1|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.Sample2|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.Sample3|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.SampleClocked|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.SampleVectorizedAndClocked|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.SampleWithADeffects|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.ShiftSample|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.SubSample|0.2|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.SuperSampleInterpolated|0.06|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.SuperSample|0.08|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.TickBasedRamp|1|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.TickBasedSine|1|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.TickBasedStep|1|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.TimeBasedRamp|1|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.TimeBasedSine|1|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.TimeBasedStep|1|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.UniformNoiseXorshift64star|1|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.UniformNoise|1.1|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.UpSample1|0.09|1e-06 -Modelica.Clocked.Examples.Elementary.RealSignals.UpSample2|0.06|1e-06 -Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWithDiscreteController|3|1e-06 -Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWithDiscreteTextbookController|5|1e-06 -Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWithDiscretizedContinuousController|5|1e-06 -Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWith_AD_DA_Effects|5|1e-06 -Modelica.Clocked.Examples.SimpleControlledDrive.Continuous|5|1e-06 -Modelica.Clocked.Examples.SimpleControlledDrive.ExactlyClockedWithDiscreteController|5|1e-06 -Modelica.Clocked.Examples.Systems.ControlledMixingUnit|300|1e-06 -Modelica.Clocked.Examples.Systems.EngineThrottleControl|1.1|1e-06 -Modelica.Clocked.Examples.Systems.Utilities.ComponentsMixingUnit.MixingUnitWithContinuousControl|500|1e-06 -Modelica.ComplexBlocks.Examples.ShowTransferFunction|1|1e-06 -Modelica.ComplexBlocks.Examples.TestConversionBlock|1.01|1e-06 -Modelica.Electrical.Analog.Examples.AD_DA_conversion|0.2|1e-06 -Modelica.Electrical.Analog.Examples.AmplifierWithOpAmpDetailed|0.003|2e-07 -Modelica.Electrical.Analog.Examples.CauerLowPassAnalog|60|1e-06 -Modelica.Electrical.Analog.Examples.CauerLowPassOPV|60|1e-06 -Modelica.Electrical.Analog.Examples.CauerLowPassSC|60|1e-06 -Modelica.Electrical.Analog.Examples.CharacteristicIdealDiodes|1|1e-06 -Modelica.Electrical.Analog.Examples.CharacteristicThyristors|6|1e-06 -Modelica.Electrical.Analog.Examples.ChuaCircuit|50000|1e-06 -Modelica.Electrical.Analog.Examples.CompareTransformers|50|1e-06 -Modelica.Electrical.Analog.Examples.ControlledSwitchWithArc|6|1e-06 -Modelica.Electrical.Analog.Examples.DemoPowerSupplyWithBuffer|1|1e-06 -Modelica.Electrical.Analog.Examples.DemoPowerSupply|1|1e-06 -Modelica.Electrical.Analog.Examples.DemonstrateLightning|0.001|1e-06 -Modelica.Electrical.Analog.Examples.DifferenceAmplifier|1e-08|1e-06 -Modelica.Electrical.Analog.Examples.GenerationOfFMUs|1|1e-06 -Modelica.Electrical.Analog.Examples.HeatingMOSInverter|5|1e-06 -Modelica.Electrical.Analog.Examples.HeatingNPN_NORGate|200|1e-06 -Modelica.Electrical.Analog.Examples.HeatingPNP_NORGate|200|1e-06 -Modelica.Electrical.Analog.Examples.HeatingRectifier|5|1e-06 -Modelica.Electrical.Analog.Examples.IdealTriacCircuit|2|1e-06 -Modelica.Electrical.Analog.Examples.InvertingAmp|1|1e-06 -Modelica.Electrical.Analog.Examples.Lines.CompareLineTrunks|0.004|1e-06 -Modelica.Electrical.Analog.Examples.Lines.CompareLosslessLines|2e-08|1e-06 -Modelica.Electrical.Analog.Examples.Lines.LightningLosslessTransmissionLine|0.025|1e-06 -Modelica.Electrical.Analog.Examples.Lines.LightningSegmentedTransmissionLine|0.025|1e-06 -Modelica.Electrical.Analog.Examples.Lines.SmoothStep|0.003|1e-06 -Modelica.Electrical.Analog.Examples.NandGate|1e-07|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Adder|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Comparator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.ControlCircuit|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.DifferentialAmplifier|0.2|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Differentiator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.HighPass|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Integrator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.InvertingAmplifier|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.InvertingSchmittTrigger|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.LCOscillator|0.01|0.0001 -Modelica.Electrical.Analog.Examples.OpAmps.LowPass|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Multivibrator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.NonInvertingAmplifier|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.SchmittTrigger|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.SignalGenerator|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.Subtracter|1|1e-06 -Modelica.Electrical.Analog.Examples.OpAmps.VoltageFollower|1|1e-06 -Modelica.Electrical.Analog.Examples.OvervoltageProtection|0.4|1e-06 -Modelica.Electrical.Analog.Examples.ParallelResonance|1|1e-06 -Modelica.Electrical.Analog.Examples.Rectifier|0.1|1e-06 -Modelica.Electrical.Analog.Examples.Resistor|5|1e-06 -Modelica.Electrical.Analog.Examples.ResonanceCircuits|1|1e-06 -Modelica.Electrical.Analog.Examples.SeriesResonance|1|1e-06 -Modelica.Electrical.Analog.Examples.ShowSaturatingInductor|6.2832|1e-06 -Modelica.Electrical.Analog.Examples.ShowVariableResistor|1|1e-06 -Modelica.Electrical.Analog.Examples.SimpleTriacCircuit|0.001|1e-12 -Modelica.Electrical.Analog.Examples.SwitchWithArc|2|1e-06 -Modelica.Electrical.Analog.Examples.ThyristorBehaviourTest|0.0002|1e-06 -Modelica.Electrical.Batteries.Examples.BatteryDischargeCharge|3600|1e-06 -Modelica.Electrical.Batteries.Examples.CCCV_CellRC|1200|1e-06 -Modelica.Electrical.Batteries.Examples.CCCV_Cell|1200|1e-06 -Modelica.Electrical.Batteries.Examples.CCCV_StackRC|1200|1e-06 -Modelica.Electrical.Batteries.Examples.CCCV_Stack|1200|1e-06 -Modelica.Electrical.Batteries.Examples.CCCVcharging|1200|1e-06 -Modelica.Electrical.Batteries.Examples.ShowImpedance|1|1e-06 -Modelica.Electrical.Batteries.Examples.SuperCapDischargeCharge|720|1e-06 -Modelica.Electrical.Digital.Examples.Adder4|5|1e-06 -Modelica.Electrical.Digital.Examples.BUF3S|12|1e-06 -Modelica.Electrical.Digital.Examples.Counter3|10|1e-06 -Modelica.Electrical.Digital.Examples.Counter|100|1e-06 -Modelica.Electrical.Digital.Examples.DFFREGL|25|1e-06 -Modelica.Electrical.Digital.Examples.DFFREGSRH|15|1e-06 -Modelica.Electrical.Digital.Examples.DFFREGSRL|15|1e-06 -Modelica.Electrical.Digital.Examples.DFFREG|25|1e-06 -Modelica.Electrical.Digital.Examples.DLATREGL|25|1e-06 -Modelica.Electrical.Digital.Examples.DLATREGSRH|25|1e-06 -Modelica.Electrical.Digital.Examples.DLATREGSRL|25|1e-06 -Modelica.Electrical.Digital.Examples.DLATREG|25|1e-06 -Modelica.Electrical.Digital.Examples.FlipFlop|250|1e-06 -Modelica.Electrical.Digital.Examples.FullAdder|10|1e-06 -Modelica.Electrical.Digital.Examples.HalfAdder|5|1e-06 -Modelica.Electrical.Digital.Examples.INV3S|12|1e-06 -Modelica.Electrical.Digital.Examples.MUX2x1|15|1e-06 -Modelica.Electrical.Digital.Examples.Multiplexer|250|1e-06 -Modelica.Electrical.Digital.Examples.NRXFER|12|1e-06 -Modelica.Electrical.Digital.Examples.NXFER|12|1e-06 -Modelica.Electrical.Digital.Examples.RAM|400|1e-06 -Modelica.Electrical.Digital.Examples.VectorDelay|10|1e-06 -Modelica.Electrical.Digital.Examples.WiredX|12|1e-06 -Modelica.Electrical.Machines.Examples.ControlledDCDrives.CurrentControlledDCPM|2|1e-06 -Modelica.Electrical.Machines.Examples.ControlledDCDrives.PositionControlledDCPM|2.5|1e-06 -Modelica.Electrical.Machines.Examples.ControlledDCDrives.SpeedControlledDCPM|1|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCEE_Start|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Cooling|25|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_CurrentControlled|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Drive|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_QuasiStatic|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Start|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Temperature|3|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCPM_withLosses|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCSE_SinglePhase|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DCSE_Start|2|1e-06 -Modelica.Electrical.Machines.Examples.DCMachines.DC_CompareCharacteristics|6|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Conveyor|20|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_DCBraking|25|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_DOL|1.5|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Initialize|1.5|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_InverterDrive|1.5|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Inverter|1.5|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Steinmetz|1|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Transformer|2.5|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_YDarc|2.5|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_YD|2.5|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMC_withLosses|5|1e-06 -Modelica.Electrical.Machines.Examples.InductionMachines.IMS_Start|1.5|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMEE_DOL|3|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMEE_Generator|30|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMEE_LoadDump|10|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMEE_Rectifier|1.1|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_Braking|0.8|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_CurrentSource|2|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_Inverter|1.5|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_NoLoad|0.32|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_ResistiveBraking|1|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_VoltageSource|2|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMR_DOL|2.5|1e-06 -Modelica.Electrical.Machines.Examples.SynchronousMachines.SMR_Inverter|1.5|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.AsymmetricalLoad|0.1|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.IMC_Transformer|2.5|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.Rectifier12pulse|0.1|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.Rectifier6pulse|0.1|1e-06 -Modelica.Electrical.Machines.Examples.Transformers.TransformerTestbench|0.1|1e-06 -Modelica.Electrical.Polyphase.Examples.PolyphaseRectifier|0.2|1e-06 -Modelica.Electrical.Polyphase.Examples.Rectifier|0.1|1e-06 -Modelica.Electrical.Polyphase.Examples.TestSensors|0.1|1e-06 -Modelica.Electrical.Polyphase.Examples.TransformerYD|1|1e-06 -Modelica.Electrical.Polyphase.Examples.TransformerYY|1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACAC.Dimmer_RL|8|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACAC.Dimmer_R|8|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACAC.SoftStarter|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.Rectifier1Pulse.Thyristor1Pulse_R_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.Rectifier1Pulse.Thyristor1Pulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.DiodeBridge2Pulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.HalfControlledBridge2Pulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_DC_Drive|15|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.DiodeBridge2mPulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.HalfControlledBridge2mPulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_DC_Drive|15|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.DiodeCenterTap2Pulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.DiodeCenterTap2mPulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.DiodeCenterTapmPulse|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RLV_Characteristic|10|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RLV|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCAC.PolyphaseTwoLevel.PolyphaseTwoLevel_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCAC.PolyphaseTwoLevel.PolyphaseTwoLevel_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCAC.PolyphaseTwoLevel.ThreePhaseTwoLevel_PWM|2|1e-05 -Modelica.Electrical.PowerConverters.Examples.DCAC.SinglePhaseTwoLevel.SinglePhaseTwoLevel_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCAC.SinglePhaseTwoLevel.SinglePhaseTwoLevel_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperBuckBoost.ChopperBuckBoost_DutyCycle|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepDown.ChopperStepDown_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepDown.ChopperStepDown_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepUp.ChopperStepUp_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_DC_Drive|24|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_RL|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_R|0.1|1e-06 -Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_TrianglePWM_RL|0.1|1e-06 -Modelica.Electrical.QuasiStatic.Machines.Examples.TransformerTestbench|0.1|1e-06 -Modelica.Electrical.QuasiStatic.Polyphase.Examples.BalancingDelta|1|1e-06 -Modelica.Electrical.QuasiStatic.Polyphase.Examples.BalancingStar|1|1e-06 -Modelica.Electrical.QuasiStatic.Polyphase.Examples.TestSensors|0.1|1e-06 -Modelica.Electrical.QuasiStatic.Polyphase.Examples.UnsymmetricalLoad|1|1e-06 -Modelica.Electrical.QuasiStatic.SinglePhase.Examples.MultipleResonance|1|1e-06 -Modelica.Electrical.QuasiStatic.SinglePhase.Examples.ParallelResonance|1|1e-06 -Modelica.Electrical.QuasiStatic.SinglePhase.Examples.Rectifier|1|1e-06 -Modelica.Electrical.QuasiStatic.SinglePhase.Examples.SeriesBode|1|1e-06 -Modelica.Electrical.QuasiStatic.SinglePhase.Examples.SeriesResonance|1|1e-06 -Modelica.Electrical.QuasiStatic.SinglePhase.Examples.Transformer|1|1e-06 -Modelica.Electrical.Spice3.Examples.CascodeCircuit|0.2|1e-07 -Modelica.Electrical.Spice3.Examples.CoupledInductors|0.2|1e-06 -Modelica.Electrical.Spice3.Examples.FourInverters|5|1e-06 -Modelica.Electrical.Spice3.Examples.Graetz|0.025|1e-06 -Modelica.Electrical.Spice3.Examples.InvertersApartRecord|5|1e-06 -Modelica.Electrical.Spice3.Examples.InvertersExtendedModel|5|1e-06 -Modelica.Electrical.Spice3.Examples.Inverter|1e-11|1e-07 -Modelica.Electrical.Spice3.Examples.Nand|2e-07|1e-06 -Modelica.Electrical.Spice3.Examples.Nor|5|1e-06 -Modelica.Electrical.Spice3.Examples.Oscillator|0.025|1e-06 -Modelica.Electrical.Spice3.Examples.Spice3BenchmarkDifferentialPair|1|1e-05 -Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder|1e-06|1e-06 -Modelica.Electrical.Spice3.Examples.Spice3BenchmarkMosfetCharacterization|1e-07|1e-06 -Modelica.Electrical.Spice3.Examples.Spice3BenchmarkRtlInverter|1e-07|1e-08 -Modelica.Fluid.Examples.AST_BatchPlant.BatchPlant_StandardWater|3600|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.OneTank|100|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe1|35|1e-07 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe2|120|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TanksWithEmptyingPipe1|120|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TanksWithEmptyingPipe2|120|1e-06 -Modelica.Fluid.Examples.AST_BatchPlant.Test.TwoTanks|100|1e-06 -Modelica.Fluid.Examples.BranchingDynamicPipes|10|1e-06 -Modelica.Fluid.Examples.ControlledTankSystem.ControlledTanks|900|1e-06 -Modelica.Fluid.Examples.DrumBoiler.DrumBoiler|5400|1e-06 -Modelica.Fluid.Examples.Explanatory.MeasuringTemperature|1.1|1e-06 -Modelica.Fluid.Examples.Explanatory.MomentumBalanceFittings|1.1|1e-06 -Modelica.Fluid.Examples.HeatExchanger.HeatExchangerSimulation|200|1e-05 -Modelica.Fluid.Examples.HeatingSystem|6000|1e-06 -Modelica.Fluid.Examples.IncompressibleFluidNetwork|200|1e-06 -Modelica.Fluid.Examples.InverseParameterization|10|1e-06 -Modelica.Fluid.Examples.NonCircularPipes|1|1e-06 -Modelica.Fluid.Examples.PumpingSystem|2000|1e-06 -Modelica.Fluid.Examples.Tanks.EmptyTanks|50|1e-06 -Modelica.Fluid.Examples.Tanks.TanksWithOverflow|25000|1e-06 -Modelica.Fluid.Examples.Tanks.ThreeTanks|200|1e-06 -Modelica.Fluid.Examples.TraceSubstances.RoomCO2WithControls|86400|1e-06 -Modelica.Fluid.Examples.TraceSubstances.RoomCO2|3600|1e-06 -Modelica.Magnetic.FluxTubes.Examples.BasicExamples.QuadraticCoreAirgap|0.05|1e-06 -Modelica.Magnetic.FluxTubes.Examples.BasicExamples.SaturatedInductor|0.1|1e-07 -Modelica.Magnetic.FluxTubes.Examples.BasicExamples.ToroidalCoreAirgap|0.05|1e-06 -Modelica.Magnetic.FluxTubes.Examples.BasicExamples.ToroidalCoreQuadraticCrossSection|0.05|1e-06 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.HysteresisModelComparison|14|1e-05 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis|0.02|0.0001 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis1|0.02|1e-06 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis2|0.1|0.0001 -Modelica.Magnetic.FluxTubes.Examples.Hysteresis.ThreePhaseTransformerWithRectifier|0.2|1e-06 -Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ArmatureStroke|0.05|1e-07 -Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ForceCurrentBehaviour|6|1e-07 -Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ForceStrokeBehaviour|4|1e-07 -Modelica.Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonPullInStroke|0.05|1e-07 -Modelica.Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonQuasiStatic|10|1e-07 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.ComparisonPolyphase.IMC_DOL_CommonLeakage|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.ComparisonPolyphase.IMC_DOL_Polyphase|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.ComparisonPolyphase.IMS_Start_Polyphase|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Conveyor|20|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_DOL|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Initialize|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Inverter|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Steinmetz|1|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Transformer|2.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_YD|2.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_withLosses|5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Start|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.ComparisonPolyphase.SMEE_Generator_Polyphase|30|1e-07 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.ComparisonPolyphase.SMPM_Inverter_Polyphase|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.ComparisonPolyphase.SMR_Inverter_Polyphase|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_DOL|3|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Generator|30|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_LoadDump|10|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Rectifier|1.1|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_Braking|0.8|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_CurrentSource|2|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_Inverter|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_VoltageSource|2|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMR_Inverter|1.5|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses|40|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.Components.PolyphaseInductance|100|1e-06 -Modelica.Magnetic.FundamentalWave.Examples.Components.SinglePhaseInductance|100|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.BasicExamples.QuadraticCoreAirgap|0.05|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.BasicExamples.ToroidalCoreAirgap|0.05|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.BasicExamples.ToroidalCoreQuadraticCrossSection|0.05|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.FixedShapes.CuboidSections|1|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.FixedShapes.CylinderSections|1|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.CylinderLeakage|1|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.GeneralLeakage|1|1e-06 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.LinearInductor|0.2|1e-07 -Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.NonLinearInductor|0.2|1e-07 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Characteristics|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Conveyor|20|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_DOL|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Initialize|1.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Inverter|1.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Transformer|2.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_YD|2.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_withLosses|10|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Characteristics|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Start|1.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Generator|30|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_CurrentSource|2|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_FieldWeakening|2.5|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_MTPA|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_Mains|1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_OpenCircuit|0.1|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMR_CurrentSource|2|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.Components.EddyCurrentLosses|40|1e-06 -Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.Components.PolyphaseInductance|100|1e-06 -Modelica.Math.FastFourierTransform.Examples.RealFFT1|6|1e-06 -Modelica.Math.FastFourierTransform.Examples.RealFFT2|6|1e-06 -Modelica.Math.Nonlinear.Examples.QuadratureLobatto3|5|1e-06 -Modelica.Math.Random.Examples.GenerateRandomNumbers|2|1e-06 -Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Constraints.RevoluteConstraint|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Constraints.SphericalConstraint|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Constraints.UniversalConstraint|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.ForceAndTorque|1.01|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.FreeBody|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.HeatLosses|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.InitSpringConstant|1.01|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.LineForceWithTwoMasses|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.PendulumWithSpringDamper|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses2|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses|2|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravity|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetDriving|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetPulling|3|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel|4|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.SpringDamperSystem|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.SpringMassSystem|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.SpringWithMass|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.Surfaces|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.ThreeSprings|10|1e-06 -Modelica.Mechanics.MultiBody.Examples.Elementary.UserDefinedGravityField|10|1e-08 -Modelica.Mechanics.MultiBody.Examples.Loops.Engine1a|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Engine1b_analytic|0.5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Engine1b|0.5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic|1.01|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6|1.01|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar1|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar_analytic|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.PlanarFourbar|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.ActuatedDrive|1.1|1e-06 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.BevelGear1D|1|1e-06 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.GearConstraint|5|1e-06 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.GyroscopicEffects|5|1e-08 -Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.MovingActuatedDrive|1.1|1e-06 -Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.FullRobot|2|1e-06 -Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.OneAxis|1.6|1e-06 -Modelica.Mechanics.Rotational.Examples.Backlash|1|1e-06 -Modelica.Mechanics.Rotational.Examples.CompareBrakingTorque|5|1e-06 -Modelica.Mechanics.Rotational.Examples.CoupledClutches|1.5|1e-06 -Modelica.Mechanics.Rotational.Examples.EddyCurrentBrake|1|1e-06 -Modelica.Mechanics.Rotational.Examples.ElasticBearing|10|1e-06 -Modelica.Mechanics.Rotational.Examples.FirstGrounded|1|1e-06 -Modelica.Mechanics.Rotational.Examples.First|1|1e-06 -Modelica.Mechanics.Rotational.Examples.Friction|3|1e-06 -Modelica.Mechanics.Rotational.Examples.GenerationOfFMUs|1|1e-06 -Modelica.Mechanics.Rotational.Examples.HeatLosses|1|1e-06 -Modelica.Mechanics.Rotational.Examples.LossyGearDemo1|0.5|1e-06 -Modelica.Mechanics.Rotational.Examples.LossyGearDemo2|0.5|1e-06 -Modelica.Mechanics.Rotational.Examples.LossyGearDemo3|1|1e-06 -Modelica.Mechanics.Rotational.Examples.OneWayClutchDisengaged|2|1e-06 -Modelica.Mechanics.Rotational.Examples.OneWayClutch|2|1e-06 -Modelica.Mechanics.Rotational.Examples.RollingWheel|5|1e-06 -Modelica.Mechanics.Rotational.Examples.SimpleGearShift|5|1e-06 -Modelica.Mechanics.Translational.Examples.Accelerate|1|1e-06 -Modelica.Mechanics.Translational.Examples.Brake|2|1e-06 -Modelica.Mechanics.Translational.Examples.CompareBrakingForce|5|1e-06 -Modelica.Mechanics.Translational.Examples.Damper|1|1e-06 -Modelica.Mechanics.Translational.Examples.EddyCurrentBrake|1|1e-06 -Modelica.Mechanics.Translational.Examples.ElastoGap|5|1e-06 -Modelica.Mechanics.Translational.Examples.Friction|5|1e-06 -Modelica.Mechanics.Translational.Examples.GenerationOfFMUs|1|1e-06 -Modelica.Mechanics.Translational.Examples.HeatLosses|2|1e-06 -Modelica.Mechanics.Translational.Examples.InitialConditions|5|1e-06 -Modelica.Mechanics.Translational.Examples.Oscillator|1|1e-06 -Modelica.Mechanics.Translational.Examples.PreLoad|100|1e-06 -Modelica.Mechanics.Translational.Examples.Sensors|1|1e-06 -Modelica.Mechanics.Translational.Examples.SignConvention|1|1e-06 -Modelica.Mechanics.Translational.Examples.Vehicle|60|1e-06 -Modelica.Mechanics.Translational.Examples.WhyArrows|1|1e-06 -Modelica.Media.Examples.IdealGasH2O|1|1e-06 -Modelica.Media.Examples.MixtureGases|1|1e-06 -Modelica.Media.Examples.MoistAir|1|1e-05 -Modelica.Media.Examples.PsychrometricData|1|1e-06 -Modelica.Media.Examples.R134a.R134a1|1.01|1e-06 -Modelica.Media.Examples.R134a.R134a2|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.DryAir1|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.DryAir2|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.Inverse_sh_TX|1|1e-06 -Modelica.Media.Examples.ReferenceAir.Inverse_sh_T|1|1e-06 -Modelica.Media.Examples.ReferenceAir.MoistAir1|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.MoistAir2|1.01|1e-06 -Modelica.Media.Examples.ReferenceAir.MoistAir|1|1e-05 -Modelica.Media.Examples.SimpleLiquidWater|100|1e-06 -Modelica.Media.Examples.SolveOneNonlinearEquation.InverseIncompressible_sh_T|1|1e-06 -Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sh_TX|1|1e-06 -Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sh_T|1|1e-06 -Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sine|0|1e-06 -Modelica.Media.Examples.TwoPhaseWater.TestTwoPhaseStates|22|1e-06 -Modelica.Media.Examples.WaterIF97|1|1e-06 -Modelica.Media.Incompressible.Examples.TestGlycol|1.01|1e-06 -Modelica.StateGraph.Examples.ControlledTanks|100|1e-06 -Modelica.StateGraph.Examples.ExecutionPaths|15.5|1e-06 -Modelica.StateGraph.Examples.FirstExample_Variant2|5.5|1e-06 -Modelica.StateGraph.Examples.FirstExample_Variant3|5.5|1e-06 -Modelica.StateGraph.Examples.FirstExample|5.5|1e-06 -Modelica.StateGraph.Examples.ShowCompositeStep|15|1e-06 -Modelica.StateGraph.Examples.ShowExceptions|20|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.IndirectCooling|1.5|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.OneMass|1|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.ParallelCooling|1|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.ParallelPumpDropOut|2|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.PumpAndValve|2|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.PumpDropOut|2|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.SimpleCooling|1|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.TestCylinder|2|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.TestOpenTank|1.5|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.TwoMass|1|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.TwoTanks|1.5|1e-06 -Modelica.Thermal.FluidHeatFlow.Examples.WaterPump|2|1e-06 -Modelica.Thermal.HeatTransfer.Examples.ControlledTemperature|10|1e-06 -Modelica.Thermal.HeatTransfer.Examples.GenerationOfFMUs|1|1e-06 -Modelica.Thermal.HeatTransfer.Examples.Motor|7200|1e-06 -Modelica.Thermal.HeatTransfer.Examples.TwoMasses|1|1e-06 -Modelica.Utilities.Examples.ReadRealMatrixFromFile|0.1|1e-06 -Modelica.Utilities.Examples.WriteRealMatrixToFile|0.1|1e-06 -Modelica.Utilities.Examples.readRealParameterModel|1.01|1e-06 +Modelica.Blocks.Examples.BooleanNetwork1|10|1e-06|0 +Modelica.Blocks.Examples.BusUsage|2|1e-06|0 +Modelica.Blocks.Examples.CompareSincExpSine|1|1e-06|0 +Modelica.Blocks.Examples.DemoSignalCharacteristic|0.5|1e-06|0 +Modelica.Blocks.Examples.DemonstrateContinuousSignalExtrema|1|1e-06|0 +Modelica.Blocks.Examples.DemonstrateSignalExtrema|1.5|1e-06|0 +Modelica.Blocks.Examples.FilterWithDifferentiation|0.9|1e-06|0 +Modelica.Blocks.Examples.FilterWithRiseTime|4|1e-06|0 +Modelica.Blocks.Examples.Filter|0.9|1e-06|0 +Modelica.Blocks.Examples.IntegerNetwork1|10|1e-06|0 +Modelica.Blocks.Examples.Interaction1|10|1e-06|0 +Modelica.Blocks.Examples.InverseModel|1|1e-06|0 +Modelica.Blocks.Examples.LogicalNetwork1|10|1e-06|0 +Modelica.Blocks.Examples.Modulation|1|1e-06|0 +Modelica.Blocks.Examples.Noise.ActuatorWithNoise|8|1e-05|0 +Modelica.Blocks.Examples.Noise.AutomaticSeed|2|1e-06|0 +Modelica.Blocks.Examples.Noise.Densities|20|1e-06|0 +Modelica.Blocks.Examples.Noise.Distributions|2|1e-06|0 +Modelica.Blocks.Examples.Noise.DrydenContinuousTurbulence|100|1e-06|0 +Modelica.Blocks.Examples.Noise.ImpureGenerator|2|1e-06|0 +Modelica.Blocks.Examples.Noise.NormalNoiseProperties|20|1e-09|0 +Modelica.Blocks.Examples.Noise.UniformNoiseProperties|20|1e-09|0 +Modelica.Blocks.Examples.Noise.UniformNoise|2|1e-06|0 +Modelica.Blocks.Examples.PID_Controller|4|1e-06|0 +Modelica.Blocks.Examples.RealNetwork1|10|1e-06|0 +Modelica.Blocks.Examples.Rectifier12pulseFFT|0.25|1e-06|0 +Modelica.Blocks.Examples.Rectifier6pulseFFT|0.25|1e-06|0 +Modelica.Blocks.Examples.ShowLogicalSources|10|1e-06|0 +Modelica.Blocks.Examples.SinCosEncoder|1|1e-05|0 +Modelica.Blocks.Examples.SlewRateLimiter|1|1e-06|0 +Modelica.Blocks.Examples.TotalHarmonicDistortion|0.1|1e-06|0 +Modelica.Clocked.Examples.CascadeControlledDrive.AbsoluteClocks|4|1e-06|0 +Modelica.Clocked.Examples.CascadeControlledDrive.Continuous|4|1e-06|0 +Modelica.Clocked.Examples.CascadeControlledDrive.SubClocked|4|1e-06|0 +Modelica.Clocked.Examples.CascadeControlledDrive.SuperSampled|4|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.AssignClockVectorized|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.AssignClock|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.BackSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.Hold|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.Sample1|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.Sample2|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.SampleClocked|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.SampleVectorizedAndClocked|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.ShiftSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.SubSample|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.SuperSample|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.TickBasedPulse|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.TickBasedStep|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.TimeBasedPulse|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.TimeBasedStep|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.BooleanSignals.UpSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.ClockSignals.LogicalSample|2|1e-06|0 +Modelica.Clocked.Examples.Elementary.ClockSignals.RotationalSample|2|1e-06|0 +Modelica.Clocked.Examples.Elementary.ClockSignals.ShiftSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.ClockSignals.SubSample|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.ClockSignals.SuperSample|0.08|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.AssignClockVectorized|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.AssignClock|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.BackSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.Hold|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.Sample1|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.Sample2|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.SampleClocked|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.SampleVectorizedAndClocked|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.ShiftSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.SubSample|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.SuperSample|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.TickBasedStep|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.TimeBasedStep|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.IntegerSignals.UpSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.AssignClockToSquareWaveHold|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.AssignClockToTriggerHold|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.AssignClockVectorized|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.AssignClock|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.BackSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.FractionalDelay|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.HoldWithDAeffects1|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.HoldWithDAeffects2|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.Hold|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.Sample1|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.Sample2|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.Sample3|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.SampleClocked|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.SampleVectorizedAndClocked|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.SampleWithADeffects|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.ShiftSample|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.SubSample|0.2|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.SuperSampleInterpolated|0.06|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.SuperSample|0.08|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.TickBasedRamp|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.TickBasedSine|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.TickBasedStep|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.TimeBasedRamp|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.TimeBasedSine|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.TimeBasedStep|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.UniformNoiseXorshift64star|1|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.UniformNoise|1.1|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.UpSample1|0.09|1e-06|0 +Modelica.Clocked.Examples.Elementary.RealSignals.UpSample2|0.06|1e-06|0 +Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWithDiscreteController|3|1e-06|0 +Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWithDiscreteTextbookController|5|1e-06|0 +Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWithDiscretizedContinuousController|5|1e-06|0 +Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWith_AD_DA_Effects|5|1e-06|0 +Modelica.Clocked.Examples.SimpleControlledDrive.Continuous|5|1e-06|0 +Modelica.Clocked.Examples.SimpleControlledDrive.ExactlyClockedWithDiscreteController|5|1e-06|0 +Modelica.Clocked.Examples.Systems.ControlledMixingUnit|300|1e-06|0 +Modelica.Clocked.Examples.Systems.EngineThrottleControl|1.1|1e-06|0 +Modelica.Clocked.Examples.Systems.Utilities.ComponentsMixingUnit.MixingUnitWithContinuousControl|500|1e-06|0 +Modelica.ComplexBlocks.Examples.ShowTransferFunction|1|1e-06|0 +Modelica.ComplexBlocks.Examples.TestConversionBlock|1.01|1e-06|0 +Modelica.Electrical.Analog.Examples.AD_DA_conversion|0.2|1e-06|0 +Modelica.Electrical.Analog.Examples.AmplifierWithOpAmpDetailed|0.003|2e-07|0 +Modelica.Electrical.Analog.Examples.CauerLowPassAnalog|60|1e-06|0 +Modelica.Electrical.Analog.Examples.CauerLowPassOPV|60|1e-06|0 +Modelica.Electrical.Analog.Examples.CauerLowPassSC|60|1e-06|0 +Modelica.Electrical.Analog.Examples.CharacteristicIdealDiodes|1|1e-06|0 +Modelica.Electrical.Analog.Examples.CharacteristicThyristors|6|1e-06|0 +Modelica.Electrical.Analog.Examples.ChuaCircuit|50000|1e-06|0 +Modelica.Electrical.Analog.Examples.CompareTransformers|50|1e-06|0 +Modelica.Electrical.Analog.Examples.ControlledSwitchWithArc|6|1e-06|0 +Modelica.Electrical.Analog.Examples.DemoPowerSupplyWithBuffer|1|1e-06|0 +Modelica.Electrical.Analog.Examples.DemoPowerSupply|1|1e-06|0 +Modelica.Electrical.Analog.Examples.DemonstrateLightning|0.001|1e-06|0 +Modelica.Electrical.Analog.Examples.DifferenceAmplifier|1e-08|1e-06|0 +Modelica.Electrical.Analog.Examples.GenerationOfFMUs|1|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingMOSInverter|5|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingNPN_NORGate|200|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingPNP_NORGate|200|1e-06|0 +Modelica.Electrical.Analog.Examples.HeatingRectifier|5|1e-06|0 +Modelica.Electrical.Analog.Examples.IdealTriacCircuit|2|1e-06|0 +Modelica.Electrical.Analog.Examples.InvertingAmp|1|1e-06|0 +Modelica.Electrical.Analog.Examples.Lines.CompareLineTrunks|0.004|1e-06|0 +Modelica.Electrical.Analog.Examples.Lines.CompareLosslessLines|2e-08|1e-06|0 +Modelica.Electrical.Analog.Examples.Lines.LightningLosslessTransmissionLine|0.025|1e-06|0 +Modelica.Electrical.Analog.Examples.Lines.LightningSegmentedTransmissionLine|0.025|1e-06|0 +Modelica.Electrical.Analog.Examples.Lines.SmoothStep|0.003|1e-06|0 +Modelica.Electrical.Analog.Examples.NandGate|1e-07|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Adder|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Comparator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.ControlCircuit|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.DifferentialAmplifier|0.2|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Differentiator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.HighPass|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Integrator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.InvertingAmplifier|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.InvertingSchmittTrigger|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.LCOscillator|0.01|0.0001|0 +Modelica.Electrical.Analog.Examples.OpAmps.LowPass|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Multivibrator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.NonInvertingAmplifier|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.SchmittTrigger|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.SignalGenerator|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.Subtracter|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OpAmps.VoltageFollower|1|1e-06|0 +Modelica.Electrical.Analog.Examples.OvervoltageProtection|0.4|1e-06|0 +Modelica.Electrical.Analog.Examples.ParallelResonance|1|1e-06|0 +Modelica.Electrical.Analog.Examples.Rectifier|0.1|1e-06|0 +Modelica.Electrical.Analog.Examples.Resistor|5|1e-06|0 +Modelica.Electrical.Analog.Examples.ResonanceCircuits|1|1e-06|0 +Modelica.Electrical.Analog.Examples.SeriesResonance|1|1e-06|0 +Modelica.Electrical.Analog.Examples.ShowSaturatingInductor|6.2832|1e-06|0 +Modelica.Electrical.Analog.Examples.ShowVariableResistor|1|1e-06|0 +Modelica.Electrical.Analog.Examples.SimpleTriacCircuit|0.001|1e-12|0 +Modelica.Electrical.Analog.Examples.SwitchWithArc|2|1e-06|0 +Modelica.Electrical.Analog.Examples.ThyristorBehaviourTest|0.0002|1e-06|0 +Modelica.Electrical.Batteries.Examples.BatteryDischargeCharge|3600|1e-06|0 +Modelica.Electrical.Batteries.Examples.CCCV_CellRC|1200|1e-06|0 +Modelica.Electrical.Batteries.Examples.CCCV_Cell|1200|1e-06|0 +Modelica.Electrical.Batteries.Examples.CCCV_StackRC|1200|1e-06|0 +Modelica.Electrical.Batteries.Examples.CCCV_Stack|1200|1e-06|0 +Modelica.Electrical.Batteries.Examples.CCCVcharging|1200|1e-06|0 +Modelica.Electrical.Batteries.Examples.ShowImpedance|1|1e-06|0 +Modelica.Electrical.Batteries.Examples.SuperCapDischargeCharge|720|1e-06|0 +Modelica.Electrical.Digital.Examples.Adder4|5|1e-06|0 +Modelica.Electrical.Digital.Examples.BUF3S|12|1e-06|0 +Modelica.Electrical.Digital.Examples.Counter3|10|1e-06|0 +Modelica.Electrical.Digital.Examples.Counter|100|1e-06|0 +Modelica.Electrical.Digital.Examples.DFFREGL|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DFFREGSRH|15|1e-06|0 +Modelica.Electrical.Digital.Examples.DFFREGSRL|15|1e-06|0 +Modelica.Electrical.Digital.Examples.DFFREG|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DLATREGL|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DLATREGSRH|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DLATREGSRL|25|1e-06|0 +Modelica.Electrical.Digital.Examples.DLATREG|25|1e-06|0 +Modelica.Electrical.Digital.Examples.FlipFlop|250|1e-06|0 +Modelica.Electrical.Digital.Examples.FullAdder|10|1e-06|0 +Modelica.Electrical.Digital.Examples.HalfAdder|5|1e-06|0 +Modelica.Electrical.Digital.Examples.INV3S|12|1e-06|0 +Modelica.Electrical.Digital.Examples.MUX2x1|15|1e-06|0 +Modelica.Electrical.Digital.Examples.Multiplexer|250|1e-06|0 +Modelica.Electrical.Digital.Examples.NRXFER|12|1e-06|0 +Modelica.Electrical.Digital.Examples.NXFER|12|1e-06|0 +Modelica.Electrical.Digital.Examples.RAM|400|1e-06|0 +Modelica.Electrical.Digital.Examples.VectorDelay|10|1e-06|0 +Modelica.Electrical.Digital.Examples.WiredX|12|1e-06|0 +Modelica.Electrical.Machines.Examples.ControlledDCDrives.CurrentControlledDCPM|2|1e-06|0 +Modelica.Electrical.Machines.Examples.ControlledDCDrives.PositionControlledDCPM|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.ControlledDCDrives.SpeedControlledDCPM|1|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCEE_Start|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Cooling|25|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_CurrentControlled|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Drive|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_QuasiStatic|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Start|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_Temperature|3|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCPM_withLosses|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCSE_SinglePhase|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DCSE_Start|2|1e-06|0 +Modelica.Electrical.Machines.Examples.DCMachines.DC_CompareCharacteristics|6|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Conveyor|20|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_DCBraking|25|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_DOL|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Initialize|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_InverterDrive|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Inverter|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Steinmetz|1|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_Transformer|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_YDarc|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_YD|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMC_withLosses|5|1e-06|0 +Modelica.Electrical.Machines.Examples.InductionMachines.IMS_Start|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMEE_DOL|3|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMEE_Generator|30|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMEE_LoadDump|10|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMEE_Rectifier|1.1|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_Braking|0.8|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_CurrentSource|2|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_Inverter|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_NoLoad|0.32|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_ResistiveBraking|1|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMPM_VoltageSource|2|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMR_DOL|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.SynchronousMachines.SMR_Inverter|1.5|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.AsymmetricalLoad|0.1|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.IMC_Transformer|2.5|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.Rectifier12pulse|0.1|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.Rectifier6pulse|0.1|1e-06|0 +Modelica.Electrical.Machines.Examples.Transformers.TransformerTestbench|0.1|1e-06|0 +Modelica.Electrical.Polyphase.Examples.PolyphaseRectifier|0.2|1e-06|0 +Modelica.Electrical.Polyphase.Examples.Rectifier|0.1|1e-06|0 +Modelica.Electrical.Polyphase.Examples.TestSensors|0.1|1e-06|0 +Modelica.Electrical.Polyphase.Examples.TransformerYD|1|1e-06|0 +Modelica.Electrical.Polyphase.Examples.TransformerYY|1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACAC.Dimmer_RL|8|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACAC.Dimmer_R|8|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACAC.SoftStarter|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.Rectifier1Pulse.Thyristor1Pulse_R_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.Rectifier1Pulse.Thyristor1Pulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.DiodeBridge2Pulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.HalfControlledBridge2Pulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_DC_Drive|15|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2Pulse.ThyristorBridge2Pulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.DiodeBridge2mPulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.HalfControlledBridge2mPulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_DC_Drive|15|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierBridge2mPulse.ThyristorBridge2mPulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.DiodeCenterTap2Pulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2Pulse.ThyristorCenterTap2Pulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.DiodeCenterTap2mPulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTap2mPulse.ThyristorCenterTap2mPulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.DiodeCenterTapmPulse|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RLV_Characteristic|10|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RLV|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse.ThyristorCenterTapmPulse_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.PolyphaseTwoLevel.PolyphaseTwoLevel_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.PolyphaseTwoLevel.PolyphaseTwoLevel_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.PolyphaseTwoLevel.ThreePhaseTwoLevel_PWM|2|1e-05|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.SinglePhaseTwoLevel.SinglePhaseTwoLevel_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCAC.SinglePhaseTwoLevel.SinglePhaseTwoLevel_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperBuckBoost.ChopperBuckBoost_DutyCycle|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepDown.ChopperStepDown_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepDown.ChopperStepDown_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.ChopperStepUp.ChopperStepUp_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_DC_Drive|24|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_RL|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_R|0.1|1e-06|0 +Modelica.Electrical.PowerConverters.Examples.DCDC.HBridge.HBridge_TrianglePWM_RL|0.1|1e-06|0 +Modelica.Electrical.QuasiStatic.Machines.Examples.TransformerTestbench|0.1|1e-06|0 +Modelica.Electrical.QuasiStatic.Polyphase.Examples.BalancingDelta|1|1e-06|0 +Modelica.Electrical.QuasiStatic.Polyphase.Examples.BalancingStar|1|1e-06|0 +Modelica.Electrical.QuasiStatic.Polyphase.Examples.TestSensors|0.1|1e-06|0 +Modelica.Electrical.QuasiStatic.Polyphase.Examples.UnsymmetricalLoad|1|1e-06|0 +Modelica.Electrical.QuasiStatic.SinglePhase.Examples.MultipleResonance|1|1e-06|0 +Modelica.Electrical.QuasiStatic.SinglePhase.Examples.ParallelResonance|1|1e-06|0 +Modelica.Electrical.QuasiStatic.SinglePhase.Examples.Rectifier|1|1e-06|0 +Modelica.Electrical.QuasiStatic.SinglePhase.Examples.SeriesBode|1|1e-06|0 +Modelica.Electrical.QuasiStatic.SinglePhase.Examples.SeriesResonance|1|1e-06|0 +Modelica.Electrical.QuasiStatic.SinglePhase.Examples.Transformer|1|1e-06|0 +Modelica.Electrical.Spice3.Examples.CascodeCircuit|0.2|1e-07|0 +Modelica.Electrical.Spice3.Examples.CoupledInductors|0.2|1e-06|0 +Modelica.Electrical.Spice3.Examples.FourInverters|5|1e-06|0 +Modelica.Electrical.Spice3.Examples.Graetz|0.025|1e-06|0 +Modelica.Electrical.Spice3.Examples.InvertersApartRecord|5|1e-06|0 +Modelica.Electrical.Spice3.Examples.InvertersExtendedModel|5|1e-06|0 +Modelica.Electrical.Spice3.Examples.Inverter|1e-11|1e-07|0 +Modelica.Electrical.Spice3.Examples.Nand|2e-07|1e-06|0 +Modelica.Electrical.Spice3.Examples.Nor|5|1e-06|0 +Modelica.Electrical.Spice3.Examples.Oscillator|0.025|1e-06|0 +Modelica.Electrical.Spice3.Examples.Spice3BenchmarkDifferentialPair|1|1e-05|0 +Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder|1e-06|1e-06|0 +Modelica.Electrical.Spice3.Examples.Spice3BenchmarkMosfetCharacterization|1e-07|1e-06|0 +Modelica.Electrical.Spice3.Examples.Spice3BenchmarkRtlInverter|1e-07|1e-08|0 +Modelica.Fluid.Examples.AST_BatchPlant.BatchPlant_StandardWater|3600|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.OneTank|100|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe1|35|1e-07|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TankWithEmptyingPipe2|120|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TanksWithEmptyingPipe1|120|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TanksWithEmptyingPipe2|120|1e-06|0 +Modelica.Fluid.Examples.AST_BatchPlant.Test.TwoTanks|100|1e-06|0 +Modelica.Fluid.Examples.BranchingDynamicPipes|10|1e-06|0 +Modelica.Fluid.Examples.ControlledTankSystem.ControlledTanks|900|1e-06|0 +Modelica.Fluid.Examples.DrumBoiler.DrumBoiler|5400|1e-06|0 +Modelica.Fluid.Examples.Explanatory.MeasuringTemperature|1.1|1e-06|0 +Modelica.Fluid.Examples.Explanatory.MomentumBalanceFittings|1.1|1e-06|0 +Modelica.Fluid.Examples.HeatExchanger.HeatExchangerSimulation|200|1e-05|0 +Modelica.Fluid.Examples.HeatingSystem|6000|1e-06|0 +Modelica.Fluid.Examples.IncompressibleFluidNetwork|200|1e-06|0 +Modelica.Fluid.Examples.InverseParameterization|10|1e-06|0 +Modelica.Fluid.Examples.NonCircularPipes|1|1e-06|0 +Modelica.Fluid.Examples.PumpingSystem|2000|1e-06|0 +Modelica.Fluid.Examples.Tanks.EmptyTanks|50|1e-06|0 +Modelica.Fluid.Examples.Tanks.TanksWithOverflow|25000|1e-06|0 +Modelica.Fluid.Examples.Tanks.ThreeTanks|200|1e-06|0 +Modelica.Fluid.Examples.TraceSubstances.RoomCO2WithControls|86400|1e-06|0 +Modelica.Fluid.Examples.TraceSubstances.RoomCO2|3600|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.BasicExamples.QuadraticCoreAirgap|0.05|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.BasicExamples.SaturatedInductor|0.1|1e-07|0 +Modelica.Magnetic.FluxTubes.Examples.BasicExamples.ToroidalCoreAirgap|0.05|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.BasicExamples.ToroidalCoreQuadraticCrossSection|0.05|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.HysteresisModelComparison|14|1e-05|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis|0.02|0.0001|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis1|0.02|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis2|0.1|0.0001|0 +Modelica.Magnetic.FluxTubes.Examples.Hysteresis.ThreePhaseTransformerWithRectifier|0.2|1e-06|0 +Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ArmatureStroke|0.05|1e-07|0 +Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ForceCurrentBehaviour|6|1e-07|0 +Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ForceStrokeBehaviour|4|1e-07|-4 +Modelica.Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonPullInStroke|0.05|1e-07|0 +Modelica.Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonQuasiStatic|10|1e-07|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.ComparisonPolyphase.IMC_DOL_CommonLeakage|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.ComparisonPolyphase.IMC_DOL_Polyphase|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.ComparisonPolyphase.IMS_Start_Polyphase|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Conveyor|20|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_DOL|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Initialize|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Inverter|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Steinmetz|1|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Transformer|2.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_YD|2.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_withLosses|5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Start|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.ComparisonPolyphase.SMEE_Generator_Polyphase|30|1e-07|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.ComparisonPolyphase.SMPM_Inverter_Polyphase|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.ComparisonPolyphase.SMR_Inverter_Polyphase|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_DOL|3|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Generator|30|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_LoadDump|10|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Rectifier|1.1|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_Braking|0.8|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_CurrentSource|2|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_Inverter|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_VoltageSource|2|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMR_Inverter|1.5|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses|40|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.Components.PolyphaseInductance|100|1e-06|0 +Modelica.Magnetic.FundamentalWave.Examples.Components.SinglePhaseInductance|100|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.BasicExamples.QuadraticCoreAirgap|0.05|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.BasicExamples.ToroidalCoreAirgap|0.05|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.BasicExamples.ToroidalCoreQuadraticCrossSection|0.05|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.FixedShapes.CuboidSections|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.FixedShapes.CylinderSections|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.CylinderLeakage|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.Leakage.GeneralLeakage|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.LinearInductor|0.2|1e-07|0 +Modelica.Magnetic.QuasiStatic.FluxTubes.Examples.NonLinearInductor|0.2|1e-07|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Characteristics|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Conveyor|20|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_DOL|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Initialize|1.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Inverter|1.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Transformer|2.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_YD|2.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_withLosses|10|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Characteristics|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMS_Start|1.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Generator|30|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_CurrentSource|2|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_FieldWeakening|2.5|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_MTPA|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_Mains|1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_OpenCircuit|0.1|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMR_CurrentSource|2|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.Components.EddyCurrentLosses|40|1e-06|0 +Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.Components.PolyphaseInductance|100|1e-06|0 +Modelica.Math.FastFourierTransform.Examples.RealFFT1|6|1e-06|0 +Modelica.Math.FastFourierTransform.Examples.RealFFT2|6|1e-06|0 +Modelica.Math.Nonlinear.Examples.QuadratureLobatto3|5|1e-06|0 +Modelica.Math.Random.Examples.GenerateRandomNumbers|2|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Constraints.RevoluteConstraint|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Constraints.SphericalConstraint|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Constraints.UniversalConstraint|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.ForceAndTorque|1.01|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.FreeBody|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.HeatLosses|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.InitSpringConstant|1.01|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.LineForceWithTwoMasses|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.PendulumWithSpringDamper|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses2|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses|2|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravity|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetDriving|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetPulling|3|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel|4|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.SpringDamperSystem|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.SpringMassSystem|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.SpringWithMass|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.Surfaces|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.ThreeSprings|10|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Elementary.UserDefinedGravityField|10|1e-08|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Engine1a|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Engine1b_analytic|0.5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Engine1b|0.5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic|1.01|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6|1.01|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar1|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar_analytic|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.PlanarFourbar|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.ActuatedDrive|1.1|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.BevelGear1D|1|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.GearConstraint|5|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.GyroscopicEffects|5|1e-08|0 +Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.MovingActuatedDrive|1.1|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.FullRobot|2|1e-06|0 +Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.OneAxis|1.6|1e-06|0 +Modelica.Mechanics.Rotational.Examples.Backlash|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.CompareBrakingTorque|5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.CoupledClutches|1.5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.EddyCurrentBrake|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.ElasticBearing|10|1e-06|0 +Modelica.Mechanics.Rotational.Examples.FirstGrounded|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.First|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.Friction|3|1e-06|0 +Modelica.Mechanics.Rotational.Examples.GenerationOfFMUs|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.HeatLosses|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.LossyGearDemo1|0.5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.LossyGearDemo2|0.5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.LossyGearDemo3|1|1e-06|0 +Modelica.Mechanics.Rotational.Examples.OneWayClutchDisengaged|2|1e-06|0 +Modelica.Mechanics.Rotational.Examples.OneWayClutch|2|1e-06|0 +Modelica.Mechanics.Rotational.Examples.RollingWheel|5|1e-06|0 +Modelica.Mechanics.Rotational.Examples.SimpleGearShift|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.Accelerate|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.Brake|2|1e-06|0 +Modelica.Mechanics.Translational.Examples.CompareBrakingForce|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.Damper|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.EddyCurrentBrake|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.ElastoGap|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.Friction|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.GenerationOfFMUs|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.HeatLosses|2|1e-06|0 +Modelica.Mechanics.Translational.Examples.InitialConditions|5|1e-06|0 +Modelica.Mechanics.Translational.Examples.Oscillator|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.PreLoad|100|1e-06|0 +Modelica.Mechanics.Translational.Examples.Sensors|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.SignConvention|1|1e-06|0 +Modelica.Mechanics.Translational.Examples.Vehicle|60|1e-06|0 +Modelica.Mechanics.Translational.Examples.WhyArrows|1|1e-06|0 +Modelica.Media.Examples.IdealGasH2O|1|1e-06|0 +Modelica.Media.Examples.MixtureGases|1|1e-06|0 +Modelica.Media.Examples.MoistAir|1|1e-05|0 +Modelica.Media.Examples.PsychrometricData|1|1e-06|0 +Modelica.Media.Examples.R134a.R134a1|1.01|1e-06|0 +Modelica.Media.Examples.R134a.R134a2|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.DryAir1|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.DryAir2|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.Inverse_sh_TX|1|1e-06|0 +Modelica.Media.Examples.ReferenceAir.Inverse_sh_T|1|1e-06|0 +Modelica.Media.Examples.ReferenceAir.MoistAir1|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.MoistAir2|1.01|1e-06|0 +Modelica.Media.Examples.ReferenceAir.MoistAir|1|1e-05|0 +Modelica.Media.Examples.SimpleLiquidWater|100|1e-06|0 +Modelica.Media.Examples.SolveOneNonlinearEquation.InverseIncompressible_sh_T|1|1e-06|0 +Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sh_TX|1|1e-06|0 +Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sh_T|1|1e-06|0 +Modelica.Media.Examples.SolveOneNonlinearEquation.Inverse_sine|0|1e-06|0 +Modelica.Media.Examples.TwoPhaseWater.TestTwoPhaseStates|22|1e-06|0 +Modelica.Media.Examples.WaterIF97|1|1e-06|0 +Modelica.Media.Incompressible.Examples.TestGlycol|1.01|1e-06|0 +Modelica.StateGraph.Examples.ControlledTanks|100|1e-06|0 +Modelica.StateGraph.Examples.ExecutionPaths|15.5|1e-06|0 +Modelica.StateGraph.Examples.FirstExample_Variant2|5.5|1e-06|0 +Modelica.StateGraph.Examples.FirstExample_Variant3|5.5|1e-06|0 +Modelica.StateGraph.Examples.FirstExample|5.5|1e-06|0 +Modelica.StateGraph.Examples.ShowCompositeStep|15|1e-06|0 +Modelica.StateGraph.Examples.ShowExceptions|20|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.IndirectCooling|1.5|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.OneMass|1|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.ParallelCooling|1|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.ParallelPumpDropOut|2|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.PumpAndValve|2|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.PumpDropOut|2|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.SimpleCooling|1|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.TestCylinder|2|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.TestOpenTank|1.5|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.TwoMass|1|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.TwoTanks|1.5|1e-06|0 +Modelica.Thermal.FluidHeatFlow.Examples.WaterPump|2|1e-06|0 +Modelica.Thermal.HeatTransfer.Examples.ControlledTemperature|10|1e-06|0 +Modelica.Thermal.HeatTransfer.Examples.GenerationOfFMUs|1|1e-06|0 +Modelica.Thermal.HeatTransfer.Examples.Motor|7200|1e-06|0 +Modelica.Thermal.HeatTransfer.Examples.TwoMasses|1|1e-06|0 +Modelica.Utilities.Examples.ReadRealMatrixFromFile|0.1|1e-06|0 +Modelica.Utilities.Examples.WriteRealMatrixToFile|0.1|1e-06|0 +Modelica.Utilities.Examples.readRealParameterModel|1.01|1e-06|0 diff --git a/models/models.toml b/models/models.toml index 96c9136..9479ee9 100644 --- a/models/models.toml +++ b/models/models.toml @@ -17,8 +17,11 @@ reference_source = "MAP-LIB_ReferenceResults (Dymola, branch v3.2.3)" # (default = solver default) # solverReltol = (default: the experiment's Tolerance) # solverAtol = (0.0 = SciML default ~1e-6) -# Note: distinct from atol/reltol above which are validation -# tolerances for trajectory comparison. Use solverReltol / +# Note: distinct from atol/reltol, the tolerances of an inline +# `reference` (final values). A reference trajectory (CSV) is +# compared as OpenModelica's library testing does (tube_compare: +# relTol 3e-3, relTolDiffMinMax 3e-3, rangeDelta 1e-3, 2026-10-28); +# atol/reltol do not apply to it. Use solverReltol / # solverAtol to loosen the integrator (e.g. near-singular # Jacobians that force dt below eps under default tolerances). # observedFilter = ["regex", ...] ([] = OM.simulate default) diff --git a/src/OMLibraryTesting.jl b/src/OMLibraryTesting.jl index 882d3d6..c9c82d8 100644 --- a/src/OMLibraryTesting.jl +++ b/src/OMLibraryTesting.jl @@ -41,6 +41,7 @@ import OMFrontend include("types.jl") include("registry.jl") +include("tubes.jl") include("comparison.jl") include("discovery.jl") include("runner.jl") diff --git a/src/comparison.jl b/src/comparison.jl index 6f103ad..f2e7de0 100644 --- a/src/comparison.jl +++ b/src/comparison.jl @@ -93,9 +93,9 @@ function split_csv_header(line::AbstractString)::Vector{String} return fields end -#= The instants a signal is compared at, evenly spaced over [0, stopTime]: 101, so a - periodic signal is not sampled at its zero crossings only (21 points put every sample of - Blocks.Modulation's sine.y on one). =# +#= The plotted samples of a signal (signals.json), evenly spaced over [0, stopTime]: 101 (a signal is + compared at the reference's own times; until 2026-10-28 at these, and 21 put every sample of + Blocks.Modulation's sine.y on a zero crossing). =# const COMPARISON_POINTS = 101 #= Whether a stopTime lies within a reference that ends at `ref_end`, up to @@ -142,23 +142,6 @@ function interpolate_reference(ref_time::Vector{Float64}, return v0 + frac * (v1 - v0) end -""" - _event_limits(ref_time, ref_values, t) -> Union{Nothing, Tuple{Float64, Float64}} - -The values before and after an event the reference recorded at `t` (a time -that appears more than once: a result file stores both), else `nothing`. The -reference files store their times as Float32: the event's time is `t` to -Float32's rounding (MSL HBridge_RL's switching at t = 0.099 is stored as -0.098999995, at 0.0996 as 0.099600002). -""" -function _event_limits(ref_time::Vector{Float64}, ref_values::Vector{Float64}, t::Float64) - local rounding = Float64(eps(Float32(max(abs(t), floatmin(Float32))))) - first_row = searchsortedfirst(ref_time, t - rounding) - last_row = searchsortedlast(ref_time, t + rounding) - last_row > first_row || return nothing - return (ref_values[first_row], ref_values[last_row]) -end - """ modelica_to_omjl_name(name) -> String @@ -199,102 +182,147 @@ function _resolve_mtk_variable(sol, sym::Symbol) end """ - compare_signal(sol, ref, signal_name, stopTime; reltol, atol, npoints, signalMapping) -> SignalComparison + compare_signal(sol, ref, signal_name, stopTime; startTime, npoints, signalMapping, refTime, refOffset) -> SignalComparison -Compare an OM.jl solution signal against reference data at evenly spaced -time points. Uses combined tolerance: the comparison passes at each point -if |actual - expected| <= atol + reltol * |expected|. +Compare an OM.jl solution signal against its reference as OpenModelica's library testing does (omc's +`diffSimulationResults`, `tube_compare`): OM.jl's values at the reference's times up to `stopTime` must lie, +at each that is not a reference event, in a band around the reference 0.1 % of the time span wide in time +and 0.3 % of the value and of the signal's range high. So a switch or a steep edge may be off by up to +0.1 % of the span (10 s: 0.01 s), and a deviation between plotted samples is seen. omc interpolates its +result file onto the reference's times; OM.jl's values there come from the solution's interpolation. + +A value that is not finite fails the signal (omc's band lets NaN pass: it compares as never outside it). +The result keeps the values and the band at `npoints` evenly spaced times for plotting. + +The reference is compared over what OM.jl simulated, its rows in [startTime, stopTime] (`comparison_rows`): +omc extrapolates a result that ends before the reference, and a registry stopTime may stop early (MSL 4.1.0 +HysteresisModelComparison: stopTime 1, reference to 14). `startTime` is the experiment's (ForceStrokeBehaviour: +-4). +`refTime` is those rows' times, the vector the band changes in place (`tube_compare`), and `refOffset` their +initial event rows counted before any change: `validate_against_reference` passes the same vector for all of +a model's signals, as omc's one call does. `signalMapping` maps reference CSV signal names to OM.jl variable names. If a signal is not in the mapping, dot-to-underscore conversion is used. """ function compare_signal(sol, ref::ReferenceData, signal_name::String, stopTime::Float64; - reltol::Float64 = 3e-3, - atol::Float64 = 1e-4, + startTime::Float64 = 0.0, npoints::Int = 21, - signalMapping::Dict{String, String} = Dict{String, String}())::SignalComparison + signalMapping::Dict{String, String} = Dict{String, String}(), + refTime::Vector{Float64} = ref.time[comparison_rows(ref.time, startTime, stopTime)], + refOffset::Int = initial_event_rows(refTime))::SignalComparison if !haskey(ref.signals, signal_name) - return SignalComparison(signal_name, false, NaN, NaN, 0.0, NaN, NaN) + return SignalComparison(signal_name, false, NaN, NaN, NaN, NaN, NaN) end ref_values = ref.signals[signal_name] omjl_name = get(signalMapping, signal_name, modelica_to_omjl_name(signal_name)) omjl_sym = Symbol(omjl_name) # Try to resolve the symbolic variable for MTK observed variable access resolved_sym = _resolve_mtk_variable(sol, omjl_sym) + local sampleTimes::Vector{Float64} = collect(range(startTime, stopTime, length = npoints)) + local expectedValues::Vector{Float64} = [interpolate_reference(ref.time, ref_values, t) for t in sampleTimes] + local actualValues::Vector{Float64} = fill(NaN, npoints) + #= OM.jl's result: its values at the reference's times it simulated, as omc's result file is + interpolated onto them. =# + local rows::UnitRange{Int} = comparison_rows(ref.time, startTime, stopTime) + local actualTime::Vector{Float64} = ref.time[rows] + local m::Int = length(actualTime) + local values::Vector = try + _solution_values(sol, resolved_sym, vcat(actualTime, sampleTimes)) + catch e + @warn "Signal $omjl_name not found in solution (eliminated by alias/simplification?)" + #= Not in the solution: not compared (passed = false, NaN errors), which fails the + validation (validate_against_reference). It passed, so a model validated on a + subset of its signals; and a sample after a failed one discarded that failure. =# + return SignalComparison(signal_name, false, NaN, NaN, sampleTimes[1], NaN, expectedValues[1], + sampleTimes, expectedValues, actualValues) + end + local finite(v)::Bool = v isa Real && isfinite(v) + #= A non-finite value is a failure, at the first time it occurs; the plotted values up to it. =# + local bad::Union{Nothing, Int} = findfirst(k -> !finite(values[k]), eachindex(values)) + local tBad::Float64 = Inf + if bad !== nothing + tBad = minimum(k -> k <= m ? actualTime[k] : sampleTimes[k - m], filter(k -> !finite(values[k]), eachindex(values))) + end + for i in 1:npoints + local v = values[m + i] + sampleTimes[i] <= tBad && v isa Real && (actualValues[i] = Float64(v)) + end + if bad !== nothing + local kBad::Int = something(findfirst(k -> !finite(values[k]) && + (k <= m ? actualTime[k] : sampleTimes[k - m]) == tBad, eachindex(values)), bad) + local vBad = values[kBad] + return SignalComparison(signal_name, false, Inf, Inf, tBad, vBad isa Real ? Float64(vBad) : NaN, + interpolate_reference(ref.time, ref_values, tBad), sampleTimes, expectedValues, actualValues) + end + local tube::TubeComparison = tube_compare(refTime, ref_values[rows], actualTime, Float64.(values[1:m]); refOffset) + local n::Int = length(tube.time) max_abs = 0.0 max_rel = 0.0 - worst_t = 0.0 - worst_actual = 0.0 - worst_expected = 0.0 - passed = true - times = range(0.0, stopTime, length = npoints) - local sampleTimes::Vector{Float64} = collect(times) - local expectedValues::Vector{Float64} = [interpolate_reference(ref.time, ref_values, t) for t in times] - local actualValues::Vector{Float64} = fill(NaN, npoints) - #= At a reference discontinuity the sample instant carries both limits - (set-valued jump); accept the actual value if it matches either - one-sided reference limit within tolerance. =# - knot_eps = length(ref.time) > 1 ? - 1.5 * (ref.time[end] - ref.time[1]) / (length(ref.time) - 1) : 0.0 - for (i, t) in enumerate(times) - expected = expectedValues[i] - actual = try - sol(t, idxs = resolved_sym) - catch - # Fallback: try accessing as array variable - try - vals = sol[resolved_sym] - sol_times = sol.t - interpolate_reference(sol_times, vals, t) - catch e - @warn "Signal $omjl_name not found in solution (eliminated by alias/simplification?)" - #= Not in the solution: not compared (passed = false, NaN errors), which fails the - validation (validate_against_reference). It passed, so a model validated on a - subset of its signals; and a sample after a failed one discarded that failure. =# - return SignalComparison(signal_name, false, NaN, NaN, t, NaN, expected, - sampleTimes, expectedValues, actualValues) - end - end - actual isa Real && (actualValues[i] = Float64(actual)) - #= A non-finite value is a failure: NaN compared as never above the threshold. =# - if !(actual isa Real) || !isfinite(actual) - return SignalComparison(signal_name, false, Inf, Inf, t, actual isa Real ? Float64(actual) : NaN, expected, - sampleTimes, expectedValues, actualValues) - end - abs_err = abs(actual - expected) - rel_err = abs(expected) > 1e-15 ? abs_err / abs(expected) : abs_err - threshold = atol + reltol * abs(expected) - #= An event the reference recorded at t (its time repeated): the - values before and after it are its own one-sided limits. =# - limits = _event_limits(ref.time, ref_values, t) - if abs_err > threshold && limits !== nothing && - any(v -> abs(actual - v) <= atol + reltol * abs(v), limits) - continue - end - if abs_err > threshold && knot_eps > 0.0 - expected_lo = interpolate_reference(ref.time, ref_values, t - knot_eps) - expected_hi = interpolate_reference(ref.time, ref_values, t + knot_eps) - if abs(expected_hi - expected_lo) > threshold && - (abs(actual - expected_lo) <= atol + reltol * abs(expected_lo) || - abs(actual - expected_hi) <= atol + reltol * abs(expected_hi)) - continue - end - end - if abs_err > threshold - passed = false - end - if abs_err > max_abs - max_abs = abs_err - max_rel = rel_err - worst_t = t - worst_actual = actual - worst_expected = expected + local worst::Int = 0 + for i in 1:n + isnan(tube.error[i]) && continue # a reference event: not compared + local d::Float64 = abs(tube.actual[i] - tube.reference[i]) + if d > max_abs + max_abs = d + max_rel = abs(tube.reference[i]) > 1e-15 ? d / abs(tube.reference[i]) : d end + tube.error[i] > 0.0 && (worst == 0 || tube.error[i] > tube.error[worst]) && (worst = i) + end + #= The band at the plotted samples, on the reference's own times (the band moved an event's repeated + times apart): at an event the value after it, as the plotted reference. =# + local bandTime::Vector{Float64} = actualTime[1:n] + local low::Vector{Float64} = [interpolate_reference(bandTime, tube.low, t) for t in sampleTimes] + local high::Vector{Float64} = [interpolate_reference(bandTime, tube.high, t) for t in sampleTimes] + return SignalComparison(signal_name, tube.passed, max_abs, max_rel, + worst == 0 ? NaN : tube.time[worst], worst == 0 ? NaN : tube.actual[worst], + worst == 0 ? NaN : tube.reference[worst], + sampleTimes, expectedValues, actualValues, low, high, + n, count(isnan, tube.error), count(>(0.0), tube.error)) +end + +""" + comparison_rows(time, startTime, stopTime) -> UnitRange{Int} + +The reference's rows a result simulated from `startTime` to `stopTime` is compared at: those in +[startTime, stopTime], all of them when fewer than two are (a reference too coarse for the interval). +""" +function comparison_rows(time::Vector{Float64}, startTime::Float64, stopTime::Float64)::UnitRange{Int} + local rows::UnitRange{Int} = searchsortedfirst(time, startTime):searchsortedlast(time, stopTime) + return length(rows) >= 2 ? rows : (1:length(time)) +end + +""" + _solution_values(sol, sym, times) -> Vector + +OM.jl's values of `sym` at `times`: the solution interpolated at all of them in one call (0.4 µs a time, +against 85-750 µs for a call per time: MSL 4.1.0 PolyphaseTwoLevel_RL, 2026-10-28), else +`_solution_value` at each. Throws when the solution has neither. +""" +function _solution_values(sol, sym, times::Vector{Float64})::Vector + local all = try + sol(times; idxs = sym) + catch + nothing + end + local values = all !== nothing && hasproperty(all, :u) ? all.u : all + values isa AbstractVector && length(values) == length(times) && return collect(values) + return [_solution_value(sol, sym, t) for t in times] +end + +""" + _solution_value(sol, sym, t) -> value + +OM.jl's value of `sym` at `t`: the solution's interpolation, else (a variable it does not interpolate) its +saved values interpolated linearly. Throws when the solution has neither. +""" +function _solution_value(sol, sym, t::Float64) + try + return sol(t, idxs = sym) + catch + return interpolate_reference(sol.t, sol[sym], t) end - return SignalComparison(signal_name, passed, max_abs, max_rel, - worst_t, worst_actual, worst_expected, - sampleTimes, expectedValues, actualValues) end """ @@ -331,8 +359,6 @@ function validate_against_reference(sol, spec, else collect(keys(ref.signals)) end - reltol = spec.reltol - atol = spec.atol #= A listed signal the reference does not have is an error of the reference data or of its reading (a header split inside a quoted name), not a pass. =# missing_ref = filter(n -> !haskey(ref.signals, n), signal_names) @@ -340,11 +366,17 @@ function validate_against_reference(sol, spec, error("Reference $ref_name has no column for the listed signals: $(join(missing_ref, ", "))") comparisons = SignalComparison[] all_passed = true + #= One reference time vector for all signals, in their order, as omc's diffSimulationResults reads the + reference once per call (OpenModelica's library testing calls it with all of a model's signals): the + band moves an event's repeated times apart in it, so a signal's verdict can depend on the ones before it + (the 4.1.0 references with altered copies of themselves: up to 7 of 3979 signals, 2026-10-28). =# + local sharedTime::Vector{Float64} = ref.time[comparison_rows(ref.time, spec.startTime, compareStop)] + local refOffset::Int = initial_event_rows(sharedTime) n_skipped = 0 for name in signal_names - cmp = compare_signal(sol, ref, name, compareStop; - reltol = reltol, atol = atol, npoints = COMPARISON_POINTS, - signalMapping = spec.signalMapping) + cmp = compare_signal(sol, ref, name, compareStop; startTime = spec.startTime, + npoints = COMPARISON_POINTS, signalMapping = spec.signalMapping, + refTime = sharedTime, refOffset = refOffset) push!(comparisons, cmp) isnan(cmp.max_abs_err) && (n_skipped += 1) cmp.passed || (all_passed = false) diff --git a/src/discovery.jl b/src/discovery.jl index 62f809b..a56f8f6 100644 --- a/src/discovery.jl +++ b/src/discovery.jl @@ -33,7 +33,7 @@ discover_experiments(; library, version, omc_path, filter) -> Vector{ModelSpec} Use omc to enumerate all experiment models in a Modelica library. -Returns a ModelSpec for each model with stopTime from the experiment annotation. +Returns a ModelSpec for each model with stopTime, Tolerance and startTime from the experiment annotation. Without omc on the path (a CI runner), the list recorded from omc in `models/` (`record_experiments`) is used instead. """ @@ -85,12 +85,14 @@ function discover_experiments(; library::String = "Modelica", #= The experiment's Tolerance is the solver's relative tolerance, as in the tools that produced the references (default 1e-6). =# tolerance = length(parts) >= 3 ? something(tryparse(Float64, parts[3]), 0.0) : 0.0 + #= The experiment's StartTime (lists recorded before 2026-10-28 have none: 0). =# + startTime = length(parts) >= 4 ? something(tryparse(Float64, parts[4]), 0.0) : 0.0 domain = _extract_domain(name) key = _name_to_key(name) push!(specs, ModelSpec(name, key, domain, stopTime, UNKNOWN, Dict{String, Float64}(), 0.01, 3e-3, "", Dict{String, String}(), "", - Set{Phase}(), "", 0.0, "", 0.0, tolerance)) + Set{Phase}(), "", 0.0, "", 0.0, tolerance, String[], 0.0, startTime)) end sort!(specs, by = s -> (s.domain, s.name)) if cache @@ -103,7 +105,7 @@ function discover_experiments(; library::String = "Modelica", return specs end -#= The experiment models of a library as omc lists them: one `name|stopTime|tolerance` line each. =# +#= The experiment models of a library as omc lists them: one `name|stopTime|tolerance|startTime` line each. =# function _omc_experiments(library::String, version::String, omc_path::String)::String script = """ loadModel($library, {"$version"}); @@ -111,7 +113,7 @@ function _omc_experiments(library::String, version::String, omc_path::String)::S for n in names loop if isExperiment(n) then (startTime, stopTime, tolerance, numberOfIntervals, interval) := getSimulationOptions(n); - print(typeNameString(n) + "|" + String(stopTime) + "|" + String(tolerance) + "\\n"); + print(typeNameString(n) + "|" + String(stopTime) + "|" + String(tolerance) + "|" + String(startTime) + "\\n"); end if; end for; """ @@ -265,7 +267,7 @@ function merge_overrides!(specs::Vector{ModelSpec}, atol, reltol, referenceFile, sig_map, issue, skip, solverName, dtmaxVal, initAlgName, solverAtolVal, solverReltolVal, observedFilterVal, - maxitersVal)) + maxitersVal, spec.startTime)) end n_broken = count(s -> s.expected == BROKEN, merged) n_skipped = count(s -> !isempty(s.skipPhases), merged) @@ -316,7 +318,7 @@ function auto_detect_references!(specs::Vector{ModelSpec}, spec.signalMapping, spec.issue, spec.skipPhases, spec.solver, spec.dtmax, spec.initAlg, spec.solverAtol, spec.solverReltol, spec.observedFilter, - spec.maxiters)) + spec.maxiters, spec.startTime)) else push!(result, spec) end diff --git a/src/report.jl b/src/report.jl index 00336b6..53aca94 100644 --- a/src/report.jl +++ b/src/report.jl @@ -321,6 +321,7 @@ const _SIGNALS_CSS = raw""" .sig-plot .ref { fill: none; stroke: #555; stroke-width: 1.5; } .sig-plot .omjl { fill: none; stroke: #0366d6; stroke-width: 1.5; stroke-dasharray: 5 3; } .sig-plot .worst { fill: none; stroke: #b31d28; stroke-width: 2; } + .sig-plot .worst-line { stroke: #b31d28; stroke-width: 1; stroke-dasharray: 3 2; } .sig-plot .cursor { stroke: #999; stroke-dasharray: 2 2; } .sig-plot text { font-size: 10px; fill: #666; font-family: monospace; } #error-modal-text.values { color: #333; } @@ -395,9 +396,14 @@ function renderSignals(td, m) { var failed = sigs.filter(function(s) { return !s.passed; }).length; var head = document.createElement('div'); head.className = 'sig-head'; + var banded = sigs.some(function(s) { return s.low; }); // OpenModelica's comparison (older files: atol/reltol) head.innerHTML = '— reference   - - OM.jl   ' + - 'grey: the tolerance around the reference (atol ' + fmt(m.atol) + ', reltol ' + fmt(m.reltol) + '); values with 6 significant digits. '; - head.appendChild(document.createTextNode(sigs.length + ' signals compared, ' + failed + ' outside the tolerance' + + (banded ? 'grey: the band OM.jl must stay in, as OpenModelica\'s library testing compares (0.1 % of the time span wide ' + + 'in time, 0.3 % of the value and of the signal\'s range high); checked at every time of the reference except ' + + 'its events; red: where OM.jl is furthest outside it' : + 'grey: the tolerance around the reference (atol ' + fmt(m.atol) + ', reltol ' + fmt(m.reltol) + ')') + + '; values with 6 significant digits. '; + head.appendChild(document.createTextNode(sigs.length + ' signals compared, ' + failed + ' failed' + (m.validated ? '.' : '; the model did not validate.') + ' Point at a plot to read its values; click a name for all of them.')); td.appendChild(head); var grid = document.createElement('div'); @@ -413,15 +419,27 @@ function signalCard(s, m) { name.href = '#'; name.textContent = s.name; name.title = 'All compared values'; name.onclick = function() { showValues(s, m); return false; }; mark.className = s.passed ? 'sig-mark-ok' : 'sig-mark-fail'; - mark.textContent = s.passed ? ' ✓' : ' ✗ outside the tolerance'; + mark.textContent = s.passed ? ' ✓' : (s.low ? ' ✗ outside the band' : ' ✗ outside the tolerance'); title.appendChild(name); title.appendChild(mark); stats.className = 'sig-stats'; - stats.textContent = s.max_abs_err === null ? 'not compared: no OM.jl value' : - 'max |error| ' + fmt(s.max_abs_err) + ' (relative ' + fmt(s.max_rel_err) + ') at t = ' + fmt(s.worst_time); + stats.textContent = signalStats(s); readout.className = 'sig-readout'; card.appendChild(title); card.appendChild(stats); card.appendChild(signalPlot(s, m, readout)); card.appendChild(readout); return card; } +function signalStats(s) { + if (s.max_abs_err === null) return 'not compared: no OM.jl value'; + var text = 'max |error| ' + fmt(s.max_abs_err) + ' (relative ' + fmt(s.max_rel_err) + ')'; + if (s.compared === undefined) { // older files: where the largest error is (0 when none) + if (s.worst_time !== null && s.worst_time !== undefined) text += ' at t = ' + fmt(s.worst_time); + return text; + } + return text + (s.outside ? + '; outside the band at ' + s.outside + ' of ' + s.compared + ' times, furthest at t = ' + fmt(s.worst_time) + + ' (OM.jl ' + fmt(s.worst_omjl) + ', reference ' + fmt(s.worst_reference) + ')' : + '; in the band at all ' + (s.compared - (s.events || 0)) + ' compared times' + + (s.events ? ' (' + s.events + ' at events, not compared)' : '')); +} function svgEl(name, attrs) { var e = document.createElementNS(SVGNS, name); for (var k in attrs) e.setAttribute(k, attrs[k]); @@ -441,11 +459,15 @@ function signalPlot(s, m, readout) { var W = 360, H = 160, L = 62, R = 8, T = 8, B = 20; var t = sampleTimes(s, m), ref = s.reference, om = s.omjl, n = t.length, i; var tol = ref.map(function(v) { return v === null ? null : m.atol + m.reltol * Math.abs(v); }); + var high = s.high || ref.map(function(v, k) { return v === null ? null : v + tol[k]; }); // older files: atol/reltol + var low = s.low || ref.map(function(v, k) { return v === null ? null : v - tol[k]; }); var ys = []; for (i = 0; i < n; i++) { - if (ref[i] !== null) ys.push(ref[i] + tol[i], ref[i] - tol[i]); + if (high[i] !== null && low[i] !== null) ys.push(high[i], low[i]); if (om[i] !== null) ys.push(om[i]); } + var worstOmjl = !s.passed && s.worst_omjl !== undefined && s.worst_omjl !== null; // where it is, between samples too + if (worstOmjl) ys.push(s.worst_omjl); var y0 = ys.length ? Math.min.apply(null, ys) : 0, y1 = ys.length ? Math.max.apply(null, ys) : 1; if (y1 - y0 <= 1e-12 * Math.max(1, Math.abs(y1))) { var c = y0, d = 1e-6 * Math.max(1, Math.abs(c)); y0 = c - d; y1 = c + d; } var pad = 0.05 * (y1 - y0); y0 -= pad; y1 += pad; @@ -455,11 +477,14 @@ function signalPlot(s, m, readout) { var svg = svgEl('svg', {viewBox: '0 0 ' + W + ' ' + H, width: W, height: H, 'class': 'sig-plot'}); svg.appendChild(svgEl('rect', {x: L, y: T, width: W - L - R, height: H - T - B, 'class': 'frame'})); var up = [], lo = []; - for (i = 0; i < n; i++) if (ref[i] !== null) { up.push(X(t[i]) + ',' + Y(ref[i] + tol[i])); lo.unshift(X(t[i]) + ',' + Y(ref[i] - tol[i])); } + for (i = 0; i < n; i++) if (high[i] !== null && low[i] !== null) { up.push(X(t[i]) + ',' + Y(high[i])); lo.unshift(X(t[i]) + ',' + Y(low[i])); } if (up.length) svg.appendChild(svgEl('polygon', {points: up.concat(lo).join(' '), 'class': 'band'})); svgLine(svg, t, ref, X, Y, 'ref'); svgLine(svg, t, om, X, Y, 'omjl'); - if (!s.passed && s.worst_time !== null) { + if (worstOmjl && s.worst_time !== null) { + svg.appendChild(svgEl('line', {x1: X(s.worst_time), x2: X(s.worst_time), y1: T, y2: H - B, 'class': 'worst-line'})); + svg.appendChild(svgEl('circle', {cx: X(s.worst_time), cy: Y(s.worst_omjl), r: 4, 'class': 'worst'})); + } else if (!s.passed && s.worst_time !== null && s.worst_time !== undefined) { // older files: the nearest sample var w = Math.round((s.worst_time - t0) / (t1 - t0) * (n - 1)); w = Math.max(0, Math.min(n - 1, w)); if (om[w] !== null) svg.appendChild(svgEl('circle', {cx: X(t[w]), cy: Y(om[w]), r: 4, 'class': 'worst'})); @@ -485,10 +510,11 @@ function signalPlot(s, m, readout) { function showValues(s, m) { var t = sampleTimes(s, m), lines = []; function pad(text) { return (text + ' ').slice(0, 16); } - lines.push(pad('t') + pad('reference') + pad('OM.jl') + '|diff|'); + lines.push(pad('t') + pad('reference') + pad('OM.jl') + pad('|diff|') + (s.low ? pad('band low') + 'band high' : '')); for (var i = 0; i < t.length; i++) { var r = s.reference[i], o = s.omjl[i]; - lines.push(pad(fmt(t[i])) + pad(fmt(r)) + pad(fmt(o)) + (r !== null && o !== null ? fmt(Math.abs(o - r)) : '—')); + lines.push(pad(fmt(t[i])) + pad(fmt(r)) + pad(fmt(o)) + (r !== null && o !== null ? pad(fmt(Math.abs(o - r))) : pad('—')) + + (s.low ? pad(fmt(s.low[i])) + fmt(s.high[i]) : '')); } document.getElementById('error-modal-title').textContent = s.name + ': the compared values'; var pre = document.getElementById('error-modal-text'); diff --git a/src/runner.jl b/src/runner.jl index b3c6066..6b75ccf 100644 --- a/src/runner.jl +++ b/src/runner.jl @@ -391,7 +391,8 @@ function _run_model_phases(model_name::String, solver_atol::Float64 = 0.0, solver_reltol::Float64 = 0.0, observed_filter::Vector{String} = String[], - maxiters::Float64 = 0.0) + maxiters::Float64 = 0.0, + start_time::Float64 = 0.0) results = Tuple{Int, Bool, Float64, Union{Nothing, String}}[] highest = 0 sol = nothing @@ -435,7 +436,7 @@ function _run_model_phases(model_name::String, if solver_atol > 0.0 _tol = (; _tol..., abstol = solver_atol) end - sol = OM.simulate(model_name; msl..., stopTime = stop_time, _sa..., _extra..., _ia..., _of..., _mi..., _tol...) + sol = OM.simulate(model_name; msl..., startTime = start_time, stopTime = stop_time, _sa..., _extra..., _ia..., _of..., _mi..., _tol...) #= Terminated is a successful end per Modelica semantics: a model calling terminate() completed its intended scenario. =# if sol.retcode != ReturnCode.Success && sol.retcode != ReturnCode.Terminated @@ -447,7 +448,7 @@ function _run_model_phases(model_name::String, temp_spec = ModelSpec( model_name, "", "", stop_time, UNKNOWN, reference, atol, reltol, reference_file, signal_mapping, "", - Set{Phase}()) + Set{Phase}(), "", 0.0, "", 0.0, 0.0, String[], 0.0, start_time) (passed, comparisons) = validate_against_reference(sol, temp_spec, ref_dir; terminatedAt = sol.retcode == ReturnCode.Terminated ? Float64(sol.t[end]) : nothing) signals = [_signal_tuple(c) for c in comparisons] @@ -505,11 +506,12 @@ end #= A SignalComparison's fields, for a worker's result (plain types across processes). =# const SIGNAL_TUPLE = Tuple{String, Bool, Float64, Float64, Float64, Float64, Float64, - Vector{Float64}, Vector{Float64}, Vector{Float64}} + Vector{Float64}, Vector{Float64}, Vector{Float64}, + Vector{Float64}, Vector{Float64}, Int, Int, Int} _signal_tuple(c::SignalComparison)::SIGNAL_TUPLE = (c.name, c.passed, c.max_abs_err, c.max_rel_err, c.worst_time, c.worst_actual, c.worst_expected, - c.times, c.expected, c.actual) + c.times, c.expected, c.actual, c.low, c.high, c.n_compared, c.n_events, c.n_outside) # ── Worker Execution with Timeout ─────────────────────────────────────── @@ -593,7 +595,7 @@ function run_on_worker(mgr::WorkerManager, spec::ModelSpec, spec.referenceFile, spec.reference, spec.atol, spec.reltol, spec.signalMapping, mgr.ref_dir, phase_ints, check_sim_code, spec.solver, spec.dtmax, spec.initAlg, - spec.solverAtol, spec.solverReltol, spec.observedFilter, spec.maxiters) + spec.solverAtol, spec.solverReltol, spec.observedFilter, spec.maxiters, spec.startTime) #= Wait for the result in a local task and poll that task. isready(future) asks the worker, and a worker running code that never yields (a pegged solve or diff --git a/src/signals.jl b/src/signals.jl index 42f8bf0..b4b8b5e 100644 --- a/src/signals.jl +++ b/src/signals.jl @@ -16,13 +16,19 @@ The signals the validations of `results` compared, as JSON, by model name: ``` {"models": {"": {"validated": true, "atol": 1e-4, "reltol": 3e-3, "time": [t0, t1, n], "signals": [{"name": "J1.w", "passed": true, "max_abs_err": ..., "max_rel_err": ..., - "worst_time": ..., "reference": [...], "omjl": [...]}]}}} + "worst_time": ..., "worst_omjl": ..., "worst_reference": ..., + "compared": 5051, "events": 20, "outside": 0, + "reference": [...], "omjl": [...], "low": [...], "high": [...]}]}}} ``` `time` is the comparison's `n` evenly spaced times from `t0` to `t1` (a signal compared at other times has its own `time`); `reference` and `omjl` are the values there, 6 significant digits, `null` where there is none (OM.jl's after the comparison stopped: the signal is not in the solution, or a value is -not finite). Models without compared signals are left out. +not finite); `low` and `high` the band OM.jl's values must lie in there (left out when the comparison +stopped before it). The signal was compared as OpenModelica's library testing does (`compare_signal`) at +`compared` times of the reference, `events` of them at its events (not compared), `outside` outside the +band: `worst_time` is where OM.jl is furthest outside it (`null` when inside everywhere), `worst_omjl` and +`worst_reference` the values there (left out without one). Models without compared signals are left out. """ function signals_json(results::Vector{ModelResult})::String local io = IOBuffer() @@ -70,6 +76,13 @@ function _model_signals_json(io::IO, r::ModelResult)::Nothing _json_number(io, s.max_rel_err) print(io, ",\"worst_time\":") _json_number(io, s.worst_time) + if isfinite(s.worst_time) + print(io, ",\"worst_omjl\":") + _json_number(io, s.worst_actual) + print(io, ",\"worst_reference\":") + _json_number(io, s.worst_expected) + end + print(io, ",\"compared\":", s.n_compared, ",\"events\":", s.n_events, ",\"outside\":", s.n_outside) if !isempty(s.times) && s.times != times print(io, ",\"time\":") _json_times(io, s.times) @@ -78,6 +91,12 @@ function _model_signals_json(io::IO, r::ModelResult)::Nothing _json_numbers(io, s.expected) print(io, ",\"omjl\":") _json_numbers(io, s.actual) + if !isempty(s.low) + print(io, ",\"low\":") + _json_numbers(io, s.low) + print(io, ",\"high\":") + _json_numbers(io, s.high) + end print(io, "}") end print(io, "]}") diff --git a/src/tubes.jl b/src/tubes.jl new file mode 100644 index 0000000..afb5c8d --- /dev/null +++ b/src/tubes.jl @@ -0,0 +1,494 @@ +#= OpenModelica's comparison of a result against a reference: omc's diffSimulationResults, which + OpenModelica's library testing (OpenModelicaLibraryTesting, testmodel.py) runs with relTol 3e-3, + relTolDiffMinMax 3e-3 and rangeDelta 1e-3 (shared.py). A port of OMCompiler/Compiler/runtime/ + SimulationResultsCmpTubes.c (calculateTubes, generateHighTube, generateLowTube, calibrateValues, + addRelativeTolerance, validate, cmpDataTubes) and the per-variable preparation of + SimulationResultsCmp.c (SimulationResultsCmp_compareResults), OpenModelica v1.27.1. The counters keep + omc's 0-based values (an array element is `a[k + 1]`), so the code can be read against the C line by + line. Where clang contracts `a*b + c` into a fused multiply-add (its default, -ffp-contract=on: the 51 + llvm.fmuladd of the file's LLVM IR) the port calls `_ma`, so it computes as omc built by clang does + (`fused = true`) or as a build without them (`fused = false`, an x86-64 build without FMA), bit for bit. =# + +""" +OpenModelica's library testing settings for `diffSimulationResults` (OpenModelicaLibraryTesting `shared.py`): +the relative tolerance, the absolute one as a fraction of the reference signal's range (max - min), and the +tube's width in time as a fraction of the reference's time span. +""" +const TUBE_RELTOL = 3e-3 +const TUBE_RELTOL_DIFF_MIN_MAX = 3e-3 +const TUBE_RANGE_DELTA = 1e-3 + +""" +Whether `tube_compare` computes as omc built by clang (macOS; arm64 fuses `a*b + c` into one rounding), the +omc its verdicts were checked against (OpenModelica 1.27.1, 2026-10-28), or as a build without fused +multiply-adds (`false`: an x86-64 build without FMA). Julia's `fma` rounds once on every machine, so the +verdicts are the same everywhere. +""" +const TUBE_FUSED = true + +"""`a*b + c` as omc's code computes it: one fused multiply-add where clang contracts it (`fused`), else two roundings.""" +_ma(fused::Bool, a::Float64, b::Float64, c::Float64)::Float64 = fused ? fma(a, b, c) : a * b + c + +""" + TubeState + +omc's `privates` of SimulationResultsCmpTubes.c: the upper and lower tube under construction (their corner +points `xHigh`/`yHigh`, `xLow`/`yLow`, the slopes `mh`/`ml` and the reference rows `i0h`/`i1h`, `i0l`/`i1l` +of each segment, 0-based as in omc), the reference's extent and whether it computes fused (`TUBE_FUSED`). +""" +mutable struct TubeState + mh::Vector{Float64} + ml::Vector{Float64} + xHigh::Vector{Float64} + xLow::Vector{Float64} + yHigh::Vector{Float64} + yLow::Vector{Float64} + i0h::Vector{Int} + i1h::Vector{Int} + i0l::Vector{Int} + i1l::Vector{Int} + tStart::Float64 + tStop::Float64 + x1::Float64 + y1::Float64 + x2::Float64 + y2::Float64 + currentSlope::Float64 + slopeDif::Float64 + delta::Float64 + S::Float64 + xRelEps::Float64 + xMinStep::Float64 + min::Float64 + max::Float64 + countLow::Int + countHigh::Int + length::Int + fused::Bool +end + +TubeState(n::Int, fused::Bool) = TubeState(zeros(n), zeros(n), zeros(n), zeros(n), zeros(n), zeros(n), + zeros(Int, n), zeros(Int, n), zeros(Int, n), zeros(Int, n), + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0, 0, n, fused) + +""" + TubeComparison + +One signal compared as omc's diffSimulationResults does (`tube_compare`): `passed` when no compared time +lies outside the tube; at the reference's times `time` (the first `n` of them: omc stops where the result +ends), the reference's values, the result's (`actual`, interpolated onto those times), the tube (`low`, +`high`, tolerances included) and `error`, how far outside it the result is (0 inside, NaN at a reference +event: not compared). +""" +struct TubeComparison + passed::Bool + time::Vector{Float64} + reference::Vector{Float64} + actual::Vector{Float64} + low::Vector{Float64} + high::Vector{Float64} + error::Vector{Float64} +end + +"""C's `fmax`: the other argument when one is NaN.""" +_fmax(a::Float64, b::Float64)::Float64 = isnan(a) ? b : isnan(b) ? a : max(a, b) + +"""C's `fmin`: the other argument when one is NaN.""" +_fmin(a::Float64, b::Float64)::Float64 = isnan(a) ? b : isnan(b) ? a : min(a, b) + +"""omc's `almostEqualRelativeAndAbs` (SimulationResultsCmp.c).""" +function _almost_equal(a::Float64, b::Float64, reltol::Float64, abstol::Float64)::Bool + local diff::Float64 = abs(a - b) + diff <= abstol && return true + return diff <= _fmax(abs(a), abs(b)) * reltol +end + +"""omc's `generateHighTube`: the upper tube's corner where the segment just added meets the one before.""" +function _generate_high_tube!(p::TubeState, x::Vector{Float64}, y::Vector{Float64})::Nothing + local index::Int = p.countHigh - 1 + local m1::Float64 = p.mh[index + 1] + local m2::Float64 = p.mh[index] + local S::Float64 = p.S + local f::Bool = p.fused + p.slopeDif = abs(m1 - m2) + if (p.slopeDif == 0) || ((p.slopeDif < 2e-15 * _fmax(abs(m1), abs(m2))) && (p.i0h[p.countHigh] - p.i1h[p.countHigh - 1] < 100)) + p.i0h[index] = p.i0h[index + 1] + p.countHigh -= 1 + local x3::Float64 = x[p.i0h[index] + 1] + local y3::Float64 = y[p.i0h[index] + 1] + local x4::Float64 = x[p.i1h[index] + 1] + local y4::Float64 = y[p.i1h[index] + 1] + p.mh[index] = (y3 - y4) / (x3 - x4) + else + p.xHigh[index + 1] = p.x2 - (p.delta * (m1 + m2) / (sqrt(_ma(f, m2, m2, S * S)) + sqrt(_ma(f, m1, m1, S * S)))) + if m1 * m2 < 0 + p.yHigh[index + 1] = p.y2 + (p.delta * _ma(f, m1, sqrt(_ma(f, m2, m2, S * S)), -(m2 * sqrt(_ma(f, m1, m1, S * S))))) / (m1 - m2) + else + p.yHigh[index + 1] = p.y2 + (S * S * p.delta * (m1 + m2) / _ma(f, m1, sqrt(_ma(f, m2, m2, S * S)), m2 * sqrt(_ma(f, m1, m1, S * S)))) + end + if (p.xHigh[index + 1] == p.xHigh[index]) && (p.yHigh[index + 1] != p.yHigh[index]) + p.xHigh[index + 1] = p.xHigh[index] + p.xMinStep + p.yHigh[index + 1] = _ma(f, p.delta, sqrt(_ma(f, m1, m1, S * S)), _ma(f, m1, p.xHigh[index + 1] - p.x2, p.y2)) + p.mh[index] = (p.yHigh[index + 1] - p.yHigh[index]) / p.xMinStep + end + #= The juncture before the last saved one: merge the two segments. =# + while index > 1 && p.xHigh[index + 1] <= p.xHigh[index] + p.i0h[index] = p.i0h[index + 1] + p.i1h[index] = p.i1h[index + 1] + p.mh[index] = p.mh[index + 1] + index -= 1 + p.countHigh -= 1 + if index == 0 + p.xHigh[index + 1] = x[1] - p.delta + p.yHigh[index + 1] = _ma(f, p.delta, sqrt(_ma(f, m1, m1, S * S)), _ma(f, m1, p.xHigh[index + 1] - p.x2, p.y2)) + else + local x3::Float64 = p.xHigh[index] + local y3::Float64 = p.yHigh[index] + m2 = p.mh[index] + p.xHigh[index + 1] = _ma(f, p.delta, sqrt(_ma(f, m1, m1, S * S)), _ma(f, m2, x3, -(m1 * p.x2)) + p.y2 - y3) / (m2 - m1) + p.yHigh[index + 1] = _ma(f, -m1, y3, _ma(f, m2 * m1, x3 - p.x2, m2 * _ma(f, p.delta, sqrt(_ma(f, m1, m1, S * S)), p.y2))) / (m2 - m1) + end + end + end + return nothing +end + +"""omc's `generateLowTube`: `_generate_high_tube!` for the lower tube.""" +function _generate_low_tube!(p::TubeState, x::Vector{Float64}, y::Vector{Float64})::Nothing + local index::Int = p.countLow - 1 + local m1::Float64 = p.ml[index + 1] + local m2::Float64 = p.ml[index] + local S::Float64 = p.S + local f::Bool = p.fused + p.slopeDif = abs(m1 - m2) + if (p.slopeDif == 0) || ((p.slopeDif < 2e-15 * _fmax(abs(m1), abs(m2))) && (p.i0l[p.countLow] - p.i1l[p.countLow - 1] < 100)) + p.i0l[index] = p.i0l[index + 1] + p.countLow -= 1 + local x3::Float64 = x[p.i0l[index] + 1] + local y3::Float64 = y[p.i0l[index] + 1] + local x4::Float64 = x[p.i1l[index] + 1] + local y4::Float64 = y[p.i1l[index] + 1] + p.ml[index] = (y3 - y4) / (x3 - x4) + else + p.xLow[index + 1] = p.x2 + (p.delta * (m1 + m2) / (sqrt(_ma(f, m2, m2, S * S)) + sqrt(_ma(f, m1, m1, S * S)))) + if m1 * m2 < 0 + p.yLow[index + 1] = p.y2 - (p.delta * _ma(f, m1, sqrt(_ma(f, m2, m2, S * S)), -(m2 * sqrt(_ma(f, m1, m1, S * S))))) / (m1 - m2) + else + p.yLow[index + 1] = p.y2 - (S * S * p.delta * (m1 + m2) / _ma(f, m1, sqrt(_ma(f, m2, m2, S * S)), m2 * sqrt(_ma(f, m1, m1, S * S)))) + end + if (p.xLow[index + 1] == p.xLow[index]) && (p.yLow[index + 1] != p.yLow[index]) + p.xLow[index + 1] = p.xLow[index] + p.xMinStep + p.yLow[index + 1] = _ma(f, -p.delta, sqrt(_ma(f, m1, m1, S * S)), _ma(f, m1, p.xLow[index + 1] - p.x2, p.y2)) + p.ml[index] = (p.yLow[index + 1] - p.yLow[index]) / p.xMinStep + end + while index > 1 && p.xLow[index + 1] <= p.xLow[index] + p.i0l[index] = p.i0l[index + 1] + p.i1l[index] = p.i1l[index + 1] + p.ml[index] = p.ml[index + 1] + index -= 1 + p.countLow -= 1 + if index == 0 + p.xLow[index + 1] = x[1] - p.delta + p.yLow[index + 1] = _ma(f, -p.delta, sqrt(_ma(f, m1, m1, S * S)), _ma(f, m1, p.xLow[index + 1] - p.x2, p.y2)) + else + local x3::Float64 = p.xLow[index] + local y3::Float64 = p.yLow[index] + m2 = p.ml[index] + p.xLow[index + 1] = _ma(f, -p.delta, sqrt(_ma(f, m1, m1, S * S)), _ma(f, m2, x3, -(m1 * p.x2)) + p.y2 - y3) / (m2 - m1) + p.yLow[index + 1] = _ma(f, -m1, y3, _ma(f, m2 * m1, x3 - p.x2, m2 * _ma(f, -p.delta, sqrt(_ma(f, m1, m1, S * S)), p.y2))) / (m2 - m1) + end + end + end + return nothing +end + +""" + _calculate_tubes!(x, y, r, fused) -> TubeState + +omc's `calculateTubes`: the tubes around the reference `y` at the times `x`, `r` of its time span wide in +time, at least 4 r of its range high. Like omc it moves an event's repeated times apart in `x` by +`xMinStep` (1e-15 of the span), which the rest of the comparison sees. +""" +function _calculate_tubes!(x::Vector{Float64}, y::Vector{Float64}, r::Float64, fused::Bool = TUBE_FUSED)::TubeState + local n::Int = length(x) + n >= 2 || throw(ArgumentError("a tube needs at least two reference rows, got $n")) + local p::TubeState = TubeState(n, fused) + local f::Bool = fused + p.tStart = x[1] + p.tStop = x[n] + p.xRelEps = 1e-15 + p.xMinStep = ((p.tStop - p.tStart) + abs(p.tStart)) * p.xRelEps + p.delta = r * (p.tStop - p.tStart) + p.max = y[1] + p.min = y[1] + for i in 1:(n - 1) + p.max = _fmax(y[i + 1], p.max) + p.min = _fmin(y[i + 1], p.min) + end + p.S = abs(4 * (p.max - p.min) / (abs(p.tStop - p.tStart))) + if p.S < 0.0004 / abs(p.tStop - p.tStart) + p.S = 0.0004 / abs(p.tStop - p.tStart) + end + local S::Float64 = p.S + for i in 1:(n - 1) + p.x1 = x[i + 1] + p.y1 = y[i + 1] + p.x2 = x[i] + p.y2 = y[i] + #= An event's repeated time. =# + if (p.x1 <= p.x2) && (p.y1 == p.y2) && (p.countHigh == 0) + continue + end + if (p.x1 <= p.x2) && (p.y1 == p.y2) + p.x1 = _fmax(p.x1, x[p.i1l[p.countLow] + 1] + p.xMinStep) + p.x1 = _fmax(p.x1, x[p.i1h[p.countHigh] + 1] + p.xMinStep) + x[i + 1] = p.x1 + p.currentSlope = p.mh[p.countHigh] + else + if p.x1 <= p.x2 + p.x1 = p.x2 + p.xMinStep + x[i + 1] = p.x1 + end + p.currentSlope = (p.y1 - p.y2) / (p.x1 - p.x2) + end + p.i0h[p.countHigh + 1] = i + p.i1h[p.countHigh + 1] = i - 1 + p.mh[p.countHigh + 1] = p.currentSlope + p.i0l[p.countLow + 1] = i + p.i1l[p.countLow + 1] = i - 1 + if (p.x1 <= p.x2) && (p.y1 == p.y2) + p.currentSlope = p.ml[p.countLow] + end + p.ml[p.countLow + 1] = p.currentSlope + if p.countHigh == 0 + p.xHigh[p.countHigh + 1] = p.x2 - p.delta + p.yHigh[p.countHigh + 1] = _ma(f, p.delta, sqrt(_ma(f, p.currentSlope, p.currentSlope, S * S)), _ma(f, -p.currentSlope, p.delta, p.y2)) + p.xLow[p.countLow + 1] = p.x2 - p.delta + p.yLow[p.countLow + 1] = _ma(f, -p.delta, sqrt(_ma(f, p.currentSlope, p.currentSlope, S * S)), _ma(f, -p.currentSlope, p.delta, p.y2)) + p.countHigh += 1 + p.countLow += 1 + else + p.xHigh[p.countHigh + 1] = 1 + p.yHigh[p.countHigh + 1] = 1 + p.xLow[p.countLow + 1] = 1 + p.yLow[p.countLow + 1] = 1 + p.countHigh += 1 + p.countLow += 1 + _generate_high_tube!(p, x, y) + _generate_low_tube!(p, x, y) + end + end + #= The terminal values, delta past the end. =# + p.x1 = p.xHigh[p.countHigh] + p.y1 = p.yHigh[p.countHigh] + p.x2 = p.tStop + p.currentSlope = p.mh[p.countHigh] + p.xHigh[p.countHigh + 1] = p.x2 + p.delta + p.yHigh[p.countHigh + 1] = _ma(f, p.currentSlope, p.x2 + p.delta - p.x1, p.y1) + p.countHigh += 1 + p.x1 = p.xLow[p.countLow] + p.y1 = p.yLow[p.countLow] + p.x2 = p.tStop + p.currentSlope = p.ml[p.countLow] + p.xLow[p.countLow + 1] = p.x2 + p.delta + p.yLow[p.countLow + 1] = _ma(f, p.currentSlope, p.x2 + p.delta - p.x1, p.y1) + p.countLow += 1 + return p +end + +"""omc's `linearInterpolation`: the value at `x` between (x0, y0) and (x1, y1), times within `xabstol` equal.""" +function _linear_interpolation(x::Float64, x0::Float64, x1::Float64, y0::Float64, y1::Float64, xabstol::Float64, + fused::Bool)::Float64 + if _almost_equal(x0, x, 0.0, xabstol) + return y0 + elseif _almost_equal(x1, x, 0.0, xabstol) + return y1 + elseif _almost_equal(x1, x0, 0.0, xabstol) + return y0 + else + return _ma(fused, (y1 - y0) / (x1 - x0), x - x0, y0) + end +end + +""" + _calibrate_values(source, targetTime, targetValues, nsource, ntarget, xabstol, fused) -> (values, nsource) + +omc's `calibrateValues`: the target's values interpolated onto the first `nsource` source times; at a +target event, after its left limit, the right one. Where the target ends before the source, the +sequence is cut: the second result is how many source times have a value. +""" +function _calibrate_values(source::Vector{Float64}, targetTime::Vector{Float64}, targetValues::Vector{Float64}, + nsource::Int, ntarget::Int, xabstol::Float64, fused::Bool)::Tuple{Vector{Float64}, Int} + local n::Int = nsource + local values::Vector{Float64} = zeros(n) + local nout::Int = n + local j::Int = 1 + local x0::Float64 = NaN + local x1::Float64 = NaN + local y0::Float64 = NaN + local y1::Float64 = NaN + for i in 0:(n - 1) + local x::Float64 = source[i + 1] + #= Avoid extrapolation by cutting the sequence. =# + if targetTime[j + 1] > source[n] && targetTime[j] > source[n] + values[i + 1] = _linear_interpolation(x, x0, x1, y0, y1, xabstol, fused) + nout = i + 1 + break + end + x1 = targetTime[j + 1] + y1 = targetValues[j + 1] + while (x1 <= x) && ((j + 1) < ntarget) + j += 1 + x1 = targetTime[j + 1] + y1 = targetValues[j + 1] + _almost_equal(x1, x, 0.0, xabstol) && break + end + x0 = targetTime[j] + y0 = targetValues[j] + if i > 0 && _almost_equal(source[i], x0, 0.0, xabstol) && _almost_equal(x0, x1, 0.0, xabstol) + values[i + 1] = y1 # the previous value was the event's left limit: the right one + else + values[i + 1] = _linear_interpolation(x, x0, x1, y0, y1, xabstol, fused) + end + end + return (values, nout) +end + +"""omc's `addRelativeTolerance`: widen the tube (`direction` +1 upper, -1 lower) to the reference +- the tolerance.""" +function _add_relative_tolerance!(target::Vector{Float64}, source::Vector{Float64}, n::Int, reltol::Float64, + abstol::Float64, direction::Int)::Nothing + if direction > 0 + for i in 1:n + target[i] = _fmax(source[i] + _fmax(abs(source[i] * reltol), abstol), target[i]) + end + else + for i in 1:n + target[i] = _fmin(source[i] - _fmax(abs(source[i] * reltol), abstol), target[i]) + end + end + return nothing +end + +""" + _validate!(n, refTime, refValues, low, high, actual, reltol, abstol, xabstol) -> Union{Nothing, Vector{Float64}} + +omc's `validate`: how far outside the tube the result is at each time, `nothing` when it is inside at all of +them. A reference event (a time repeated) is not compared (NaN); the tube there becomes a band 10 times the +tolerance around the reference, or around both values when the step before it was inside. +""" +function _validate!(n::Int, refTime::Vector{Float64}, refValues::Vector{Float64}, low::Vector{Float64}, + high::Vector{Float64}, actual::Vector{Float64}, reltol::Float64, abstol::Float64, + xabstol::Float64)::Union{Nothing, Vector{Float64}} + local error::Vector{Float64} = zeros(n) + local isdifferent::Int = 0 + local lastStepError::Bool = true + for i in 0:(n - 1) + local thisStepError::Bool = false + local isEvent::Bool = (i > 0 && _almost_equal(refTime[i + 1], refTime[i], 0.0, xabstol)) || + (i + 1 < n && _almost_equal(refTime[i + 1], refTime[i + 2], 0.0, xabstol)) + if isEvent + local refv::Float64 = refValues[i + 1] + local val::Float64 = actual[i + 1] + local tol::Float64 = _fmax(abstol * 10, _fmax(abs(refv), abs(val)) * reltol * 10) + high[i + 1] = (lastStepError ? refv : _fmax(refv, val)) + tol + low[i + 1] = (lastStepError ? refv : _fmin(refv, val)) - tol + error[i + 1] = NaN + else + error[i + 1] = 0.0 + thisStepError = lastStepError + if actual[i + 1] < low[i + 1] + error[i + 1] = low[i + 1] - actual[i + 1] + isdifferent += 1 + thisStepError = true + elseif actual[i + 1] > high[i + 1] + error[i + 1] = actual[i + 1] - high[i + 1] + isdifferent += 1 + thisStepError = true + end + end + lastStepError = thisStepError + end + return isdifferent > 0 ? error : nothing +end + +""" + initial_event_rows(time) -> Int + +How many rows at the start share their time with the next (the initial event): omc's `offset` in +SimulationResultsCmp_compareResults, counted once per file before any comparison. +""" +function initial_event_rows(time::Vector{Float64})::Int + local offset::Int = 0 + while offset < length(time) - 1 && time[offset + 1] == time[offset + 2] + offset += 1 + end + return offset +end + +""" + _first_values_after_initial_events!(values, offset) + +omc's preparation of a variable ("adjust initial data points"): the first `offset` rows (the initial event's, +`initial_event_rows`) take the value of the row after them. +""" +function _first_values_after_initial_events!(values::Vector{Float64}, offset::Int)::Nothing + for j in offset:-1:1 + values[j] = values[j + 1] + end + return nothing +end + +""" + tube_compare(refTime, refValues, actualTime, actualValues; reltol, reltolDiffMinMax, rangeDelta) -> TubeComparison + +Compare one signal's result against its reference as omc's `diffSimulationResults` does (cmpDataTubes with +the variable's preparation): the result is interpolated onto the reference's times and must lie, at each of +them that is not a reference event, within a tube around the reference that is `rangeDelta` of the time +span wide in time (at least `4 rangeDelta` of the signal's range high), widened by `reltol` of the value and +`reltolDiffMinMax` of the signal's range. The defaults are OpenModelica's library testing settings; `fused` +whether to compute as omc built by clang (`TUBE_FUSED`). + +`refTime` is changed in place as omc does (an event's repeated times moved apart by 1e-15 of the span). omc +reads the reference's times once per file, so in one `diffSimulationResults` call each signal after the first +sees the times the ones before it moved; to get omc's verdicts exactly, pass the same vector for the signals +of one reference, in its order, with `refOffset`/`actualOffset` counted before the first +(`initial_event_rows`). +""" +function tube_compare(refTime::Vector{Float64}, refValues::Vector{Float64}, actualTime::Vector{Float64}, + actualValues::Vector{Float64}; + reltol::Float64 = TUBE_RELTOL, reltolDiffMinMax::Float64 = TUBE_RELTOL_DIFF_MIN_MAX, + rangeDelta::Float64 = TUBE_RANGE_DELTA, + fused::Bool = TUBE_FUSED, + refOffset::Int = initial_event_rows(refTime), + actualOffset::Int = initial_event_rows(actualTime))::TubeComparison + rangeDelta > 0.0 || throw(ArgumentError("rangeDelta must be positive (omc compares without tubes at 0)")) + local ref::Vector{Float64} = copy(refValues) + local act::Vector{Float64} = copy(actualValues) + _first_values_after_initial_events!(act, actualOffset) + _first_values_after_initial_events!(ref, refOffset) + local xabstol::Float64 = (refTime[end] - refTime[1]) * 1e-3 / _fmax(Float64(length(actualTime)), Float64(length(refTime))) + #= All the reference's rows at one time (a model with StopTime 0, MSL 4.1.0's + SolveOneNonlinearEquation.Inverse_sine): each is an event, none is compared, the signal passes + whatever its value. omc reads before its slope array building that tube (undefined); its verdict + is always "passed" all the same (checked with omc 1.27.1, 2026-10-28). =# + if refTime[end] == refTime[1] + return TubeComparison(true, copy(refTime), ref, [i <= length(act) ? act[i] : NaN for i in eachindex(ref)], + copy(ref), copy(ref), fill(NaN, length(ref))) + end + local p::TubeState = _calculate_tubes!(refTime, ref, rangeDelta, fused) + local (actual, n) = _calibrate_values(refTime, actualTime, act, length(refTime), length(actualTime), xabstol, fused) + local (high, nh) = _calibrate_values(refTime, p.xHigh, p.yHigh, n, p.countHigh, xabstol, fused) + local (low, nl) = _calibrate_values(refTime, p.xLow, p.yLow, nh, p.countLow, xabstol, fused) + n = nl + local abstol::Float64 = (p.max - p.min == 0 && p.max < reltolDiffMinMax * reltolDiffMinMax) ? + reltolDiffMinMax * reltolDiffMinMax : abs((p.max - p.min) * reltolDiffMinMax) + _add_relative_tolerance!(high, ref, n, reltol, abstol, 1) + _add_relative_tolerance!(low, ref, n, reltol, abstol, -1) + local error::Union{Nothing, Vector{Float64}} = _validate!(n, refTime, ref, low, high, actual, reltol, abstol, xabstol) + return TubeComparison(error === nothing, refTime[1:n], ref[1:n], actual[1:n], low[1:n], high[1:n], + error === nothing ? [_almost_event(refTime, i, n, xabstol) ? NaN : 0.0 for i in 1:n] : error) +end + +"""Whether the reference's `i`-th of `n` times is an event (a time repeated, within `xabstol`), as `_validate!` tells.""" +_almost_event(t::Vector{Float64}, i::Int, n::Int, xabstol::Float64)::Bool = + (i > 1 && _almost_equal(t[i], t[i - 1], 0.0, xabstol)) || (i < n && _almost_equal(t[i], t[i + 1], 0.0, xabstol)) diff --git a/src/types.jl b/src/types.jl index f812cfa..61432e6 100644 --- a/src/types.jl +++ b/src/types.jl @@ -89,6 +89,8 @@ struct ModelSpec # model bail with a clean MaxIters in a few minutes instead of grinding all the way # to the wall-clock watchdog SIGKILL. maxiters::Float64 + # The experiment's StartTime: simulated and compared from there (MSL ForceStrokeBehaviour: -4). + startTime::Float64 end # Convenience: shorter-arg constructors with empty/default trailing fields. Lets older callsites @@ -137,14 +139,29 @@ ModelSpec(name::AbstractString, key::AbstractString, domain::AbstractString, ModelSpec(String(name), String(key), String(domain), stopTime, expected, reference, atol, reltol, String(referenceFile), signalMapping, String(issue), skipPhases, String(solver), dtmax, String(initAlg), - solverAtol, solverReltol, String[], 0.0) + solverAtol, solverReltol, String[], 0.0, 0.0) +# Full positional through maxiters (no startTime) -> starts at 0. +ModelSpec(name::String, key::String, domain::String, stopTime::Float64, expected::Phase, + reference::Dict{String, Float64}, atol::Float64, reltol::Float64, referenceFile::String, + signalMapping::Dict{String, String}, issue::String, skipPhases::Set{Phase}, solver::String, + dtmax::Float64, initAlg::String, solverAtol::Float64, solverReltol::Float64, + observedFilter::Vector{String}, maxiters::Float64) = + ModelSpec(name, key, domain, stopTime, expected, reference, atol, reltol, referenceFile, signalMapping, + issue, skipPhases, solver, dtmax, initAlg, solverAtol, solverReltol, observedFilter, maxiters, 0.0) """ SignalComparison -Result of comparing one signal against its reference: the largest error and where, and the values -compared (`expected`, the reference, and `actual`, OM.jl's, at `times`; `actual` is NaN after a sample -where the comparison stopped: the signal is not in the solution, or a value is not finite). +Result of comparing one signal against its reference as OpenModelica's library testing does +(`compare_signal`, `tube_compare`): at `n_compared` times of the reference, `n_events` of them at its events +(not compared), OM.jl's value must lie in a band around the reference; `n_outside` do not. `worst_time`, +`worst_actual` and `worst_expected` are where OM.jl is furthest outside it and the two values there (NaN when +inside everywhere); `max_abs_err` and `max_rel_err` the largest difference from the reference at the +compared times. + +For plotting, the values at the evenly spaced `times`: `expected` (the reference), `actual` (OM.jl's; NaN +after a time where the comparison stopped: the signal is not in the solution, or a value is not finite) and +the band, `low` and `high` (empty when the comparison stopped before it). """ struct SignalComparison name::String @@ -157,6 +174,11 @@ struct SignalComparison times::Vector{Float64} expected::Vector{Float64} actual::Vector{Float64} + low::Vector{Float64} + high::Vector{Float64} + n_compared::Int + n_events::Int + n_outside::Int end SignalComparison(name::String, passed::Bool, max_abs_err::Float64, max_rel_err::Float64, @@ -164,6 +186,12 @@ SignalComparison(name::String, passed::Bool, max_abs_err::Float64, max_rel_err:: SignalComparison(name, passed, max_abs_err, max_rel_err, worst_time, worst_actual, worst_expected, Float64[], Float64[], Float64[]) +SignalComparison(name::String, passed::Bool, max_abs_err::Float64, max_rel_err::Float64, + worst_time::Float64, worst_actual::Float64, worst_expected::Float64, + times::Vector{Float64}, expected::Vector{Float64}, actual::Vector{Float64}) = + SignalComparison(name, passed, max_abs_err, max_rel_err, worst_time, worst_actual, worst_expected, + times, expected, actual, Float64[], Float64[], 0, 0, 0) + """ ModelResult diff --git a/test/comparisonTests.jl b/test/comparisonTests.jl index 132c36e..1eca64d 100644 --- a/test/comparisonTests.jl +++ b/test/comparisonTests.jl @@ -32,23 +32,33 @@ The fix belongs in OMBackend: time repeated: the values before and after) accepts either value. A solution evaluated at the event returns its left limit (SciML's default continuity), the reference interpolation the right one. + +2026-10-28: a signal is compared as OpenModelica's library testing does +(omc's diffSimulationResults, ported as tube_compare): at every time of the +reference, in a band around it; a reference event is not compared. =# import OMLibraryTesting as OLT -#= A solution stand-in: `sol(t; idxs)` of one signal. =# +#= A solution stand-in: `sol(t; idxs)` of one signal, one time per call (compare_signal falls back to + that). =# struct SignalOf{F} f::F end -(s::SignalOf)(t; idxs = nothing) = s.f(t) +(s::SignalOf)(t::Real; idxs = nothing) = s.f(t) + +#= A solution stand-in that takes all the times in one call, as SciML's (the values in `u`). =# +struct ManyAtOnce{F} + f::F +end +(s::ManyAtOnce)(t::Real; idxs = nothing) = error("one time per call") +(s::ManyAtOnce)(ts::AbstractVector; idxs = nothing) = (u = s.f.(ts),) @testset "comparison: an event at a sample instant" begin #= A sawtooth reset at t = 0.5, as a Mean block's integrator: the reference stores the value before and after the reset at 0.5. =# local ref = OLT.ReferenceData([0.0, 0.25, 0.5, 0.5, 0.75, 1.0], Dict("x" => [0.0, 0.25, 0.5, 0.0, 0.25, 0.5])) - @test OLT._event_limits(ref.time, ref.signals["x"], 0.5) == (0.5, 0.0) - @test OLT._event_limits(ref.time, ref.signals["x"], 0.25) === nothing local sawtooth(t) = t <= 0.5 ? t : t - 0.5 # the left limit at the reset local cmp = OLT.compare_signal(SignalOf(sawtooth), ref, "x", 1.0; npoints = 5) @test cmp.passed @@ -60,11 +70,132 @@ end local t32 = Float64(Float32(0.099)) local stored = OLT.ReferenceData([0.0, 0.05, t32, t32, 0.1], Dict("x" => [0.0, 0.05, 0.099, -0.099, -0.1])) @test t32 < 0.099 - @test OLT._event_limits(stored.time, stored.signals["x"], 0.099) == (0.099, -0.099) - @test OLT._event_limits(stored.time, stored.signals["x"], 0.05) === nothing @test OLT.compare_signal(SignalOf(t -> t <= 0.099 ? t : -t), stored, "x", 0.1; npoints = 1001).passed end +"""A pulse on from 0.2 to 0.6, rows every 0.01, its switches recorded (the time repeated: before, after).""" +function pulse_reference()::Tuple{Vector{Float64}, Vector{Float64}} + local tp::Vector{Float64} = Float64[] + local yp::Vector{Float64} = Float64[] + for k in 0:100 + local t::Float64 = k / 100 + if k == 20 + append!(tp, [t, t]); append!(yp, [0.0, 1.0]) + elseif k == 60 + append!(tp, [t, t]); append!(yp, [1.0, 0.0]) + else + push!(tp, t); push!(yp, 0.2 < t < 0.6 ? 1.0 : 0.0) + end + end + return (tp, yp) +end + +"""A pulse on from `on` to `off` at the times `t`, the left limit at a switch (as a solution evaluated there).""" +pulse_values(t::Vector{Float64}, on::Float64, off::Float64)::Vector{Float64} = [on < s <= off ? 1.0 : 0.0 for s in t] + +"""The cases of "tube_compare: OpenModelica's verdicts": name => (reference time, values, result time, values).""" +function tube_cases()::Vector{Pair{String, NTuple{4, Vector{Float64}}}} + local ts::Vector{Float64} = collect(range(0.0, 1.0, length = 501)) + local sine::Vector{Float64} = sin.(2pi .* ts) + local (tp, yp) = pulse_reference() + local tr::Vector{Float64} = collect(range(0.0, 2.0, length = 201)) + local spike::Vector{Float64} = copy(tr) + spike[101] += 0.05 + return [ + "sine, same" => (ts, sine, ts, copy(sine)), + "sine, 0.0004 late" => (ts, sine, ts, sin.(2pi .* (ts .- 0.0004))), + "sine, 0.003 late" => (ts, sine, ts, sin.(2pi .* (ts .- 0.003))), + "sine, 1.005 times" => (ts, sine, ts, 1.005 .* sine), + "sine, 0.004 higher" => (ts, sine, ts, sine .+ 0.004), + "sine, 0.02 higher" => (ts, sine, ts, sine .+ 0.02), + "pulse, on time" => (tp, yp, tp, pulse_values(tp, 0.2, 0.6)), + "pulse, 0.005 late" => (tp, yp, tp, pulse_values(tp, 0.205, 0.605)), + "pulse, 0.015 late" => (tp, yp, tp, pulse_values(tp, 0.215, 0.615)), + "pulse, on a coarser grid" => (tp, yp, tp[1:3:end], pulse_values(tp[1:3:end], 0.2, 0.6)), + "ramp, a spike" => (tr, tr, tr, spike), + ] +end + +@testset "tube_compare: OpenModelica's verdicts (omc 1.27.1)" begin + #= omc's diffSimulationResults on these cases (written as CSV), with OpenModelica's library testing + settings, 2026-10-28 (REPORTS 2026-10-27-omlt-coverage-master-4.1.0, files/2026-10-28-omlt-tube-fixtures.*): + its verdicts, and its band at a few rows of two failing ones (its diff file, 15 digits). =# + local omcPassed::Vector{Bool} = [true, true, false, true, true, false, true, true, false, false, false] + local cases = tube_cases() + for ((name, (rt, ry, at, ay)), expected) in zip(cases, omcPassed) + @test (name => OLT.tube_compare(copy(rt), ry, at, ay).passed) == (name => expected) + end + local (lt, ly, la, lv) = cases[3].second + local late = OLT.tube_compare(copy(lt), ly, la, lv) + @test late.high[2] ≈ 0.0227377591592959 rtol = 1e-13 + @test late.low[2] ≈ 0.00239370782096386 rtol = 1e-13 + @test late.high[167] ≈ 0.878749532730212 rtol = 1e-13 + @test late.low[167] ≈ 0.861593180979107 rtol = 1e-13 + local (rt, ry, ra, rv) = cases[11].second + local ramp = OLT.tube_compare(copy(rt), ry, ra, rv) + @test ramp.high[67] ≈ 0.668246211251235 rtol = 1e-13 + @test ramp.low[67] ≈ 0.651753788748765 rtol = 1e-13 + @test count(>(0.0), ramp.error) == 1 && ramp.time[argmax(ramp.error)] == 1.0 + #= Like omc, the band moves an event's repeated times apart (1e-15 of the span) in the times it is given. =# + local (tp, yp) = pulse_reference() + local moved::Vector{Float64} = copy(tp) + OLT.tube_compare(moved, yp, tp, pulse_values(tp, 0.2, 0.6)) + @test moved != tp && maximum(abs.(moved .- tp)) <= 1e-14 && issorted(moved) + #= omc's quirk: a reference with all its rows at one time (StopTime 0) compares nothing, any value passes. =# + @test OLT.tube_compare([0.0, 0.0], [0.5236, 0.5236], [0.0, 0.0], [0.6, 0.6]).passed +end + +@testset "comparison: as OpenModelica's library testing (MSL BooleanNetwork1)" begin + #= Until 2026-10-28 a signal was compared at 101 plotted samples only: a switch up to a sample interval + late passed (BooleanNetwork1: its switches on samples 0.1 apart), so did a dip between samples. Now at + every reference time, in OpenModelica's band: 0.1 % of the span (here 0.001) wide in time. =# + local (tp, yp) = pulse_reference() + local ref = OLT.ReferenceData(tp, Dict("p" => yp)) + local pulse(on::Float64, off::Float64) = SignalOf(t -> on < t <= off ? 1.0 : 0.0) # left limits + local onTime = OLT.compare_signal(pulse(0.2, 0.6), ref, "p", 1.0; npoints = 11) + @test onTime.passed && onTime.n_compared == 103 && onTime.n_events == 4 && onTime.n_outside == 0 + @test onTime.max_abs_err == 0.0 && isnan(onTime.worst_time) + @test length(onTime.low) == 11 && all(onTime.low .<= onTime.expected .<= onTime.high) + #= A switch late by less than the reference's row spacing shows at its event rows only: not compared. =# + @test OLT.compare_signal(pulse(0.205, 0.605), ref, "p", 1.0; npoints = 11).passed + local late = OLT.compare_signal(pulse(0.215, 0.615), ref, "p", 1.0; npoints = 11) + @test !late.passed && late.n_outside == 2 && late.worst_time == 0.21 + @test late.worst_actual == 0.0 && late.worst_expected == 1.0 + local dip = OLT.compare_signal(SignalOf(t -> 0.2 < t <= 0.6 && !(0.425 < t < 0.445) ? 1.0 : 0.0), ref, "p", 1.0; + npoints = 11) + @test !dip.passed && dip.n_outside == 2 && 0.43 <= dip.worst_time <= 0.44 + @test dip.actual == onTime.actual # the plotted samples do not show it + #= All the times in one call, as a SciML solution: the same comparison. =# + local many = OLT.compare_signal(ManyAtOnce(t -> 0.2 < t <= 0.6 ? 1.0 : 0.0), ref, "p", 1.0; npoints = 11) + @test many.passed && many.n_events == 4 && many.actual == onTime.actual + @test OLT._solution_values(ManyAtOnce(t -> 2t), :x, [0.0, 0.5]) == [0.0, 1.0] + @test OLT._solution_values(SignalOf(t -> 2t), :x, [0.0, 0.5]) == [0.0, 1.0] +end + +@testset "comparison: over what OM.jl simulated, [startTime, stopTime]" begin + #= omc extrapolates a result that ends before its reference: the reference is cut to the rows OM.jl + simulated (MSL 4.1.0 HysteresisModelComparison: stopTime 1, reference to 14; ForceStrokeBehaviour: + StartTime -4, simulated from 0 until 2026-10-28). =# + local t::Vector{Float64} = collect(-1.0:0.01:3.0) + local ref = OLT.ReferenceData(t, Dict("x" => 2 .* t)) + @test OLT.comparison_rows(ref.time, 0.0, 1.0) == 101:201 + @test OLT.comparison_rows(ref.time, -1.0, 1.0) == 1:201 + @test OLT.comparison_rows([0.0, 2.0], 0.0, 1.0) == 1:2 # too coarse for the interval: all rows + local simulated = SignalOf(s -> 0.0 <= s <= 1.0 ? 2s : 1e6) # nothing outside [0, 1] + local c = OLT.compare_signal(simulated, ref, "x", 1.0; npoints = 11) + @test c.passed && c.n_compared == 101 + #= From the experiment's StartTime: compared and plotted from there. =# + local fromStart = OLT.compare_signal(SignalOf(s -> s <= 1.0 ? 2s : 1e6), ref, "x", 1.0; startTime = -1.0, npoints = 11) + @test fromStart.passed && fromStart.n_compared == 201 && fromStart.times[1] == -1.0 + mktempdir() do dir + mkpath(joinpath(dir, "csv")) + write(joinpath(dir, "csv", "M.csv"), "time,x\n" * join(["$(u),$(2u)" for u in t], "\n") * "\n") + local spec = OLT.ModelSpec("M", "M", "Test", 1.0, OLT.VALIDATE, Dict{String, Float64}(), 1e-4, 3e-3, "M", + Dict{String, String}(), "", Set{OLT.Phase}()) + @test first(OLT.validate_against_reference(simulated, spec, dir)) + end +end + @testset "comparison: a stopTime past the reference's end" begin #= The reference covers the experiment, [0, StopTime]: a sample past its end would be compared with its last value, frozen (2026-09-29: Engine1b diff --git a/test/registryTests.jl b/test/registryTests.jl index 622f356..7ef3198 100644 --- a/test/registryTests.jl +++ b/test/registryTests.jl @@ -42,6 +42,11 @@ end @test OLT.load_registry_meta(OLT.default_models_path("4.1.0"))["msl_version"] == "MSL:4.1.0" #= Every 4.1.0 entry is an experiment of 4.1.0. =# local experiments = Set(first(split(l, '|')) for l in eachline(joinpath(models, "experiments_Modelica_4.1.0.txt"))) + #= The recorded experiment lists carry the experiment's StartTime (2026-10-28; MSL ForceStrokeBehaviour: -4, + simulated and compared from 0 before). =# + local forceStroke = only(filter(s -> endswith(s.name, ".ForceStrokeBehaviour"), + OLT.discover_experiments(; version = "4.1.0", cache = false))) + @test forceStroke.startTime == -4.0 && forceStroke.stopTime == 4.0 @test all(e -> e["name"] in experiments, values(OLT.TOML.parsefile(OLT.default_models_path("4.1.0"))["models"])) #= Bundled versions by MSL_Version; others are installed libraries (not loaded here). =# @test OLT._msl_kwargs("MSL:3.2.3") == (; MSL_Version = "MSL:3.2.3") diff --git a/test/signalsTests.jl b/test/signalsTests.jl index af62313..847edfd 100644 --- a/test/signalsTests.jl +++ b/test/signalsTests.jl @@ -11,7 +11,7 @@ import OMLibraryTesting as OLT struct ValuesOf{F} f::F end -(s::ValuesOf)(t; idxs = nothing) = s.f(t) +(s::ValuesOf)(t::Real; idxs = nothing) = s.f(t) @testset "Compared signals" begin local ref = OLT.ReferenceData([0.0, 0.5, 1.0], Dict("x" => [0.0, 1.0, 2.0])) @@ -27,6 +27,14 @@ end #= A signal the reference does not have: nothing compared. =# @test isempty(OLT.compare_signal(ValuesOf(t -> 2t), ref, "y", 1.0; npoints = 5).times) + #= No sample counted an error: no time of the largest. =# + @test ok.max_abs_err == 0.0 && isnan(ok.worst_time) + + #= An event the reference recorded: its rows are not compared. =# + local eventRef = OLT.ReferenceData([0.0, 0.5, 0.5, 1.0], Dict("p" => [0.0, 0.0, 1.0, 1.0])) + local atEvent = OLT.compare_signal(ValuesOf(t -> t <= 0.5 ? 0.0 : 1.0), eventRef, "p", 1.0; npoints = 5) + @test atEvent.passed && atEvent.n_compared == 4 && atEvent.n_events == 2 + #= A worker returns the comparisons as plain tuples; the parent rebuilds them. =# local back = OLT.SignalComparison(OLT._signal_tuple(stopped)...) @test back.name == "x" && back.times == stopped.times && isequal(back.actual, stopped.actual) @@ -46,6 +54,17 @@ end @test occursin("\"B\":{\"validated\":false,", json) && occursin("\"omjl\":[0.0,0.5,null,null,null]", json) @test !occursin("\"C\"", json) @test count(==('{'), json) == count(==('}'), json) && count(==('['), json) == count(==(']'), json) + #= Inside the band: no worst time or values; how many times were compared; the band at the samples. =# + @test occursin("\"worst_time\":null,\"compared\":3,\"events\":0,\"outside\":0,\"reference\"", json) + @test occursin("\"low\":[", json) && occursin("\"high\":[", json) + local eventJson = OLT.signals_json([OLT.ModelResult(spec("D"), OLT.PhaseResult[], OLT.VALIDATE, "", [atEvent])]) + @test occursin("\"compared\":4,\"events\":2,\"outside\":0,", eventJson) + #= A counted error: where, and the two values there (a reference with rows every 0.05: compared there + too, and its steps too short to accept the error as a time shift). =# + local fine = OLT.ReferenceData(collect(0.0:0.05:1.0), Dict("x" => 2 .* collect(0.0:0.05:1.0))) + local off = OLT.compare_signal(ValuesOf(t -> 2t + (t == 0.75 ? 0.5 : 0.0)), fine, "x", 1.0; npoints = 5) + local offJson = OLT.signals_json([OLT.ModelResult(spec("E"), OLT.PhaseResult[], OLT.SIMULATE, "", [off])]) + @test !off.passed && occursin("\"worst_time\":0.75,\"worst_omjl\":2.0,\"worst_reference\":1.5,\"compared\":21,\"events\":0,\"outside\":1,", offJson) mktempdir() do dir @test !OLT.write_signals(joinpath(dir, "none.json"), [none]) && !isfile(joinpath(dir, "none.json")) @@ -57,6 +76,7 @@ end @test occursin("data-model=\"A."quoted"\"", page) && occursin(">signals 1/1", page) @test occursin("class=\"sig-link sig-has-fail\" href=\"#\" data-model=\"B\"", page) @test !occursin("data-model=\"C\"", page) && occursin("function toggleSignals", page) + @test occursin("function signalStats", page) #= The site: signals.json with each run, linked from its page, kept for the latest runs only. =# local site = joinpath(dir, "site")