优化仿真求解性能并修复流量闭合问题(初版)

This commit is contained in:
ljz committed 2026-08-16 17:46:05 +08:00
1 parent 57b459bc72
commit 5332a788f3
55 files changed
+8973 -549

No files matched your search

@@ -241,6 +241,85 @@ class AmesimPnl0003ComponentTests(unittest.TestCase):
self.assertGreater(forward, 0.0)
self.assertLess(reverse, 0.0)
def test_center_flow_is_continuous_across_former_relative_deadband(self) -> None:
base_pressure = 8.0e6
former_threshold = base_pressure * 1.0e-7
below = AmesimPnl0003(
"below",
self.medium,
p1_0=base_pressure + 0.99 * former_threshold,
p2_0=base_pressure,
).resistance_mass_flow()
above = AmesimPnl0003(
"above",
self.medium,
p1_0=base_pressure + 1.01 * former_threshold,
p2_0=base_pressure,
).resistance_mass_flow()
reverse = AmesimPnl0003(
"reverse",
self.medium,
p1_0=base_pressure,
p2_0=base_pressure + 0.99 * former_threshold,
).resistance_mass_flow()
equal = AmesimPnl0003(
"equal",
self.medium,
p1_0=base_pressure,
p2_0=base_pressure,
).resistance_mass_flow()
small = AmesimPnl0003(
"small",
self.medium,
p1_0=15.3e6 + 0.1,
p2_0=15.3e6,
).resistance_mass_flow()
self.assertGreater(below, 0.0)
self.assertGreater(above, below)
self.assertLess(reverse, 0.0)
self.assertAlmostEqual(below, -reverse, delta=abs(below) * 1.0e-9)
self.assertLess(abs(above - below), abs(above) * 0.05)
self.assertEqual(equal, 0.0)
self.assertGreater(small, 0.0)
def test_center_flow_is_continuous_across_former_relative_deadband(self) -> None:
base_pressure = 8.0e6
former_threshold = base_pressure * 1.0e-7
below = AmesimPnl0003(
"below",
self.medium,
p1_0=base_pressure + 0.99 * former_threshold,
p2_0=base_pressure,
).resistance_mass_flow()
above = AmesimPnl0003(
"above",
self.medium,
p1_0=base_pressure + 1.01 * former_threshold,
p2_0=base_pressure,
).resistance_mass_flow()
reverse = AmesimPnl0003(
"reverse",
self.medium,
p1_0=base_pressure,
p2_0=base_pressure + 0.99 * former_threshold,
).resistance_mass_flow()
equal = AmesimPnl0003(
"equal",
self.medium,
p1_0=base_pressure,
p2_0=base_pressure,
).resistance_mass_flow()
self.assertGreater(below, 0.0)
self.assertGreater(above, below)
self.assertLess(reverse, 0.0)
self.assertAlmostEqual(below, -reverse, delta=abs(below) * 1.0e-9)
self.assertLess(abs(above - below), abs(above) * 0.05)
self.assertEqual(equal, 0.0)
def test_pressure_flow_residuals_bind_both_port_pressures_to_states(self) -> None:
pipe = AmesimPnl0003("pnl_3", self.medium)
pipe.properties_1()