- 按文件哈希区分当前八路工程和历史 Amesim 基准,修复测试与清单中的旧路径。 - 四路审计从 JSON 按需生成 XML,八路新增只核对模式,并显式使用 UTF-8 与 LF。 - 将缺失高刚度夹具的测试替换为当前八路完整 BDF 运行,明确未恢复原 RK45 专项覆盖。 - 更新前端大型工程测试、历史活动回放入口、数据说明、现行规范和相关报告。 验证:全量后台 374 项通过、1 项条件跳过;前端 11 项通过、历史独立服务用例 1 项跳过;四路八路 AME 审计通过。 环境、缓存和运行产物保持忽略;本次未实施工程 JSON 字段精简。
274 lines
9.8 KiB
JSON
274 lines
9.8 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"id": "test_mql_8-progressive-v3",
|
|
"description": "Primary generic-solver regression target for the restored eight-branch inputs aligned to the test_mql AMESim archive, with a short smoke gate before staged extension.",
|
|
"source": {
|
|
"path": "tests/baselines/simulation/test_mql_8/sources/test-mql-8.xml",
|
|
"sha256": "0a2d9331df9eb5974daec25a61c1238ba32b1742d933ffc8b16ce316c5627b0b",
|
|
"bytes": 104110,
|
|
"xmlIsAuthoritative": true,
|
|
"referenceArchive": {
|
|
"path": "tests/data/AmesimModels/test_mql.ame",
|
|
"sha256": "cbc3aadd4569a49b3a63e5d66d4143ec16126c0f950df73fb637e07673c20fbb",
|
|
"bytes": 21708800,
|
|
"role": "authoritativePhysicalBaseline",
|
|
"resultStartTime": 0.0,
|
|
"resultStopTime": 10.0,
|
|
"resultSampleStep": 0.01,
|
|
"resultPointCount": 1002
|
|
},
|
|
"companionProject": {
|
|
"path": "tests/baselines/simulation/test_mql_8/sources/test-mql-8.json",
|
|
"sha256": "b44bf540ccd1c293fe2af2b9b9052b540abf83961ad955a0f6a4ab40fbe0bb18",
|
|
"bytes": 272592,
|
|
"executionInput": false
|
|
},
|
|
"simulation": {
|
|
"tStart": 0.0,
|
|
"tStop": 10.0,
|
|
"sampleStep": 0.01,
|
|
"maxStep": 0.001,
|
|
"method": "BDF"
|
|
}
|
|
},
|
|
"acceptanceEvidence": {
|
|
"production0.2ApprovedReplay": {
|
|
"path": "tests/baselines/simulation/test_mql_8/runs/2026-08-18-production-opt00-approved-replay-0.2.json",
|
|
"sha256": "2e27cd54026a2612df88d1903431f3968e03599b2ca6eb83d9b98638cc051502",
|
|
"bytes": 398198,
|
|
"workerWallSeconds": 159.60707960650325,
|
|
"orchestrationWallSeconds": 160.47319143638015,
|
|
"acceptancePassed": true,
|
|
"regressionGoldenPassed": true,
|
|
"physicalStateV21GoldenPassed": true
|
|
},
|
|
"extensionDecision": {
|
|
"path": "tests/baselines/simulation/test_mql_8/runs/2026-08-18-production-opt00-extension-decision.json",
|
|
"sha256": "7d34aea736863788d9efa72c46910afffd543ddc46eacdf1c6aa9caeab202022",
|
|
"bytes": 1313,
|
|
"oneSecondOutcome": "eligible",
|
|
"extensionWasNotStarted": true
|
|
}
|
|
},
|
|
"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."
|
|
},
|
|
{
|
|
"path": "tests/baselines/simulation/test_mql_8/runs/2026-08-17-production-v2-0.2.json",
|
|
"sha256": "93baac975413703bebe940308ccd0de5dbd753f7c1c4fe015907315f112618a5",
|
|
"sourceXmlSha256": "170463d65d074da01f0f9e9dab730b3815c94c1cc80b5190ec2e3fe623da74d3",
|
|
"status": "historicalOnly",
|
|
"compatibleWithCurrentSource": false,
|
|
"reason": "This accepted 0.2 s report predates the four restored PNL0001 branches and the AMESim-aligned 10 s simulation settings; it remains historical evidence only."
|
|
},
|
|
{
|
|
"path": "tests/baselines/simulation/test_mql_8/runs/2026-08-17-production-v2-extension-decision.json",
|
|
"sha256": "c2dd8acfaae71e9c5f2eaef35d529dd1ce1d420b48703faff3d111678496b671",
|
|
"sourceXmlSha256": "170463d65d074da01f0f9e9dab730b3815c94c1cc80b5190ec2e3fe623da74d3",
|
|
"status": "historicalOnly",
|
|
"compatibleWithCurrentSource": false,
|
|
"reason": "This runtime extension decision was derived from the superseded v2 source and must not control the AMESim-aligned v3 source."
|
|
}
|
|
],
|
|
"historicalGoldens": [
|
|
{
|
|
"path": "tests/baselines/simulation/test_mql_8/goldens/production-0.2s-v1.json",
|
|
"sha256": "99fa7b3631a89f59f86551847175f3701a1567d8d0bd10d87545734f17515d72",
|
|
"sourceXmlSha256": "170463d65d074da01f0f9e9dab730b3815c94c1cc80b5190ec2e3fe623da74d3",
|
|
"status": "historicalOnly",
|
|
"compatibleWithCurrentSource": false,
|
|
"reason": "This Python-state golden predates the four restored PNL0001 branches and the AMESim-aligned simulation settings; it must not approve the current v3 source."
|
|
}
|
|
],
|
|
"structure": {
|
|
"componentCount": 156,
|
|
"connectionCount": 178,
|
|
"dynamicComponentCount": 58,
|
|
"stateCount": 132,
|
|
"resultVariableCount": 1784,
|
|
"pressureFlowUnknownCount": 776,
|
|
"pressureFlowEquationCount": 776,
|
|
"pressureFlowIsSquare": true,
|
|
"logicalEffortCoordinateCount": 116,
|
|
"eliminatedEffortAliasCount": 324,
|
|
"canonicalCoordinateCount": 452,
|
|
"compatibilityScatterCount": 776,
|
|
"jacobianNonzeroCount": 3280,
|
|
"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 AMESim-aligned source 0.01 s output grid and 0.001 s internal-step cap.",
|
|
"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-v2.json",
|
|
"sha256": "7ca8e859d7d2889d6608726eba0faf3441f0f2ad579799c2abdfe571fd49fd0e",
|
|
"role": "pythonDeterminismRegression",
|
|
"affectsPhysicalCorrectness": false
|
|
}
|
|
},
|
|
"physicalStateV21Goldens": {
|
|
"production": {
|
|
"path": "tests/baselines/simulation/test_mql_8/goldens/production-0.2s-physical-state-v2.1.json",
|
|
"sha256": "6f0752afe8c1f7690599c2709a76d9a1342f99f726c6c8593321dc6267e175b2",
|
|
"role": "amesimPhysicalBaseline",
|
|
"compareOnEveryRun": true
|
|
}
|
|
}
|
|
},
|
|
"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": "complete",
|
|
"maximumScaledResidual": 1e-07,
|
|
"requireFiniteSeries": true,
|
|
"requireStrictlyIncreasingTimes": true,
|
|
"physicalProjectionCategories": [
|
|
"state",
|
|
"pressure",
|
|
"massFlow",
|
|
"conservation",
|
|
"discreteMode"
|
|
],
|
|
"stateRelativeTolerance": 0.0002,
|
|
"stateAbsoluteTolerance": 1e-09,
|
|
"checkpointTimeAbsoluteToleranceSeconds": 1e-12,
|
|
"eventTimeAbsoluteToleranceSeconds": 2e-05,
|
|
"signalEventTimeAbsoluteToleranceSeconds": 1e-12,
|
|
"mechanicalTransitionTimesAvailable": true,
|
|
"physicalBaselineAuthority": "amesim",
|
|
"compareAmesimOnEveryRun": true,
|
|
"pythonGoldenRole": "determinismDiagnosticOnly",
|
|
"note": "AMESim simulation results are the sole physical baseline and every production run reports current-to-AMESim relative errors. The exact Python-state golden detects determinism and implementation drift only; it cannot approve physical correctness. Longer progressive horizons remain independently staged work."
|
|
},
|
|
"execution": {
|
|
"causalExecutorV2Default": true,
|
|
"environment": {
|
|
"SIMULATION_CAUSAL_EXECUTOR_V2": "1",
|
|
"SIMULATION_CAUSAL_COORDINATE_KERNEL": "1",
|
|
"SIMULATION_CAUSAL_DIRECT_SUM_ASSIGNMENTS": "1",
|
|
"SIMULATION_CAUSAL_DIRECT_EQUATION_READERS": "1",
|
|
"SIMULATION_CAUSAL_FAST_PATH": "1",
|
|
"SIMULATION_MECHANICAL_ATOL_MODE": "legacy",
|
|
"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"
|
|
}
|
|
}
|