公开更多 AMESim 组件并接入信号机械闭环

This commit is contained in:
huojiarong committed 2026-07-30 10:11:08 +00:00
1 parent db4bdb4b70
commit 3f51a124d6
28 files changed
+3397 -58

No files matched your search

+55 -2
View File
@@ -47,8 +47,8 @@ class ComponentCatalogTests(unittest.TestCase):
}
self.assertEqual(library["label"], "AMESim 组件库")
self.assertEqual([category["id"] for category in library["categories"]], ["storage", "flow", "junctions", "boundary"])
self.assertEqual(set(components), {"amesim_pnpl01", "amesim_pnch023", "amesim_pnor001", "amesim_pnvo001_fixed", "amesim_pnl00r", "amesim_pn3node2", "amesim_p4node2"})
self.assertEqual([category["id"] for category in library["categories"]], ["storage", "flow", "junctions", "boundary", "signals", "mechanical"])
self.assertEqual(set(components), {"amesim_pnpl01", "amesim_step0", "amesim_ud00", "amesim_f000", "amesim_forc", "amesim_mecmas21", "amesim_pnch023", "amesim_pnch012", "amesim_pnor001", "amesim_pnvo001_fixed", "amesim_pnvo001", "amesim_pnl00r", "amesim_pnl0001", "amesim_pnl0002", "amesim_pnl0003", "amesim_pn3node2", "amesim_p4node2"})
self.assertEqual(
[port["name"] for port in components["amesim_p4node2"]["ports"]],
["port_1", "port_2", "port_3", "port_4"],
@@ -64,6 +64,15 @@ class ComponentCatalogTests(unittest.TestCase):
self.assertEqual(pnch_parameters["cvol"]["quantity"], "volume")
self.assertEqual(pnch_parameters["kth"]["quantity"], "heat_transfer_coefficient")
pnch012_parameters = {
parameter["name"]: parameter
for parameter in components["amesim_pnch012"]["parameters"]
}
self.assertEqual(components["amesim_pnch012"]["category"]["id"], "storage")
self.assertEqual([port["name"] for port in components["amesim_pnch012"]["ports"]], ["port_1", "port_2", "port_3", "port_4"])
self.assertEqual(pnch012_parameters["cvol0"]["quantity"], "volume")
self.assertEqual(pnch012_parameters["dvol1"]["unit"], "m3/s")
pnor_parameters = {
parameter["name"]: parameter
for parameter in components["amesim_pnor001"]["parameters"]
@@ -79,6 +88,33 @@ class ComponentCatalogTests(unittest.TestCase):
self.assertEqual(pnvo_parameters["opening"]["maximum"], 1.0)
self.assertEqual([port["name"] for port in components["amesim_pnvo001_fixed"]["ports"]], ["port_2", "port_3"])
self.assertEqual(components["amesim_step0"]["category"]["id"], "signals")
self.assertEqual([port["name"] for port in components["amesim_step0"]["ports"]], ["out"])
ud00_parameters = {
parameter["name"]: parameter
for parameter in components["amesim_ud00"]["parameters"]
}
self.assertEqual(components["amesim_ud00"]["category"]["id"], "signals")
self.assertEqual([port["name"] for port in components["amesim_ud00"]["ports"]], ["out"])
self.assertEqual(ud00_parameters["tstart"]["quantity"], "time")
self.assertEqual(ud00_parameters["nstages"]["maximum"], 8.0)
self.assertEqual(components["amesim_f000"]["category"]["id"], "mechanical")
self.assertEqual([port["name"] for port in components["amesim_f000"]["ports"]], ["port_1"])
self.assertEqual(components["amesim_f000"]["ports"][0]["domain"], "mechanical")
self.assertEqual(components["amesim_forc"]["category"]["id"], "mechanical")
self.assertEqual([port["name"] for port in components["amesim_forc"]["ports"]], ["res", "port_2"])
self.assertEqual(components["amesim_forc"]["ports"][1]["domain"], "mechanical")
mecmas_parameters = {
parameter["name"]: parameter
for parameter in components["amesim_mecmas21"]["parameters"]
}
self.assertEqual(components["amesim_mecmas21"]["category"]["id"], "mechanical")
self.assertEqual([port["name"] for port in components["amesim_mecmas21"]["ports"]], ["port_1", "port_2"])
self.assertEqual(mecmas_parameters["mass"]["unit"], "kg")
self.assertEqual(mecmas_parameters["Kbmin"]["unit"], "N/m")
self.assertEqual(components["amesim_pnvo001"]["category"]["id"], "flow")
self.assertEqual([port["name"] for port in components["amesim_pnvo001"]["ports"]], ["res", "port_2", "port_3"])
pnl_parameters = {
parameter["name"]: parameter
for parameter in components["amesim_pnl00r"]["parameters"]
@@ -87,6 +123,23 @@ class ComponentCatalogTests(unittest.TestCase):
self.assertEqual(pnl_parameters["diam"]["quantity"], "length")
self.assertEqual(pnl_parameters["le"]["unit"], "m")
pnl0001_parameters = {
parameter["name"]: parameter
for parameter in components["amesim_pnl0001"]["parameters"]
}
self.assertEqual(components["amesim_pnl0001"]["category"]["id"], "flow")
self.assertEqual(pnl0001_parameters["kth"]["quantity"], "heat_transfer_coefficient")
self.assertEqual(pnl0001_parameters["p0"]["unit"], "Pa")
self.assertEqual(components["amesim_pnl0002"]["category"]["id"], "flow")
self.assertEqual(components["amesim_pnl0003"]["category"]["id"], "flow")
pnl0003_parameters = {
parameter["name"]: parameter
for parameter in components["amesim_pnl0003"]["parameters"]
}
self.assertEqual(pnl0003_parameters["p1_0"]["unit"], "Pa")
self.assertEqual(pnl0003_parameters["T2_0"]["quantity"], "temperature")
def test_every_registered_component_is_in_the_catalog(self) -> None:
self.assertEqual(
set(self.components),