存档求解器回归基线与当前改动

纳管 AMESim 对齐基线、发布锁、回归测试及当前物理门禁调整。

更新日志仅记录已完成成果,并注明当前 HEAD 尚待真实 production 复跑与远端 workflow 验证。
This commit is contained in:
lujingze committed 2026-08-18 15:20:42 +00:00
1 parent 53f8601fec
commit a8c733883c
32 files changed
+47241 -108

No files matched your search

@@ -0,0 +1,952 @@
{
"schemaVersion": 1,
"id": "test_mql_8-production-0.2s-physical-state-v2.1",
"contractId": "physical-state-v2.1",
"caseId": "0.2s",
"lane": "production",
"sourceXmlSha256": "0a2d9331df9eb5974daec25a61c1238ba32b1742d933ffc8b16ce316c5627b0b",
"approval": {
"status": "candidate",
"generatedAt": "2026-08-18T07:35:03.491746+00:00",
"warning": "The correctness gate rejects this file until explicit approval."
},
"provenance": {
"localSourceReport": {
"path": "tests/baselines/simulation/test_mql_8/runs/2026-08-18-production-physical-state-v2.1-0.2.json",
"bytes": 380076,
"sha256": "c647fc7dab6c5cdaea188789dd8e0192d9caf374873afa1f5f5db0da9d69c49b",
"generatedAt": "2026-08-18T07:34:00.055573+00:00"
},
"amesim": {
"archivePath": "AmesimModels/test_mql.ame",
"archiveBytes": 21708800,
"archiveSha256": "cbc3aadd4569a49b3a63e5d66d4143ec16126c0f950df73fb637e07673c20fbb",
"members": [
{
"name": "test_mql_.var",
"bytes": 95371,
"sha256": "175010af62d254b34b1f876ff652feb903fe2ce88bee80d4dc0ef1d31f04067b"
},
{
"name": "test_mql_.results",
"bytes": 8968576,
"sha256": "434a2cdff1322565957934354154425868fa03737558636927cb0f3ec51f1760"
}
],
"referencePressurePa": 101300.0,
"role": "external calibration reference; not an equality claim"
},
"amesimStoredMassDataPaths": [
"mgas1@pn_c1_8",
"mgas1@pn_c1_9",
"mgas1@pn_c1_10",
"mgas1@pn_c1_11",
"mgas1@pn_c1_12",
"mgas1@pn_c1_13",
"mgas1@pn_c1_14",
"mgas1@pn_c1_15",
"mgas@pn_general_chamber",
"mgas@pn_general_chamber_2",
"mgas@pn_general_chamber_4",
"mgas@pn_general_chamber_5",
"mgas@pneumatic_65",
"mgas@pneumatic_66",
"mgas@pneumatic_68",
"mgas@pneumatic_69",
"mgas@pneumatic_70",
"mgas@pneumatic_71",
"mgas@pneumatic_72",
"mgas@pneumatic_73",
"mgas@pneumatic_74",
"mgas@pneumatic_75",
"mgas@pneumatic_76",
"mgas@pneumatic_77",
"mgas@pneumatic_78",
"mgas@pneumatic_79",
"mgas@pneumatic_80",
"mgas@pneumatic_81",
"mgas@pneumatic_82",
"mgas@pneumatic_83",
"mgas@pneumatic_84",
"mgas@pneumatic_85",
"mgas@pneumatic_86",
"mgas@pneumatic_87",
"mgas@pneumatic_88",
"mgas@pneumatic_91",
"mgas@pneumatic_92",
"mgas@pneumatic_93",
"mgas@pneumatic_94",
"mgas@pneumatic_95",
"mgas@pneumatic_96",
"mgas@pneumatic_97",
"mgas@pneumatic_98",
"mgas@pneumatic_99",
"mgas@pneumatic_101",
"mgas@pneumatic_102",
"mgas@pneumatic_103",
"mgas@pneumatic_104"
],
"comparisonPolicy": "Local values are the regression target; transformed AMESim values are retained visibly as an external calibration reference."
},
"layout": {
"projectionKeys": [
"pressure.pnch012_8.absolute",
"pressure.pnl0001_20.absolute",
"massFlow.pnl0001_20.port_1.intoComponent",
"massFlow.pnvo001_5.port_2.intoComponent",
"conservation.p4node2_8.massBalance",
"conservation.pnvo001_5.massBalance",
"conservation.pnl0001_20_pnch012_8.connectionMassBalance",
"conservation.totalStoredGasMass",
"discrete.pnvo001_5.openMode",
"discrete.mecmas21_9.endstopMode",
"discrete.mecmas21_10.endstopMode"
],
"projections": [
{
"key": "pressure.pnch012_8.absolute",
"category": "pressure",
"unit": "Pa",
"python": {
"sourceKeys": [
"amesim_pnch012_8.p"
],
"formula": "identity"
},
"amesim": {
"dataPaths": [
"press@pn_c1_8"
],
"sourceUnit": "Pa (gauge)",
"targetUnit": "Pa (absolute)",
"formula": "target = source + 101300",
"scale": 1.0,
"offset": 101300.0
},
"tolerance": {
"relative": 0.0002,
"absolute": 0.001
}
},
{
"key": "pressure.pnl0001_20.absolute",
"category": "pressure",
"unit": "Pa",
"python": {
"sourceKeys": [
"amesim_pnl0001_20.p"
],
"formula": "identity"
},
"amesim": {
"dataPaths": [
"p2@pneumatic_69"
],
"sourceUnit": "Pa (gauge)",
"targetUnit": "Pa (absolute)",
"formula": "target = source + 101300",
"scale": 1.0,
"offset": 101300.0
},
"tolerance": {
"relative": 0.0002,
"absolute": 0.001
}
},
{
"key": "massFlow.pnl0001_20.port_1.intoComponent",
"category": "massFlow",
"unit": "kg/s",
"python": {
"sourceKeys": [
"amesim_pnl0001_20.port_1.m_flow"
],
"formula": "identity"
},
"amesim": {
"dataPaths": [
"dm1@pneumatic_69"
],
"sourceUnit": "g/s (AMESim component orientation)",
"targetUnit": "kg/s (positive into generic component)",
"formula": "target = -source * 1e-3",
"scale": -0.001,
"offset": 0.0
},
"tolerance": {
"relative": 0.0002,
"absolute": 1e-09
}
},
{
"key": "massFlow.pnvo001_5.port_2.intoComponent",
"category": "massFlow",
"unit": "kg/s",
"python": {
"sourceKeys": [
"amesim_pnvo001_5.port_2.m_flow"
],
"formula": "identity"
},
"amesim": {
"dataPaths": [
"dm2@pn_morifice_1"
],
"sourceUnit": "g/s (AMESim component orientation)",
"targetUnit": "kg/s (positive into generic component)",
"formula": "target = -source * 1e-3",
"scale": -0.001,
"offset": 0.0
},
"tolerance": {
"relative": 0.0002,
"absolute": 1e-09
}
},
{
"key": "conservation.p4node2_8.massBalance",
"category": "conservation",
"unit": "kg/s",
"python": {
"sourceKeys": [
"amesim_p4node2_8.port_1.m_flow",
"amesim_p4node2_8.port_2.m_flow",
"amesim_p4node2_8.port_3.m_flow",
"amesim_p4node2_8.port_4.m_flow"
],
"formula": "sum"
},
"amesim": {
"dataPaths": [],
"note": "AMESim archive has no complete saved four-port tuple."
},
"tolerance": {
"relative": 0.0,
"absolute": 1e-09
}
},
{
"key": "conservation.pnvo001_5.massBalance",
"category": "conservation",
"unit": "kg/s",
"python": {
"sourceKeys": [
"amesim_pnvo001_5.port_2.m_flow",
"amesim_pnvo001_5.port_3.m_flow"
],
"formula": "sum"
},
"amesim": {
"dataPaths": [
"dm2@pn_morifice_1",
"dm3@pn_morifice_1"
],
"sourceUnit": "g/s",
"targetUnit": "kg/s",
"formula": "target = -(source1 + source2) * 1e-3"
},
"tolerance": {
"relative": 0.0,
"absolute": 1e-09
}
},
{
"key": "conservation.pnl0001_20_pnch012_8.connectionMassBalance",
"category": "conservation",
"unit": "kg/s",
"python": {
"sourceKeys": [
"amesim_pnl0001_20.port_1.m_flow",
"amesim_pnch012_8.port_1.m_flow"
],
"formula": "sum"
},
"amesim": {
"dataPaths": [],
"note": "PNCH012 port flow is not saved; local connector contract is authoritative."
},
"tolerance": {
"relative": 0.0,
"absolute": 1e-09
}
},
{
"key": "conservation.totalStoredGasMass",
"category": "conservation",
"unit": "kg",
"python": {
"sourceKeys": [
"amesim_pnch012_10.m",
"amesim_pnch012_11.m",
"amesim_pnch012_12.m",
"amesim_pnch012_13.m",
"amesim_pnch012_14.m",
"amesim_pnch012_15.m",
"amesim_pnch012_8.m",
"amesim_pnch012_9.m",
"amesim_pnch023_1.m",
"amesim_pnch023_2.m",
"amesim_pnch023_3.m",
"amesim_pnch023_4.m",
"amesim_pnl0001_1.m",
"amesim_pnl0001_10.m",
"amesim_pnl0001_11.m",
"amesim_pnl0001_13.m",
"amesim_pnl0001_14.m",
"amesim_pnl0001_15.m",
"amesim_pnl0001_16.m",
"amesim_pnl0001_17.m",
"amesim_pnl0001_18.m",
"amesim_pnl0001_19.m",
"amesim_pnl0001_2.m",
"amesim_pnl0001_20.m",
"amesim_pnl0001_21.m",
"amesim_pnl0001_25.m",
"amesim_pnl0001_26.m",
"amesim_pnl0001_27.m",
"amesim_pnl0001_4.m",
"amesim_pnl0001_5.m",
"amesim_pnl0001_7.m",
"amesim_pnl0001_9.m",
"amesim_pnl0002_1.m",
"amesim_pnl0002_2.m",
"amesim_pnl0002_3.m",
"amesim_pnl0002_4.m",
"amesim_pnl0002_5.m",
"amesim_pnl0002_6.m",
"amesim_pnl0002_7.m",
"amesim_pnl0002_8.m",
"amesim_pnl0003_1.m1",
"amesim_pnl0003_1.m2",
"amesim_pnl0003_2.m1",
"amesim_pnl0003_2.m2",
"amesim_pnl0003_3.m1",
"amesim_pnl0003_3.m2",
"amesim_pnl0003_4.m1",
"amesim_pnl0003_4.m2",
"amesim_pnl0003_5.m1",
"amesim_pnl0003_5.m2",
"amesim_pnl0003_6.m1",
"amesim_pnl0003_6.m2",
"amesim_pnl0003_7.m1",
"amesim_pnl0003_7.m2",
"amesim_pnl0003_8.m1",
"amesim_pnl0003_8.m2"
],
"formula": "sum"
},
"amesim": {
"dataPathSelection": "units == 'g' and signal starts with 'mgas'",
"sourceUnit": "g",
"targetUnit": "kg",
"formula": "target = sum(sources) * 1e-3"
},
"tolerance": {
"relative": 0.0002,
"absolute": 1e-09
}
},
{
"key": "discrete.pnvo001_5.openMode",
"category": "discreteMode",
"unit": "1",
"python": {
"sourceKeys": [
"amesim_pnvo001_5.xv"
],
"formula": "1 if opening >= 0.5 else 0"
},
"amesim": {
"dataPaths": [
"xv@pn_morifice_1"
],
"sourceUnit": "1",
"targetUnit": "mode code {0,1}",
"formula": "1 if source >= 0.5 else 0"
},
"tolerance": {
"relative": 0.0,
"absolute": 0.0
}
},
{
"key": "discrete.mecmas21_9.endstopMode",
"category": "discreteMode",
"unit": "1",
"python": {
"sourceKeys": [
"amesim_mecmas21_9.x",
"amesim_mecmas21_9.v",
"amesim_mecmas21_9.port_1.f",
"amesim_mecmas21_9.port_2.f"
],
"formula": "-1 lower, 0 free, +1 upper using boundary and net-force direction"
},
"amesim": {
"dataPaths": [
"x1@mass_friction_endstops_19",
"v1@mass_friction_endstops_19"
],
"lowerBound": -0.72,
"upperBound": 0.0,
"note": "No saved AMESim endstop code; reference is boundary occupancy."
},
"tolerance": {
"relative": 0.0,
"absolute": 0.0
}
},
{
"key": "discrete.mecmas21_10.endstopMode",
"category": "discreteMode",
"unit": "1",
"python": {
"sourceKeys": [
"amesim_mecmas21_10.x",
"amesim_mecmas21_10.v",
"amesim_mecmas21_10.port_1.f",
"amesim_mecmas21_10.port_2.f"
],
"formula": "-1 lower, 0 free, +1 upper using boundary and net-force direction"
},
"amesim": {
"dataPaths": [
"x1@mass_friction_endstops_18",
"v1@mass_friction_endstops_18"
],
"lowerBound": 0.0,
"upperBound": 0.37,
"note": "No saved AMESim endstop code; reference is boundary occupancy."
},
"tolerance": {
"relative": 0.0,
"absolute": 0.0
}
}
],
"projectionLayoutSha256": "55cc8f71ea72fd46f71f1ede2587aeb9f6d590bde8e97e881648f88a4a90dca6"
},
"checkpoints": [
{
"requestedTime": 0.0,
"values": [
100000.0,
100000.0,
0.0,
0.0,
0.0,
0.0,
0.0,
5.5668930151375235,
0.0,
1.0,
-1.0
],
"amesimReferenceValues": [
100000.00000000001,
100000.00000000001,
-0.0,
-0.0,
null,
-0.0,
null,
5.5668930151375235,
0.0,
1.0,
-1.0
]
},
{
"requestedTime": 0.04,
"values": [
100153.57210434608,
100152.45747547514,
6.682314111565264e-06,
-0.4978238221497115,
0.0,
0.0,
0.0,
5.5668930151375235,
1.0,
1.0,
-1.0
],
"amesimReferenceValues": [
100153.61882579065,
100152.49205385521,
6.672550142634319e-06,
-0.4978238226601424,
null,
-0.0,
null,
5.566893015142308,
1.0,
1.0,
-1.0
]
},
{
"requestedTime": 0.2,
"values": [
3620589.728099082,
3756379.1344475006,
-0.3723610392591412,
-0.3962730176377355,
1.8214596497756474e-17,
0.0,
0.0,
5.566893015137554,
1.0,
1.0,
-1.0
],
"amesimReferenceValues": [
3625053.2009413484,
3760735.7825351665,
-0.3728806429214546,
-0.3961933197727504,
null,
-0.0,
null,
5.566892994134813,
1.0,
1.0,
-1.0
]
}
],
"amesimAlignmentAtGeneration": {
"passed": true,
"issues": [],
"comparedValueCount": 25,
"excludedValueCount": 2,
"maxToleranceRatio": 0.6967416724836332,
"maxToleranceRatioUnbounded": false,
"worstValue": {
"requestedTime": 0.2,
"key": "massFlow.pnl0001_20.port_1.intoComponent",
"category": "massFlow",
"python": -0.3723610392591412,
"amesim": -0.3728806429214546,
"absoluteError": 0.0005196036623134059,
"relativeError": 0.0013934852135053246,
"allowedError": 0.0007457622858429093,
"toleranceRatio": 0.6967416724836332,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
"metrics": [
{
"requestedTime": 0.0,
"key": "pressure.pnch012_8.absolute",
"category": "pressure",
"python": 100000.0,
"amesim": 100000.00000000001,
"absoluteError": 1.4551915228366852e-11,
"relativeError": 1.455191522836685e-16,
"allowedError": 200.00100000000003,
"toleranceRatio": 7.275921234577252e-14,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.0,
"key": "pressure.pnl0001_20.absolute",
"category": "pressure",
"python": 100000.0,
"amesim": 100000.00000000001,
"absoluteError": 1.4551915228366852e-11,
"relativeError": 1.455191522836685e-16,
"allowedError": 200.00100000000003,
"toleranceRatio": 7.275921234577252e-14,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.0,
"key": "massFlow.pnl0001_20.port_1.intoComponent",
"category": "massFlow",
"python": 0.0,
"amesim": -0.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 1e-09,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.0,
"key": "massFlow.pnvo001_5.port_2.intoComponent",
"category": "massFlow",
"python": 0.0,
"amesim": -0.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 1e-09,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.0,
"key": "conservation.pnvo001_5.massBalance",
"category": "conservation",
"python": 0.0,
"amesim": -0.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 1e-09,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.0,
"key": "conservation.totalStoredGasMass",
"category": "conservation",
"python": 5.5668930151375235,
"amesim": 5.5668930151375235,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.011133787030275047,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.0,
"key": "discrete.pnvo001_5.openMode",
"category": "discreteMode",
"python": 0.0,
"amesim": 0.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.0,
"key": "discrete.mecmas21_9.endstopMode",
"category": "discreteMode",
"python": 1.0,
"amesim": 1.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.0,
"key": "discrete.mecmas21_10.endstopMode",
"category": "discreteMode",
"python": -1.0,
"amesim": -1.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.04,
"key": "pressure.pnch012_8.absolute",
"category": "pressure",
"python": 100153.57210434608,
"amesim": 100153.61882579065,
"absoluteError": 0.04672144456708338,
"relativeError": 4.6649781720170954e-07,
"allowedError": 200.3082376515813,
"toleranceRatio": 0.00023324774415094828,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.04,
"key": "pressure.pnl0001_20.absolute",
"category": "pressure",
"python": 100152.45747547514,
"amesim": 100152.49205385521,
"absoluteError": 0.03457838007307146,
"relativeError": 3.4525731076644157e-07,
"allowedError": 200.30598410771043,
"toleranceRatio": 0.00017262779355846724,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.04,
"key": "massFlow.pnl0001_20.port_1.intoComponent",
"category": "massFlow",
"python": 6.682314111565264e-06,
"amesim": 6.672550142634319e-06,
"absoluteError": 9.763968930944316e-09,
"relativeError": 0.0014633039426046946,
"allowedError": 1.4345100285268639e-08,
"toleranceRatio": 0.6806483563569921,
"unboundedToleranceRatio": false,
"evaluated": false,
"passed": null,
"exclusionReason": "signalDiscontinuityLeftRightLimitSemanticsNotComparableAt0.04s"
},
{
"requestedTime": 0.04,
"key": "massFlow.pnvo001_5.port_2.intoComponent",
"category": "massFlow",
"python": -0.4978238221497115,
"amesim": -0.4978238226601424,
"absoluteError": 5.104309197534462e-10,
"relativeError": 1.0253244150228433e-09,
"allowedError": 0.0009956486453202849,
"toleranceRatio": 5.126616926086898e-07,
"unboundedToleranceRatio": false,
"evaluated": false,
"passed": null,
"exclusionReason": "signalDiscontinuityLeftRightLimitSemanticsNotComparableAt0.04s"
},
{
"requestedTime": 0.04,
"key": "conservation.pnvo001_5.massBalance",
"category": "conservation",
"python": 0.0,
"amesim": -0.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 1e-09,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.04,
"key": "conservation.totalStoredGasMass",
"category": "conservation",
"python": 5.5668930151375235,
"amesim": 5.566893015142308,
"absoluteError": 4.784617146924575e-12,
"relativeError": 8.594771147766101e-13,
"allowedError": 0.011133787030284616,
"toleranceRatio": 4.2973851879060635e-10,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.04,
"key": "discrete.pnvo001_5.openMode",
"category": "discreteMode",
"python": 1.0,
"amesim": 1.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.04,
"key": "discrete.mecmas21_9.endstopMode",
"category": "discreteMode",
"python": 1.0,
"amesim": 1.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.04,
"key": "discrete.mecmas21_10.endstopMode",
"category": "discreteMode",
"python": -1.0,
"amesim": -1.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "pressure.pnch012_8.absolute",
"category": "pressure",
"python": 3620589.728099082,
"amesim": 3625053.2009413484,
"absoluteError": 4463.4728422663175,
"relativeError": 0.0012312847825536048,
"allowedError": 7250.107401882698,
"toleranceRatio": 0.6156423063618685,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "pressure.pnl0001_20.absolute",
"category": "pressure",
"python": 3756379.1344475006,
"amesim": 3760735.7825351665,
"absoluteError": 4356.648087665904,
"relativeError": 0.0011584563073795695,
"allowedError": 7521.472565070333,
"toleranceRatio": 0.5792280766798443,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "massFlow.pnl0001_20.port_1.intoComponent",
"category": "massFlow",
"python": -0.3723610392591412,
"amesim": -0.3728806429214546,
"absoluteError": 0.0005196036623134059,
"relativeError": 0.0013934852135053246,
"allowedError": 0.0007457622858429093,
"toleranceRatio": 0.6967416724836332,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "massFlow.pnvo001_5.port_2.intoComponent",
"category": "massFlow",
"python": -0.3962730176377355,
"amesim": -0.3961933197727504,
"absoluteError": 7.969786498507325e-05,
"relativeError": 0.00020115903274388008,
"allowedError": 0.0007923876395455008,
"toleranceRatio": 0.10057938943972738,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "conservation.pnvo001_5.massBalance",
"category": "conservation",
"python": 0.0,
"amesim": -0.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 1e-09,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "conservation.totalStoredGasMass",
"category": "conservation",
"python": 5.566893015137554,
"amesim": 5.566892994134813,
"absoluteError": 2.1002740879794146e-08,
"relativeError": 3.7727940705744284e-09,
"allowedError": 0.011133786988269626,
"toleranceRatio": 1.8863968658572583e-06,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "discrete.pnvo001_5.openMode",
"category": "discreteMode",
"python": 1.0,
"amesim": 1.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "discrete.mecmas21_9.endstopMode",
"category": "discreteMode",
"python": 1.0,
"amesim": 1.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
},
{
"requestedTime": 0.2,
"key": "discrete.mecmas21_10.endstopMode",
"category": "discreteMode",
"python": -1.0,
"amesim": -1.0,
"absoluteError": 0.0,
"relativeError": 0.0,
"allowedError": 0.0,
"toleranceRatio": 0.0,
"unboundedToleranceRatio": false,
"evaluated": true,
"passed": true
}
],
"toleranceProfile": {
"id": "amesim-alignment-reviewed-v1",
"byCategory": {
"pressure": {
"relative": 0.002,
"absolute": 0.001
},
"massFlow": {
"relative": 0.002,
"absolute": 1e-09
},
"conservation": {
"relative": 0.002,
"absolute": 1e-09
},
"discreteMode": {
"relative": 0.0,
"absolute": 0.0
}
},
"basis": "0.2% relative envelope for AMESim pressure/flow/inventory alignment; conservation retains a 1e-9 absolute floor and discrete modes are exact.",
"exclusions": [
{
"requestedTime": 0.04,
"category": "massFlow",
"reason": "The Python and AMESim samples at the signal discontinuity may represent different left/right limits. Raw errors remain recorded."
}
]
},
"policy": "diagnostic external-reference comparison; local golden is the regression gate"
}
}