对齐Amesim氦气PR物性与PNVO流量
This commit is contained in:
1 parent
18d9802f03
commit
046aa49814
13 files changed
+730
-73
No files matched your search
@@ -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:
|
||||
|
||||
Reference in new issue
Block a user