同步仿真框架并接入AMESim气动组件
This commit is contained in:
1 parent
420bafeb4e
commit
db4bdb4b70
109 files changed
+26920
-420
No files matched your search
@@ -0,0 +1,45 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from app.simulation.components.amesim.boundary.sources import AmesimPnpl01
|
||||
from app.simulation.core.medium import IdealGasMedium
|
||||
from app.simulation.registry import COMPONENT_MODEL_REGISTRY
|
||||
|
||||
|
||||
class AmesimPnpl01ComponentTests(unittest.TestCase):
|
||||
def setUp(self) -> None:
|
||||
self.medium = IdealGasMedium()
|
||||
|
||||
def test_default_create_preserves_zero_flow_boundary_contract(self) -> None:
|
||||
source = COMPONENT_MODEL_REGISTRY["amesim_pnpl01"].create(
|
||||
"plug_1",
|
||||
self.medium,
|
||||
{},
|
||||
)
|
||||
|
||||
self.assertIsInstance(source, AmesimPnpl01)
|
||||
self.assertEqual(set(source.ports), {"port_1"})
|
||||
self.assertEqual(source.parameter_values, {})
|
||||
|
||||
def test_zero_flow_residual_uses_port_mass_flow(self) -> None:
|
||||
source = AmesimPnpl01("plug_1")
|
||||
source.port_1.m_flow = 0.125
|
||||
|
||||
residuals = source.pressure_flow_equation_residuals()
|
||||
|
||||
self.assertEqual(len(residuals), 1)
|
||||
self.assertEqual(residuals[0].id, "plug_1:zero_mass_flow")
|
||||
self.assertEqual(residuals[0].variables, ("plug_1.port_1.m_flow",))
|
||||
self.assertEqual(residuals[0].value, 0.125)
|
||||
|
||||
def test_stream_outflow_tracks_connected_enthalpy_when_available(self) -> None:
|
||||
source = AmesimPnpl01("plug_1")
|
||||
|
||||
source.update_stream_outflows({"port_1": 123.0})
|
||||
|
||||
self.assertEqual(source.port_1.h_outflow, 123.0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user