完善通用求解器回归与前端交互

- 引入因果坐标内核、热流体恢复和递进长时回归\n- 完善正交连线、线桥、视图保持与结果曲线缩放\n- 补充依赖约束、CI、测试基线和北京时间更新日志
This commit is contained in:
lujingze committed 2026-08-18 06:42:07 +00:00
1 parent 143e8dd309
commit b435daecf2
65 files changed
+172271 -701

No files matched your search

@@ -0,0 +1,198 @@
{
"schemaVersion": 1,
"id": "test_mql_8-progressive-v2",
"description": "Primary generic-solver regression target for the renamed 0.01 s-grid authoritative inputs, with a short smoke gate before staged extension.",
"source": {
"path": "tests/data/test-mql-8.xml",
"sha256": "170463d65d074da01f0f9e9dab730b3815c94c1cc80b5190ec2e3fe623da74d3",
"bytes": 101013,
"xmlIsAuthoritative": true,
"companionProject": {
"path": "tests/data/test-mql-8.json",
"sha256": "258c50ee4850baa72fb7c2cc24536d0a631fc6a7f1fa6cedb7b6eea7c857cbaa",
"bytes": 264675,
"executionInput": false
},
"simulation": {
"tStart": 0.0,
"tStop": 0.2,
"sampleStep": 0.01,
"maxStep": 0.01,
"method": "BDF"
}
},
"historicalReports": [
{
"path": "tests/baselines/simulation/test_mql_8/runs/2026-08-17-solver-only-v1.json",
"sha256": "ed0e8514c5fc083af6d403270eb0617fc20672ebb96460c355757d28d7059d0f",
"sourceXmlSha256": "42e2d6277d39bd5990cb322243bec8d71c40ff0696b440db3c8623f2ab15c2ee",
"status": "historicalOnly",
"compatibleWithCurrentSource": false,
"reason": "This report used the former spaced filename and 0.002 s sampleStep/maxStep. It is retained only as historical performance evidence and must never seed a v2 golden."
},
{
"path": "tests/baselines/simulation/test_mql_8/runs/2026-08-17-extension-decision.json",
"sha256": "d067bab69418ec21a11481f4a2c1fcb1ba1fc9528faeeb163ea5f466c2e2987f",
"sourceXmlSha256": "42e2d6277d39bd5990cb322243bec8d71c40ff0696b440db3c8623f2ab15c2ee",
"status": "historicalOnly",
"compatibleWithCurrentSource": false,
"reason": "This deferred-stage decision was calculated from the former 0.002 s source report and is not a runtime prediction for the renamed v2 source."
}
],
"structure": {
"componentCount": 152,
"connectionCount": 174,
"dynamicComponentCount": 54,
"stateCount": 124,
"resultVariableCount": 1716,
"pressureFlowUnknownCount": 760,
"pressureFlowEquationCount": 760,
"pressureFlowIsSquare": true,
"logicalEffortCoordinateCount": 112,
"eliminatedEffortAliasCount": 320,
"canonicalCoordinateCount": 440,
"compatibilityScatterCount": 760,
"jacobianNonzeroCount": 3296,
"jacobianColorGroupCount": 52,
"hasMechanicalStateEvents": true
},
"sequence": [
"0.01s-smoke",
"0.2s",
"1s",
"5s",
"10s"
],
"lanes": {
"solver-only": {
"description": "Algorithm iteration and staged-extension lane: same XML and method, with an in-memory 0.02 s output grid and 0.05 s maximum step; signal breakpoints remain explicit solver segments.",
"samplingMode": "fixed",
"sampleStep": 0.02,
"maxStepMode": "fixed",
"maxStep": 0.05,
"instrumentationMode": "standard",
"productionEquivalentOutput": false
},
"production": {
"description": "Acceptance lane: changes only tStop and preserves the source 0.01 s output and internal-step grid.",
"samplingMode": "source",
"maxStepMode": "source",
"instrumentationMode": "standard",
"productionEquivalentOutput": true
}
},
"variants": {
"0.01s-smoke": {
"stopTime": 0.01,
"softTimeoutSeconds": 60.0,
"hardTimeoutSeconds": 90.0,
"useForRuntimePrediction": false,
"checkpointTimes": [
0.0,
0.01
],
"expectedSignalEventTimes": []
},
"0.2s": {
"stopTime": 0.2,
"softTimeoutSeconds": 300.0,
"hardTimeoutSeconds": 360.0,
"checkpointTimes": [
0.0,
0.04,
0.2
],
"expectedSignalEventTimes": [
0.04
],
"expectedMechanicalTransitionTimes": [],
"goldens": {
"production": {
"path": "tests/baselines/simulation/test_mql_8/goldens/production-0.2s-v1.json",
"sha256": "99fa7b3631a89f59f86551847175f3701a1567d8d0bd10d87545734f17515d72"
}
}
},
"1s": {
"stopTime": 1.0,
"softTimeoutSeconds": 1200.0,
"hardTimeoutSeconds": 1260.0,
"checkpointTimes": [
0.0,
0.04,
0.8,
1.0
],
"expectedSignalEventTimes": [
0.04,
0.8
]
},
"5s": {
"stopTime": 5.0,
"softTimeoutSeconds": 2700.0,
"hardTimeoutSeconds": 2760.0,
"checkpointTimes": [
0.0,
0.04,
0.8,
1.0,
2.0,
5.0
],
"expectedSignalEventTimes": [
0.04,
0.8
]
},
"10s": {
"stopTime": 10.0,
"softTimeoutSeconds": 5400.0,
"hardTimeoutSeconds": 5460.0,
"checkpointTimes": [
0.0,
0.04,
0.8,
1.0,
2.0,
5.0,
10.0
],
"expectedSignalEventTimes": [
0.04,
0.8
]
}
},
"correctness": {
"status": "partial",
"maximumScaledResidual": 1e-7,
"requireFiniteSeries": true,
"requireStrictlyIncreasingTimes": true,
"physicalProjectionCategories": [
"state"
],
"stateRelativeTolerance": 0.0002,
"stateAbsoluteTolerance": 1e-9,
"checkpointTimeAbsoluteToleranceSeconds": 1e-12,
"eventTimeAbsoluteToleranceSeconds": 0.00002,
"signalEventTimeAbsoluteToleranceSeconds": 1e-12,
"mechanicalTransitionTimesAvailable": true,
"note": "Physical state checkpoints/events and the value-free output-shape contract are separate. The production 0.2 s variant has an approved state golden; longer horizons and critical algebraic projections remain pending."
},
"execution": {
"causalExecutorV2Default": true,
"environment": {
"SIMULATION_CAUSAL_EXECUTOR_V2": "1",
"SIMULATION_CAUSAL_COORDINATE_KERNEL": "1",
"SIMULATION_CAUSAL_FAST_PATH": "1",
"SIMULATION_ODE_JACOBIAN_MODE": "scipy",
"SIMULATIONAPP_PROPERTY_CACHE": "on"
},
"predictionSafetyFactor": 1.5,
"terminationGraceSeconds": 10.0,
"deferAfterFailureOrTimeout": true,
"deferWhenPredictedWallExceedsSoftTimeout": true,
"longTestEnvironmentVariable": "RUN_TEST_MQL_8_LONG_REGRESSION"
}
}