接入test_mql相邻P4远端主线

This commit is contained in:
huojiarong committed 2026-07-18 08:35:42 +00:00
1 parent 95ba5a5e81
commit 62c8aabeab
3 files changed
+524 -21

No files matched your search

+102 -8
View File
@@ -275,6 +275,23 @@ class TestMqlPn3P4NodeChamberSegmentTests(unittest.TestCase):
closure.components.p4_port1_remote_primary_chamber.name,
"pn_c1_10",
)
self.assertEqual(
closure.components.p4_port1_remote_port1_line.name,
"pneumatic_80",
)
self.assertEqual(closure.components.p4_port1_far_node.alias, "pnnode4_19")
self.assertEqual(
closure.components.p4_port1_far_primary_line.name,
"pneumatic_65",
)
self.assertEqual(
closure.components.p4_port1_far_primary_chamber.name,
"pn_c1_11",
)
self.assertEqual(
closure.components.p4_port1_remote_orifice.name,
"pn_morifice_10",
)
self.assertEqual(closure.components.p4_port3_line.name, "pneumatic_83")
self.assertEqual(closure.components.p4_port3_remote_node.alias, "pnnode4_16")
self.assertEqual(
@@ -285,8 +302,25 @@ class TestMqlPn3P4NodeChamberSegmentTests(unittest.TestCase):
closure.components.p4_port3_remote_primary_chamber.name,
"pn_c1_8",
)
self.assertEqual(len(closure.initial_state_vector()), 26)
self.assertEqual(len(rhs), 26)
self.assertEqual(
closure.components.p4_port3_remote_port3_line.name,
"pneumatic_95",
)
self.assertEqual(closure.components.p4_port3_far_node.alias, "pnnode4_22")
self.assertEqual(
closure.components.p4_port3_far_primary_line.name,
"pneumatic_74",
)
self.assertEqual(
closure.components.p4_port3_far_primary_chamber.name,
"pn_c1_15",
)
self.assertEqual(
closure.components.p4_port3_remote_orifice.name,
"pn_morifice_1",
)
self.assertEqual(len(closure.initial_state_vector()), 38)
self.assertEqual(len(rhs), 38)
self.assertAlmostEqual(
snapshot.p4_balance.pressure_pa,
snapshot.p4_primary_line.p,
@@ -320,6 +354,27 @@ class TestMqlPn3P4NodeChamberSegmentTests(unittest.TestCase):
closure.components.p4_port1_remote_node.alias,
neighborhood.port_1.remote_node_alias,
)
port1_remote_neighborhood = self.system.p4_node_neighborhood(
neighborhood.port_1.remote_node_alias
)
self.assertEqual(
closure.components.p4_port1_remote_port1_line.name,
port1_remote_neighborhood.port_1.line_alias,
)
self.assertEqual(
closure.components.p4_port1_far_node.alias,
port1_remote_neighborhood.port_1.remote_node_alias,
)
self.assertEqual(
closure.components.p4_port1_far_primary_line.name,
self.system._p4_primary_connection_for_node(
port1_remote_neighborhood.port_1.remote_node_alias
).line_alias,
)
self.assertEqual(
closure.components.p4_port1_remote_orifice.name,
port1_remote_neighborhood.port_4.orifice_alias,
)
self.assertEqual(
closure.components.p4_port3_line.name,
neighborhood.port_3.line_alias,
@@ -328,6 +383,27 @@ class TestMqlPn3P4NodeChamberSegmentTests(unittest.TestCase):
closure.components.p4_port3_remote_node.alias,
neighborhood.port_3.remote_node_alias,
)
port3_remote_neighborhood = self.system.p4_node_neighborhood(
neighborhood.port_3.remote_node_alias
)
self.assertEqual(
closure.components.p4_port3_remote_port3_line.name,
port3_remote_neighborhood.port_3.line_alias,
)
self.assertEqual(
closure.components.p4_port3_far_node.alias,
port3_remote_neighborhood.port_3.remote_node_alias,
)
self.assertEqual(
closure.components.p4_port3_far_primary_line.name,
self.system._p4_primary_connection_for_node(
port3_remote_neighborhood.port_3.remote_node_alias
).line_alias,
)
self.assertEqual(
closure.components.p4_port3_remote_orifice.name,
port3_remote_neighborhood.port_4.orifice_alias,
)
self.assertEqual(
closure.components.node_orifice.name,
neighborhood.port_4.orifice_alias,
@@ -367,27 +443,45 @@ class TestMqlPn3P4NodeChamberSegmentTests(unittest.TestCase):
)
self.assertAlmostEqual(
snapshot.p4_port1_remote_node_to_primary_line_flow
+ snapshot.p4_port1_remote_node_to_line_flow,
+ snapshot.p4_port1_remote_node_to_line_flow
+ snapshot.p4_port1_remote_to_port1_line_flow
- snapshot.p4_port1_remote_orifice_to_node_flow,
0.0,
delta=1.0e-12,
)
self.assertAlmostEqual(
snapshot.p4_port1_far_node_to_primary_line_flow
+ snapshot.p4_port1_far_node_to_line_flow,
0.0,
delta=1.0e-12,
)
self.assertAlmostEqual(
snapshot.p4_port3_remote_node_to_primary_line_flow
+ snapshot.p4_port3_remote_node_to_line_flow,
+ snapshot.p4_port3_remote_node_to_line_flow
+ snapshot.p4_port3_remote_to_port3_line_flow
- snapshot.p4_port3_remote_orifice_to_node_flow,
0.0,
delta=1.0e-12,
)
mass_derivative_sum = sum(rhs[index] for index in range(0, 26, 2))
self.assertAlmostEqual(
snapshot.p4_port3_far_node_to_primary_line_flow
+ snapshot.p4_port3_far_node_to_line_flow,
0.0,
delta=1.0e-12,
)
mass_derivative_sum = sum(rhs[index] for index in range(0, 38, 2))
self.assertAlmostEqual(
mass_derivative_sum,
(
snapshot.inlet_node_to_line_flow
- snapshot.node_to_resistance_flow
+ snapshot.p4_port1_remote_orifice_to_node_flow
+ snapshot.p4_port3_remote_orifice_to_node_flow
),
delta=1.0e-12,
)
def test_simulates_twenty_six_state_pn3_p4_node_chamber_segment(self) -> None:
def test_simulates_thirty_eight_state_pn3_p4_node_chamber_segment(self) -> None:
solution = self.system.simulate_pn3_p4_node_chamber_segment_from_spec(
self.spec,
inlet_node_pressure_pa=15.31e6,
@@ -402,8 +496,8 @@ class TestMqlPn3P4NodeChamberSegmentTests(unittest.TestCase):
self.assertTrue(solution.success)
self.assertEqual(len(solution.t), 3)
self.assertEqual(len(solution.y), 26)
self.assertEqual([len(row) for row in solution.y], [3] * 26)
self.assertEqual(len(solution.y), 38)
self.assertEqual([len(row) for row in solution.y], [3] * 38)
if __name__ == "__main__":