对齐Amesim氦气PR物性与PNVO流量

This commit is contained in:
huojiarong committed 2026-08-03 15:34:33 +00:00
1 parent 18d9802f03
commit 046aa49814
13 files changed
+730 -73

No files matched your search

+65 -9
View File
@@ -18,7 +18,7 @@ from tests.test_system_xml_protocol import physical_port
class AmesimHeliumPengRobinsonMediumTests(unittest.TestCase):
def test_uses_shared_peng_robinson_eos_and_committed_caloric_constants(
def test_uses_amesim_2404_peng_robinson_and_nasa_constants(
self,
) -> None:
medium = AmesimHeliumPengRobinsonMedium()
@@ -32,11 +32,11 @@ class AmesimHeliumPengRobinsonMediumTests(unittest.TestCase):
self.assertEqual(medium.SUBSTANCE_ID, "helium")
self.assertEqual(medium.PROPERTY_METHOD_ID, "peng_robinson")
self.assertAlmostEqual(medium.R_gas, HELIUM_PR.specific_gas_constant)
self.assertEqual(medium.cp_ref, 5193.0)
self.assertEqual(medium.cv, 3116.0)
self.assertEqual(medium.cp_at_temperature(400.0), 5193.0)
self.assertEqual(medium.cv_at_temperature(400.0), 3116.0)
self.assertAlmostEqual(medium.gamma, 5193.0 / 3116.0)
self.assertEqual(medium.cp_ref, 2.5 * medium.R_gas)
self.assertEqual(medium.cv, 1.5 * medium.R_gas)
self.assertEqual(medium.cp_at_temperature(400.0), 2.5 * medium.R_gas)
self.assertEqual(medium.cv_at_temperature(400.0), 1.5 * medium.R_gas)
self.assertAlmostEqual(medium.gamma, 5.0 / 3.0)
self.assertAlmostEqual(density, HELIUM_PR.density(pressure, temperature))
self.assertAlmostEqual(
medium.pressure(density * volume, temperature, volume),
@@ -44,7 +44,7 @@ class AmesimHeliumPengRobinsonMediumTests(unittest.TestCase):
delta=pressure * 1.0e-12,
)
def test_constant_caloric_model_and_sutherland_viscosity_complete_contract(
def test_nasa_caloric_reference_and_sutherland_viscosity_complete_contract(
self,
) -> None:
medium = AmesimHeliumPengRobinsonMedium()
@@ -53,8 +53,14 @@ class AmesimHeliumPengRobinsonMediumTests(unittest.TestCase):
internal_energy = medium.specific_internal_energy(temperature)
enthalpy = medium.specific_enthalpy(temperature)
self.assertEqual(internal_energy, 3116.0 * temperature)
self.assertEqual(enthalpy, 5193.0 * temperature)
self.assertEqual(
internal_energy,
medium.R_gas * (1.5 * temperature - 745.375),
)
self.assertEqual(
enthalpy,
medium.R_gas * (2.5 * temperature - 745.375),
)
self.assertEqual(
medium.temperature_from_internal_energy(internal_energy),
temperature,
@@ -66,6 +72,56 @@ class AmesimHeliumPengRobinsonMediumTests(unittest.TestCase):
self.assertAlmostEqual(medium.dynamic_viscosity(293.15), 1.96e-5)
self.assertEqual(medium.sutherland_constant, 79.4)
def test_pressure_transport_enthalpy_includes_peng_robinson_departure(
self,
) -> None:
medium = AmesimHeliumPengRobinsonMedium()
pressure = 13_839_965.0
temperature = 287.7322
ideal_enthalpy = medium.specific_enthalpy(temperature)
transport_enthalpy = medium.specific_enthalpy_at_pressure(pressure, temperature)
self.assertGreater(
transport_enthalpy,
ideal_enthalpy,
)
self.assertAlmostEqual(
medium.temperature_from_pressure_enthalpy(pressure, transport_enthalpy),
temperature,
delta=1.0e-8,
)
density = medium.density(pressure, temperature)
volume = 0.01
properties = medium.properties_from_mU(
density * volume,
density
* volume
* medium.specific_internal_energy_at_pressure(pressure, temperature),
volume,
)
self.assertAlmostEqual(properties.p, pressure, delta=pressure * 1.0e-10)
self.assertAlmostEqual(properties.T, temperature, delta=1.0e-8)
self.assertAlmostEqual(
properties.h,
transport_enthalpy,
delta=2.0e-8,
)
def test_amesim_2404_real_gas_isentropic_factor_reference(self) -> None:
medium = AmesimHeliumPengRobinsonMedium()
self.assertAlmostEqual(
medium.isentropic_density_pressure_factor(
15_201_996.778497815,
292.3997890954483,
405_072.8123335606,
),
0.5807873871273339,
delta=1.0e-12,
)
def test_definition_maps_local_selector_to_amesim_fluid_and_eos_codes(
self,
) -> None: