From 31a2e31f24725ffe43b86b3e3113f3973195d2ec Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Mon, 22 Jul 2024 16:18:20 +0200 Subject: [PATCH 01/22] [189_contamination_tests], issue #189, Implementing tests for initialization and boundary values verification for contaminating compounds in pure lead. Also adds the values needed for all metal compounds in properties_bounds.json --- tests/properties_bounds.json | 116 ++++++++++++++++++++++++++++++++- tests/test_lbh15_bounds.py | 27 ++++++++ tests/test_lead_fromX_spanT.py | 11 ++++ 3 files changed, 153 insertions(+), 1 deletion(-) diff --git a/tests/properties_bounds.json b/tests/properties_bounds.json index 5a4cd7a..b720963 100644 --- a/tests/properties_bounds.json +++ b/tests/properties_bounds.json @@ -736,5 +736,119 @@ "T_at_min": 673.00001951, "max": 0.0, "T_at_max": 999.9999743571 - } + }, + "P_PbPo_vapour_pressure_polonium_in_pure_lead_abakumov1994a": { + "min": 12.50949761, + "T_at_min": 913.0, + "max": 385.7171263, + "T_at_max": 1123.0 + }, + "K_PbPo_Henry_constant_polonium_in_pure_lead_ohno2006": { + "min": 0.0975810043, + "T_at_min": 723.0, + "max": 237.3488843, + "T_at_max": 1023.0 + }, + "gamma_PbPo_activity_coefficient_polonium_in_pure_lead_li1998": { + "min": 5.56014098e-04, + "T_at_min": 641.0, + "max": 3.260925936e-03, + "T_at_max": 877.0 + }, + "P_PbI2_a_vapour_pressure_iodine_in_pure_lead_konings1994": { + "min": 0.2205314482, + "T_at_min": 600.6, + "max": 22.1231256, + "T_at_max": 697.0 + }, + "P_PbI2_b_vapour_pressure_iodine_in_pure_lead_knacke1991": { + "min": 22.22643369, + "T_at_min": 697.1, + "max": 10927294.32, + "T_at_max": 2021.1 + }, + "K_PbCs_Henry_constant_caesium_in_pure_lead_yamshchikov2001": { + "min": 1459.135758, + "T_at_min": 643.0, + "max": 92099.30974, + "T_at_max": 933.0 + }, + "P_PbCs_vapour_pressure_caesium_in_pure_lead_yamshchikov2001": { + "min": 46.14192411, + "T_at_min": 643.0, + "max": 2912.435897, + "T_at_max": 933.0 + }, + "gamma_BiPo_activity_coefficient_polonium_in_pure_bismuth_joy1963": { + "min": 9.73127729e-04, + "T_at_min": 723.0, + "max": 0.01281812195, + "T_at_max": 1123.0 + }, + "P_BiI3_a_vapour_pressure_iodine_in_pure_bismuth_cubicciotti1959": { + "min": 237.6482557, + "T_at_min": 544.6, + "max": 86316740.09, + "T_at_max": 1831.0 + }, + "K_LBEPo_Henry_constant_polonium_in_lbe_ohno2006": { + "min": 0.0975810043, + "T_at_min": 723.0, + "max": 237.3488843, + "T_at_max": 1023.0 + }, + "K_LBEHg_Henry_constant_mercury_in_lbe_landolt1991": { + "min": 92762.77782, + "T_at_min": 625.0, + "max": 143068636, + "T_at_max": 1927.0 + }, + "K_LBECd_Henry_constant_cadmium_in_lbe_landolt1991": { + "min": 1.604947514e-03, + "T_at_min": 398.0, + "max": 70249774.72, + "T_at_max": 1927.0 + }, + "P_LBECd_vapour_pressure_cadmium_in_lbe_landolt1991": { + "min": 4.01236878e-04, + "T_at_min": 398.0, + "max": 17562443.68, + "T_at_max": 1927.0 + }, + "K_LBETl_Henry_constant_thallium_in_lbe_landolt1991": { + "min": 1.47408454e-13, + "T_at_min": 398.0, + "max": 264937.4942, + "T_at_max": 1927.0 + }, + "P_LBETl_vapour_pressure_thallium_in_lbe_landolt1991": { + "min": 5.01546098e-04, + "T_at_min": 398.0, + "max": 21953054.6, + "T_at_max": 1927.0 + }, + "K_LBEI_Henry_constant_iodine_in_lbe_neuheusen2005": { + "min": 2.58082641e-12, + "T_at_min": 398.0, + "max": 1.44336866e09, + "T_at_max": 1927.0 + }, + "gamma_LBECs_activity_coefficient_caesium_in_lbe_ohno2006": { + "min": 1.115249561e-03, + "T_at_min": 723.0, + "max": 1.358897519e-02, + "T_at_max": 1023.0 + }, + "P_LBERb_a_vapour_pressure_rubidium_in_lbe_landolt1960": { + "min": 6.494285163e-02, + "T_at_min": 398.0, + "max": 9247376.837, + "T_at_max": 1927.0 + }, + "P_LBERb_b_vapour_pressure_rubidium_in_lbe_handbook": { + "min": 1.295780245e-03, + "T_at_min": 398.0, + "max": 184509.4251, + "T_at_max": 1927.0 + } } \ No newline at end of file diff --git a/tests/test_lbh15_bounds.py b/tests/test_lbh15_bounds.py index a3228f5..ac7c287 100644 --- a/tests/test_lbh15_bounds.py +++ b/tests/test_lbh15_bounds.py @@ -440,6 +440,33 @@ def test_T_at_max(self): val, key = get_val(prop, "T_at_max") self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") +class LeadContaminationTester(unittest.TestCase): + + properties = load_prop('lbh15.properties.lead_thermochemical_properties.lead_contamination') + + def test_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "min") + self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") + + def test_T_at_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_min") + self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") + + def test_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "max") + self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") + + def test_T_at_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_max") + self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") if __name__ == "__main__": unittest.main() diff --git a/tests/test_lead_fromX_spanT.py b/tests/test_lead_fromX_spanT.py index 68b71b7..8c38fbd 100644 --- a/tests/test_lead_fromX_spanT.py +++ b/tests/test_lead_fromX_spanT.py @@ -110,6 +110,17 @@ def test_init_fromX(self): fromX = Lead(**init_dict) self.assertAlmostEqual(leadP.T, fromX.T, tol, name+" FAILED") +class LeadContaminationTester(unittest.TestCase): + + def test_init_fromX(self): + for leadP in leadPs: + properties = load_prop('lbh15.properties.lead_thermochemical_properties.lead_contamination') + for prop in properties: + name = prop.name + val = getattr(leadP, name) + init_dict = {name: val} + fromX = Lead(**init_dict) + self.assertAlmostEqual(leadP.T, fromX.T, tol, name+" FAILED") if __name__ == "__main__": unittest.main() From e8b77ab04649a70182561d615c73a2644b4ea746 Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Mon, 22 Jul 2024 16:21:15 +0200 Subject: [PATCH 02/22] [189_contamination_tests], issue #190, Implement tests for initialization and boundary values verification for contaminating compounds in pure bismuth. --- tests/test_bismuth_fromX_spanT.py | 12 ++++++++++++ tests/test_lbh15_bounds.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/tests/test_bismuth_fromX_spanT.py b/tests/test_bismuth_fromX_spanT.py index f547b4f..5b620bb 100644 --- a/tests/test_bismuth_fromX_spanT.py +++ b/tests/test_bismuth_fromX_spanT.py @@ -84,6 +84,18 @@ def test_init_fromX(self): fromX = Bismuth(**init_dict) self.assertAlmostEqual(bismuthP.T, fromX.T, tol, name+" FAILED") +class BismuthContaminationTester(unittest.TestCase): + + def test_init_fromX(self): + for bismuthP in bismuthPs: + properties = load_prop('lbh15.properties.bismuth_thermochemical_properties.bismuth_contamination') + for prop in properties: + name = prop.name + val = getattr(bismuthP, name) + init_dict = {name: val} + fromX = Bismuth(**init_dict) + self.assertAlmostEqual(bismuthP.T, fromX.T, tol, + name+" FAILED") if __name__ == "__main__": unittest.main() diff --git a/tests/test_lbh15_bounds.py b/tests/test_lbh15_bounds.py index ac7c287..9ea28c2 100644 --- a/tests/test_lbh15_bounds.py +++ b/tests/test_lbh15_bounds.py @@ -468,5 +468,33 @@ def test_T_at_max(self): val, key = get_val(prop, "T_at_max") self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") +class BismuthContaminationTester(unittest.TestCase): + + properties = load_prop('lbh15.properties.bismuth_thermochemical_properties.bismuth_contamination') + + def test_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "min") + self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") + + def test_T_at_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_min") + self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") + + def test_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "max") + self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") + + def test_T_at_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_max") + self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") + if __name__ == "__main__": unittest.main() From a166aeebaa15de6961f0c37b1f237d5a565f759d Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Mon, 22 Jul 2024 16:24:01 +0200 Subject: [PATCH 03/22] [189_contamination_tests], issue #191, Implement tests for initialization and boundary values verification for contaminating compounds in LBE. --- tests/test_lbe_fromX_spanT.py | 12 ++++++++++++ tests/test_lbh15_bounds.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/tests/test_lbe_fromX_spanT.py b/tests/test_lbe_fromX_spanT.py index e1ab062..4855329 100644 --- a/tests/test_lbe_fromX_spanT.py +++ b/tests/test_lbe_fromX_spanT.py @@ -96,6 +96,18 @@ def test_init_fromX(self): fromX = LBE(**init_dict) self.assertAlmostEqual(lbeP.T, fromX.T, tol, name+" FAILED") +class LBEContaminationTester(unittest.TestCase): + + def test_init_fromX(self): + for lbeP in lbePs: + properties = load_prop('lbh15.properties.lbe_thermochemical_properties.lbe_contamination') + for prop in properties: + name = prop.name + val = getattr(lbeP, name) + init_dict = {name: val} + fromX = LBE(**init_dict) + self.assertAlmostEqual(lbeP.T, fromX.T, tol, + name+" FAILED") if __name__ == "__main__": unittest.main() diff --git a/tests/test_lbh15_bounds.py b/tests/test_lbh15_bounds.py index 9ea28c2..52ad0ee 100644 --- a/tests/test_lbh15_bounds.py +++ b/tests/test_lbh15_bounds.py @@ -496,5 +496,33 @@ def test_T_at_max(self): val, key = get_val(prop, "T_at_max") self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") +class LBEContaminationTester(unittest.TestCase): + + properties = load_prop('lbh15.properties.lbe_thermochemical_properties.lbe_contamination') + + def test_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "min") + self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") + + def test_T_at_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_min") + self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") + + def test_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "max") + self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") + + def test_T_at_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_max") + self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") + if __name__ == "__main__": unittest.main() From 60d5d0edf8fb425a86b816e3c48f24542fce9d7c Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Tue, 23 Jul 2024 09:55:30 +0200 Subject: [PATCH 04/22] [189_contamination_tests], issue #189, Implmentation of contamination files path in lead.py, bismuth.py and lbe.py --- lbh15/bismuth.py | 4 +++- lbh15/lbe.py | 3 ++- lbh15/lead.py | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lbh15/bismuth.py b/lbh15/bismuth.py index 35133b8..86c4ba7 100644 --- a/lbh15/bismuth.py +++ b/lbh15/bismuth.py @@ -74,7 +74,9 @@ class Bismuth(LiquidMetalInterface): .diffusivity_in_bismuth', 'lbh15.properties.bismuth_thermochemical_properties\ .bismuth_thermochemical', - 'lbh15.properties.bismuth_properties'] + 'lbh15.properties.bismuth_properties', + 'lbh15.properties.bismuth_thermochemical_properties\ +.bismuth_contamination'] def __init__(self, p: float = atm, **kwargs): self._guess = BISMUTH_BOILING_TEMPERATURE / 2.0 diff --git a/lbh15/lbe.py b/lbh15/lbe.py index a360831..e6246de 100644 --- a/lbh15/lbe.py +++ b/lbh15/lbe.py @@ -92,7 +92,8 @@ class LBE(LiquidMetalInterface): 'lbh15.properties.lbe_thermochemical_properties.diffusivity_in_lbe', 'lbh15.properties.lbe_thermochemical_properties.lbe_thermochemical', 'lbh15.properties.lbe_thermochemical_properties.lbe_oxygen_limits', - 'lbh15.properties.lbe_properties'] + 'lbh15.properties.lbe_properties', + 'lbh15.properties.lbe_thermochemical_properties.lbe_contamination'] def __init__(self, p: float = atm, **kwargs): self._guess = LBE_BOILING_TEMPERATURE / 2.0 diff --git a/lbh15/lead.py b/lbh15/lead.py index fbd9f70..ec5c183 100644 --- a/lbh15/lead.py +++ b/lbh15/lead.py @@ -103,7 +103,8 @@ class Lead(LiquidMetalInterface): 'lbh15.properties.lead_thermochemical_properties.diffusivity_in_lead', 'lbh15.properties.lead_thermochemical_properties.lead_thermochemical', 'lbh15.properties.lead_thermochemical_properties.lead_oxygen_limits', - 'lbh15.properties.lead_properties'] + 'lbh15.properties.lead_properties', + 'lbh15.properties.lead_thermochemical_properties.lead_contamination'] def __init__(self, p: float = atm, **kwargs): self._guess = LEAD_BOILING_TEMPERATURE / 2.0 From d0e72a375265de61a1d323dd7859b3a64a0b8838 Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Tue, 23 Jul 2024 10:14:11 +0200 Subject: [PATCH 05/22] [189_contamination_tests], issue #189, Correction of keyboard's errors. --- .../lbe_thermochemical_properties/lbe_contamination.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py index f7a4a71..9c5a39b 100644 --- a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py +++ b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py @@ -553,7 +553,7 @@ def correlation(self, T: float, p: float = atm, float: activity coefficient in :math:`[]` """ - return 10**((- 10407 / T) + 14.56) + return 10**((- 2677 / T) + 0.75) @property def name(self) -> str: From aa7856596ca8ea312ee292ef5cfb1d08bcd60c01 Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Mon, 12 Aug 2024 15:45:34 +0200 Subject: [PATCH 06/22] [188_contamination_tests_in_common], issue #188, Implementation of property bounds, impplementation of LeadContaminationTester, BismuthContaminationTester and LBEContaminationTester. Samll modifications of heavy liquid metal contamination modules to fit with the tests. No need of inisialization_helper methods. --- .../bismuth_contamination.py | 2 +- .../lbe_contamination.py | 6 +- .../lead_contamination.py | 2 +- tests/properties_bounds.json | 222 ++++++++++++++++++ tests/test_lbh15_bounds.py | 87 +++++++ 5 files changed, 314 insertions(+), 5 deletions(-) diff --git a/lbh15/properties/bismuth_thermochemical_properties/bismuth_contamination.py b/lbh15/properties/bismuth_thermochemical_properties/bismuth_contamination.py index c060c50..3abee6f 100644 --- a/lbh15/properties/bismuth_thermochemical_properties/bismuth_contamination.py +++ b/lbh15/properties/bismuth_thermochemical_properties/bismuth_contamination.py @@ -201,7 +201,7 @@ def range(self) -> List[float]: List[float] : Temperature validity range of the BiI3 Iodide vapour pressure correlation function """ - return [682.0, T_b0] + return [T_m0, T_b0] class BismuthCaesiumActivityCoefficientGverdtsiteli1984(PropertyInterface): diff --git a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py index fb5657c..a4c2222 100644 --- a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py +++ b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py @@ -1,6 +1,6 @@ """Module with the definition of some coumpounds properties for contamination assessment""" -from typing import List +from typing import List, Union import numpy as np from scipy.constants import atm from ..interface import PropertyInterface @@ -1253,7 +1253,7 @@ def range(self) -> List[float]: return [723.0, 1023.0] -class LBERubidiumVapourPressureInterfaceLandolt1960(PropertyInterface): +class LBERubidiumVapourPressureLandolt1960(PropertyInterface): """ Liquid LBE *Rubidium vapour pressure* property class implementing the correlation by *landolt1960*. @@ -1424,7 +1424,7 @@ def correlation(self, T: float, p: float = atm, float: Henry constant in :math:`[Pa]` """ - return LBERubidiumVapourPressureInterfaceLandolt1960()\ + return LBERubidiumVapourPressureLandolt1960()\ .correlation(T, p) * LBERubidiumActivityCoefficient()\ .correlation(T, p) diff --git a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py index c16e5c6..f2daa76 100644 --- a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py +++ b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py @@ -65,7 +65,7 @@ def long_name(self) -> str: """ str : PbPo Polonium compound vapour pressure long name """ - return "Vapour pressure of PbPo compound in pure lead" + return "Vapour pressure of PbPo compound" @property def description(self) -> str: diff --git a/tests/properties_bounds.json b/tests/properties_bounds.json index 769f15f..6632bde 100644 --- a/tests/properties_bounds.json +++ b/tests/properties_bounds.json @@ -748,5 +748,227 @@ "T_at_min": 673.00001951, "max": 0.0, "T_at_max": 999.9999743571 + }, + "P_PbPo_abakumov1994a_Vapour_pressure_of_PbPo_compound_in_liquid_lead": { + "min": 12.5095034388, + "T_at_min": 913.0000231923, + "max": 385.7169908819, + "T_at_max": 1122.9999735432 + }, + "gamma_PbPo_li1998_Activity_coefficient_of_PbPo_compound_in_liquid_lead": { + "min": 1.0000000000, + "T_at_min": 1122.9999735432, + "max": 1.0000000000, + "T_at_max": 1122.9999735432 + }, + "K_PbPo_lbh15_Henry_constant_of_PbPo_compound_in_liquid_lead": { + "min": 12.5095034388, + "T_at_min": 913.0000231923, + "max": 385.7169908819, + "T_at_max": 1122.9999735432 + }, + "P_PbI2_konings1996_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.2205316217, + "T_at_min": 600.6000141817, + "max": 22.1231075622, + "T_at_max": 696.9999802088 + }, + "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.0000000000, + "T_at_min": 697.0000136286, + "max": 0.0000000000, + "T_at_max": 1475.1623230823368 + }, + "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 1.0000000000, + "T_at_min": 2020.9999611359, + "max": 1.0000000000, + "T_at_max": 2020.9999611359 + }, + "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.2205316217, + "T_at_min": 600.6000141817, + "max": 22.1231075622, + "T_at_max": 696.9999802088 + }, + "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.0000000000, + "T_at_min": 697.0000136286, + "max": 0.0000000000, + "T_at_max": 1475.1623230823368 + }, + "K_PbCs_yamshchikov2001_Cs-Pb_Caesium_intermetallic_compound_Henry_constant_in_liquid_lead": { + "min": 0.0000000000, + "T_at_min": 932.9999772585, + "max": 0.0000000000, + "T_at_max": 708.9085832567 + }, + "gamma_PbCs_lbh15_Activity_coefficient_of_Cs-Pb_Caesium_intermetallic_compound_in_liquid_lead": { + "min": 0.0316227766, + "T_at_min": 1099.9999771533, + "max": 0.0316227766, + "T_at_max": 1099.9999771533 + }, + "P_PbCs_lbh15_Cs-Pb_Caesium_intermetallic_compound_vapour_pressure_in_liquid_lead": { + "min": 0.0000000000, + "T_at_min": 932.9999772585, + "max": 0.0000000000, + "T_at_max": 708.9086327201708 + }, + "gamma_Po_joy1963_Activity_coefficient_of_Polonium_in_liquid_bismuth": { + "min": 0.0022080953, + "T_at_min": 723.0000193862, + "max": 0.0487669181, + "T_at_max": 1122.9999686325 + }, + "gamma_Po_lbh15_Activity_coefficient_of_Polonium_in_liquid_bismuth": { + "min": 0.0046698529, + "T_at_min": 923.0000236099, + "max": 0.0087518712, + "T_at_max": 1037.9999771945 + }, + "P_BiI3_cubicciotti1959_Vapour_pressure_of_BiI3_Iodide_in_liquid_bismuth": { + "min": 237.64832610980847, + "T_at_min": 544.6000088591823, + "max": 86316731.09536353, + "T_at_max": 1830.9999648121470 + }, + "gamma_Cs_gverdtsiteli1984_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_bismuth": { + "min": 0.0031622777, + "T_at_min": 999.9999791205, + "max": 0.0031622777, + "T_at_max": 999.9999791205 + }, + "K_Po_ohno2006_Henry_constant_of_Polonium_in_liquid_LBE": { + "min": 0.0975810518, + "T_at_min": 723.0000132379, + "max": 237.3487844736, + "T_at_max": 1022.9999771083 + }, + "K_PbPo_buongiorno2003_Henry_constant_of_Polonium_in_liquid_LBE": { + "min": 0.0177612640, + "T_at_min": 665.0000120712, + "max": 1.6206753711, + "T_at_max": 822.9999799523 + }, + "gamma_Po_ohno2006_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { + "min": 0.001139908769775767, + "T_at_min": 723.0000195402, + "max": 0.0057962945, + "T_at_max": 876.9999813914 + }, + "gamma_Po_lbh15_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { + "min": 0.02486674251805006, + "T_at_min": 913.0000266457, + "max": 0.0589435506, + "T_at_max": 1122.9999735432 + }, + "K_Hg_lbh15_Henry_constant_of_Mercury_in_liquid_LBE": { + "min": 21.3022269849, + "T_at_min": 526.5500115906, + "max": 343.9970060127, + "T_at_max": 679.4499805994 + }, + "gamma_Hg_lbh15_Activity_coefficient_of_Mercury_in_liquid_LBE": { + "min": 2.0000000000, + "T_at_min": 679.4499805994, + "max": 2.0000000000, + "T_at_max": 679.4499805994 + }, + "K_Cd_lbh15_Henry_constant_of_Cadmium_in_liquid_LBE": { + "min": 0.1167695558, + "T_at_min": 696.5500194006, + "max": 2.1255978513, + "T_at_max": 849.4499812086 + }, + "gamma_Cd_lbh15_Activity_coefficient_of_Cadmium_in_liquid_LBE": { + "min": 4.0000000000, + "T_at_min": 849.4499812086, + "max": 4.0000000000, + "T_at_max": 849.4499812086 + }, + "K_Tl_lbh15_Henry_constant_of_Thallium_in_liquid_LBE": { + "min": 0.0000006907, + "T_at_min": 696.5500153335, + "max": 0.0001281377, + "T_at_max": 849.4499812086 + }, + "gamma_Tl_lbh15_Activity_coefficient_of_Thallium_in_liquid_LBE": { + "min": 0.8000000000, + "T_at_min": 849.4499812086, + "max": 0.8000000000, + "T_at_max": 849.4499812086 + }, + "P_PbI2_konings1996_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.0675332282, + "T_at_min": 580.0000104114, + "max": 22.1231131294, + "T_at_max": 696.9999863178 + }, + "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.0000000000, + "T_at_min": 697.0000149130, + "max": 0.0000000000, + "T_at_max": 1119.9999668288 + }, + "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 1.0000000000, + "T_at_min": 1119.9999742661614, + "max": 1.0000000000, + "T_at_max": 1119.9999742661614 + }, + "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.0675332282, + "T_at_min": 580.0000104114, + "max": 22.1231131294, + "T_at_max": 696.9999863178 + }, + "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.0000000000, + "T_at_min": 697.0000149130, + "max": 0.0000000000, + "T_at_max": 1119.9999668288 + }, + "K_I_neuhausen2005_Henry_constant_of_monoatomic_Iodine_in_liquid_LBE": { + "min": 0.4930118675, + "T_at_min": 700.0000108607, + "max": 185368.2888892461, + "T_at_max": 1119.9999670641 + }, + "K_Cs_lbh15_Henry_constant_of_Caesium_intermettalic_compounds_in_liquid_LBE": { + "min": 2.4848725492608575e-33, + "T_at_min": 932.9999772585, + "max": 3.855017547852056e-33, + "T_at_max":708.9085832567 + }, + "gamma_Cs_lbh15_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { + "min": 0.0316227766, + "T_at_min": 932.9999772585, + "max": 0.0316227766, + "T_at_max": 932.9999772585 + }, + "gamma_Cs_ohno2006_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { + "min": 0.0011152497, + "T_at_min": 723.0000128018, + "max": 0.0135889734, + "T_at_max": 1022.9999771083 + }, + "P_Rb_landolt1960_Vapour_pressure_of_Rubidium_in_liquid_LBE": { + "min": 0.0461041946, + "T_at_min": 796.5500194006, + "max": 0.2171193162, + "T_at_max": 949.4499826918 + }, + "gamma_Rb_lbh15_Activity_coefficient_of_Rubidium_in_liquid_LBE": { + "min": 0.0200000000, + "T_at_min": 949.4499826918, + "max": 0.0200000000, + "T_at_max": 949.4499826918 + }, + "K_Rb_lbh15_Henry_constant_of_Rubidium_in_liquid_LBE": { + "min": 0.0009220839, + "T_at_min": 796.5500194006, + "max": 0.0043423863, + "T_at_max": 949.4499826918 } } \ No newline at end of file diff --git a/tests/test_lbh15_bounds.py b/tests/test_lbh15_bounds.py index a3228f5..d3457b8 100644 --- a/tests/test_lbh15_bounds.py +++ b/tests/test_lbh15_bounds.py @@ -441,5 +441,92 @@ def test_T_at_max(self): self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") +class LeadContaminationTester(unittest.TestCase): + + properties = load_prop('lbh15.properties.lead_thermochemical_properties.lead_contamination') + + def test_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "min") + self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") + + def test_T_at_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_min") + self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") + + def test_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "max") + self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") + + def test_T_at_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_max") + self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") + + +class BismuthContaminationTester(unittest.TestCase): + + properties = load_prop('lbh15.properties.bismuth_thermochemical_properties.bismuth_contamination') + + def test_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "min") + self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") + + def test_T_at_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_min") + self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") + + def test_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "max") + self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") + + def test_T_at_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_max") + self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") + + +class LBEContaminationTester(unittest.TestCase): + + properties = load_prop('lbh15.properties.lbe_thermochemical_properties.lbe_contamination') + + def test_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "min") + self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") + + def test_T_at_min(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_min") + self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") + + def test_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "max") + self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") + + def test_T_at_max(self): + for prop in self.properties: + prop.compute_bounds() + val, key = get_val(prop, "T_at_max") + self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") + + if __name__ == "__main__": unittest.main() From 6ec7db2f0adc86fd82d7f321ae8265b47cdc9613 Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Tue, 27 Aug 2024 12:51:28 +0200 Subject: [PATCH 07/22] [189_contamination_tests], issue 189, Modification of all the test files non related to lead for coherence with the new issue's organisation. Implementation of ContaminationTester in test_lead_fromX_spanT.py. Implementation of a new method in interface, called guess_helper, to help fsolve when the correlation is non injective. Accordingly, modification has been made in _lbh15.py. Implementation in _lbh15.py and in test_lead_fromX_spanT.py to handle the constant correlations, in lead. update of _roots_to_use dictionnary in lead.py. --- lbh15/_lbh15.py | 17 ++- lbh15/lead.py | 2 +- lbh15/properties/interface.py | 12 ++ lbh15/properties/lead_properties.py | 26 ++++ .../lead_contamination.py | 44 ++++++- tests/properties_bounds.json | 116 +----------------- tests/test_bismuth_fromX_spanT.py | 12 -- tests/test_lbe_fromX_spanT.py | 12 -- tests/test_lbh15_bounds.py | 83 ------------- tests/test_lead_fromX_spanT.py | 22 +++- 10 files changed, 119 insertions(+), 227 deletions(-) diff --git a/lbh15/_lbh15.py b/lbh15/_lbh15.py index 4adb2ee..03598e6 100644 --- a/lbh15/_lbh15.py +++ b/lbh15/_lbh15.py @@ -13,6 +13,7 @@ from typing import List from typing import Tuple from typing import Union +import numpy as np from scipy.constants import atm from scipy.optimize import fsolve from .properties.interface import PropertyInterface @@ -232,6 +233,8 @@ def check_temperature(self, T: float) -> Tuple[bool, str]: to the temperature check """ # Manage acceptable value + if np.isnan(T): + return True, "" if self.T_m0 < T < self.T_b0: return True, "" # Manage value outside the acceptable range @@ -423,6 +426,15 @@ def __compute_T(self, input_value: float, input_property: str) -> float: f"{input_property}! The temperature " "value can not be computed!") + # Check if the correlation is constant + range_of_function = self.__properties[input_property].range + test_value = function_of_T(range_of_function[0], self.__p) + if np.allclose(function_of_T(np.linspace(range_of_function[0] + 1, + range_of_function[1], 5), + self.__p), test_value, + atol=1e-25): + return float('nan') + def function_to_solve(T: float, target: float) -> float: return function_of_T(T, self.__p) - target @@ -442,9 +454,12 @@ def function_to_solve(T: float, target: float) -> float: index = (self._roots_to_use[input_property] if input_property in self._roots_to_use else 0) res, _, ier, msg = fsolve(function_to_solve, - x0=[self._guess, 3*self._guess], + x0=[k*self._guess for k in + self.__properties[input_property] + .guess_helper()], args=(input_value), xtol=1e-10, full_output=True) + # Raise an exception in case the solver did not converge if ier == 0: raise RuntimeError(f"Error: {msg}\n" diff --git a/lbh15/lead.py b/lbh15/lead.py index 9fc2839..0f70938 100644 --- a/lbh15/lead.py +++ b/lbh15/lead.py @@ -95,7 +95,7 @@ class Lead(LiquidMetalInterface): 'lim_cr': "gosse2014", 'P_PbI2': 'knacke1991', 'K_PbI2': 'knacke1991'} _correlations_to_use: Dict[str, str] = copy.deepcopy(_default_corr_to_use) - _roots_to_use: Dict[str, int] = {'cp': 0} + _roots_to_use: Dict[str, int] = {'cp': 0, 'P_PbI2': 0, 'K_PbI2': 0} _custom_properties_path: Dict[str, List[str]] = {} _available_properties_dict: Dict[str, PropertyInterface] = {} _available_correlations_dict: Dict[str, List[str]] = {} diff --git a/lbh15/properties/interface.py b/lbh15/properties/interface.py index 92e16ff..97de540 100644 --- a/lbh15/properties/interface.py +++ b/lbh15/properties/interface.py @@ -108,6 +108,18 @@ def initialization_helper(self, """ return None + def guess_helper(self) -> Union[List[float], None]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Returns + ------- + None + """ + return None + def info(self, T: float, p: float = atm, print_info: bool = True, n_tab: int = 0) -> Union[None, str]: """ diff --git a/lbh15/properties/lead_properties.py b/lbh15/properties/lead_properties.py index 637a247..b6ba31e 100644 --- a/lbh15/properties/lead_properties.py +++ b/lbh15/properties/lead_properties.py @@ -391,6 +391,19 @@ def correlation(self, T: float, p: float = atm, """ return 176.2 - T * (4.923e-2 - 1.544e-5 * T) - 1.524e6 / T / T + def guess_helper(self) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Returns + ------- + List[float]: + Temperature initial guess' coefficient + """ + return [1, 3] + @property def correlation_name(self) -> str: """ @@ -445,6 +458,19 @@ def correlation(self, T: float, p: float = atm, return 175.1 - T * (4.961e-2 - T * (1.985e-5 - 2.099e-9 * T))\ - 1.524e6 / T / T + def guess_helper(self) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Returns + ------- + List[float]: + Temperature initial guess' coefficient + """ + return [1, 3] + @property def correlation_name(self) -> str: """ diff --git a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py index c16e5c6..7c29ee7 100644 --- a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py +++ b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py @@ -226,7 +226,7 @@ def range(self) -> List[float]: class LeadIodineVapourPressureInterface(PropertyInterface): """ - Liquid lead *PbI2 Iodine compound vapour pressure* + Liquid lead *PbI2 Iodine compound vapour pressure* abstract class. """ @property @@ -334,6 +334,27 @@ def correlation(self, T: float, p: float = atm, """ return np.power(10, - 9087 / T - 6.16 * np.log(T) + 31.897) + def guess_helper(self) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Returns + ------- + List[float]: + Temperature initial guess' coefficient + """ + return [1.14, 1.85] + + @property + def is_injective(self) -> bool: + """ + bool : `True` if the correlation is injective, + `False` otherwise. + """ + return False + @property def correlation_name(self) -> str: """ @@ -527,6 +548,27 @@ def correlation(self, T: float, p: float = atm, """ return LeadIodineVapourPressureKnacke1991().correlation(T, p) + def guess_helper(self) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Returns + ------- + List[float]: + Temperature initial guess' coefficient + """ + return [1.14, 1.85] + + @property + def is_injective(self) -> bool: + """ + bool : `True` if the correlation is injective, + `False` otherwise. + """ + return False + @property def correlation_name(self) -> str: """ diff --git a/tests/properties_bounds.json b/tests/properties_bounds.json index 27337a7..769f15f 100644 --- a/tests/properties_bounds.json +++ b/tests/properties_bounds.json @@ -748,119 +748,5 @@ "T_at_min": 673.00001951, "max": 0.0, "T_at_max": 999.9999743571 - }, - "P_PbPo_vapour_pressure_polonium_in_pure_lead_abakumov1994a": { - "min": 12.50949761, - "T_at_min": 913.0, - "max": 385.7171263, - "T_at_max": 1123.0 - }, - "K_PbPo_Henry_constant_polonium_in_pure_lead_ohno2006": { - "min": 0.0975810043, - "T_at_min": 723.0, - "max": 237.3488843, - "T_at_max": 1023.0 - }, - "gamma_PbPo_activity_coefficient_polonium_in_pure_lead_li1998": { - "min": 5.56014098e-04, - "T_at_min": 641.0, - "max": 3.260925936e-03, - "T_at_max": 877.0 - }, - "P_PbI2_a_vapour_pressure_iodine_in_pure_lead_konings1994": { - "min": 0.2205314482, - "T_at_min": 600.6, - "max": 22.1231256, - "T_at_max": 697.0 - }, - "P_PbI2_b_vapour_pressure_iodine_in_pure_lead_knacke1991": { - "min": 22.22643369, - "T_at_min": 697.1, - "max": 10927294.32, - "T_at_max": 2021.1 - }, - "K_PbCs_Henry_constant_caesium_in_pure_lead_yamshchikov2001": { - "min": 1459.135758, - "T_at_min": 643.0, - "max": 92099.30974, - "T_at_max": 933.0 - }, - "P_PbCs_vapour_pressure_caesium_in_pure_lead_yamshchikov2001": { - "min": 46.14192411, - "T_at_min": 643.0, - "max": 2912.435897, - "T_at_max": 933.0 - }, - "gamma_BiPo_activity_coefficient_polonium_in_pure_bismuth_joy1963": { - "min": 9.73127729e-04, - "T_at_min": 723.0, - "max": 0.01281812195, - "T_at_max": 1123.0 - }, - "P_BiI3_a_vapour_pressure_iodine_in_pure_bismuth_cubicciotti1959": { - "min": 237.6482557, - "T_at_min": 544.6, - "max": 86316740.09, - "T_at_max": 1831.0 - }, - "K_LBEPo_Henry_constant_polonium_in_lbe_ohno2006": { - "min": 0.0975810043, - "T_at_min": 723.0, - "max": 237.3488843, - "T_at_max": 1023.0 - }, - "K_LBEHg_Henry_constant_mercury_in_lbe_landolt1991": { - "min": 92762.77782, - "T_at_min": 625.0, - "max": 143068636, - "T_at_max": 1927.0 - }, - "K_LBECd_Henry_constant_cadmium_in_lbe_landolt1991": { - "min": 1.604947514e-03, - "T_at_min": 398.0, - "max": 70249774.72, - "T_at_max": 1927.0 - }, - "P_LBECd_vapour_pressure_cadmium_in_lbe_landolt1991": { - "min": 4.01236878e-04, - "T_at_min": 398.0, - "max": 17562443.68, - "T_at_max": 1927.0 - }, - "K_LBETl_Henry_constant_thallium_in_lbe_landolt1991": { - "min": 1.47408454e-13, - "T_at_min": 398.0, - "max": 264937.4942, - "T_at_max": 1927.0 - }, - "P_LBETl_vapour_pressure_thallium_in_lbe_landolt1991": { - "min": 5.01546098e-04, - "T_at_min": 398.0, - "max": 21953054.6, - "T_at_max": 1927.0 - }, - "K_LBEI_Henry_constant_iodine_in_lbe_neuheusen2005": { - "min": 2.58082641e-12, - "T_at_min": 398.0, - "max": 1.44336866e09, - "T_at_max": 1927.0 - }, - "gamma_LBECs_activity_coefficient_caesium_in_lbe_ohno2006": { - "min": 1.115249561e-03, - "T_at_min": 723.0, - "max": 1.358897519e-02, - "T_at_max": 1023.0 - }, - "P_LBERb_a_vapour_pressure_rubidium_in_lbe_landolt1960": { - "min": 6.494285163e-02, - "T_at_min": 398.0, - "max": 9247376.837, - "T_at_max": 1927.0 - }, - "P_LBERb_b_vapour_pressure_rubidium_in_lbe_handbook": { - "min": 1.295780245e-03, - "T_at_min": 398.0, - "max": 184509.4251, - "T_at_max": 1927.0 - } + } } \ No newline at end of file diff --git a/tests/test_bismuth_fromX_spanT.py b/tests/test_bismuth_fromX_spanT.py index 5b620bb..f547b4f 100644 --- a/tests/test_bismuth_fromX_spanT.py +++ b/tests/test_bismuth_fromX_spanT.py @@ -84,18 +84,6 @@ def test_init_fromX(self): fromX = Bismuth(**init_dict) self.assertAlmostEqual(bismuthP.T, fromX.T, tol, name+" FAILED") -class BismuthContaminationTester(unittest.TestCase): - - def test_init_fromX(self): - for bismuthP in bismuthPs: - properties = load_prop('lbh15.properties.bismuth_thermochemical_properties.bismuth_contamination') - for prop in properties: - name = prop.name - val = getattr(bismuthP, name) - init_dict = {name: val} - fromX = Bismuth(**init_dict) - self.assertAlmostEqual(bismuthP.T, fromX.T, tol, - name+" FAILED") if __name__ == "__main__": unittest.main() diff --git a/tests/test_lbe_fromX_spanT.py b/tests/test_lbe_fromX_spanT.py index 4855329..e1ab062 100644 --- a/tests/test_lbe_fromX_spanT.py +++ b/tests/test_lbe_fromX_spanT.py @@ -96,18 +96,6 @@ def test_init_fromX(self): fromX = LBE(**init_dict) self.assertAlmostEqual(lbeP.T, fromX.T, tol, name+" FAILED") -class LBEContaminationTester(unittest.TestCase): - - def test_init_fromX(self): - for lbeP in lbePs: - properties = load_prop('lbh15.properties.lbe_thermochemical_properties.lbe_contamination') - for prop in properties: - name = prop.name - val = getattr(lbeP, name) - init_dict = {name: val} - fromX = LBE(**init_dict) - self.assertAlmostEqual(lbeP.T, fromX.T, tol, - name+" FAILED") if __name__ == "__main__": unittest.main() diff --git a/tests/test_lbh15_bounds.py b/tests/test_lbh15_bounds.py index 52ad0ee..a3228f5 100644 --- a/tests/test_lbh15_bounds.py +++ b/tests/test_lbh15_bounds.py @@ -440,89 +440,6 @@ def test_T_at_max(self): val, key = get_val(prop, "T_at_max") self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") -class LeadContaminationTester(unittest.TestCase): - - properties = load_prop('lbh15.properties.lead_thermochemical_properties.lead_contamination') - - def test_min(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "min") - self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") - - def test_T_at_min(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "T_at_min") - self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") - - def test_max(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "max") - self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") - - def test_T_at_max(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "T_at_max") - self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") - -class BismuthContaminationTester(unittest.TestCase): - - properties = load_prop('lbh15.properties.bismuth_thermochemical_properties.bismuth_contamination') - - def test_min(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "min") - self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") - - def test_T_at_min(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "T_at_min") - self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") - - def test_max(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "max") - self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") - - def test_T_at_max(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "T_at_max") - self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") - -class LBEContaminationTester(unittest.TestCase): - - properties = load_prop('lbh15.properties.lbe_thermochemical_properties.lbe_contamination') - - def test_min(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "min") - self.assertAlmostEqual(val, prop.min, tol, key+" FAILED") - - def test_T_at_min(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "T_at_min") - self.assertAlmostEqual(val, prop.T_at_min, tol, key+" FAILED") - - def test_max(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "max") - self.assertAlmostEqual(val, prop.max, tol, key+" FAILED") - - def test_T_at_max(self): - for prop in self.properties: - prop.compute_bounds() - val, key = get_val(prop, "T_at_max") - self.assertAlmostEqual(val, prop.T_at_max, tol, key+" FAILED") if __name__ == "__main__": unittest.main() diff --git a/tests/test_lead_fromX_spanT.py b/tests/test_lead_fromX_spanT.py index 8c38fbd..a25525d 100644 --- a/tests/test_lead_fromX_spanT.py +++ b/tests/test_lead_fromX_spanT.py @@ -3,10 +3,12 @@ import sys import os import inspect +import numpy as np sys.path.insert(0, os.path.abspath('..')) from lbh15.properties.interface import PropertyInterface from lbh15 import Lead from lbh15 import lead_properties +from lbh15 import lead_contamination from scipy.constants import convert_temperature @@ -30,14 +32,19 @@ def is_valid(obj): for T in Ts: leadPs.append(Lead(T=T)) -# Compute temperature discriminants for cp root index identification +# Compute temperature discriminants for cp, P_PbI2 and K_PbI2 root index identification cp_sobolev2011 = lead_properties.cp_sobolev2011() cp_sobolev2011.compute_bounds() T_change_sobolev2011 = cp_sobolev2011.T_at_min cp_gurvich1991 = lead_properties.cp_gurvich1991() cp_gurvich1991.compute_bounds() T_change_gurvich1991 = cp_gurvich1991.T_at_min - +P_PbI2 = lead_contamination.LeadIodineVapourPressureKnacke1991() +P_PbI2.compute_bounds() +T_change_P_PbI2 = P_PbI2.T_at_max +K_PbI2 = lead_contamination.LeadIodineHenryConstantKnacke1991() +K_PbI2.compute_bounds() +T_change_K_PbI2 = K_PbI2.T_at_max class LeadTester(unittest.TestCase): @@ -117,9 +124,20 @@ def test_init_fromX(self): properties = load_prop('lbh15.properties.lead_thermochemical_properties.lead_contamination') for prop in properties: name = prop.name + if name == 'P_PbI2' and\ + (prop.correlation_name == 'knacke1991'\ + and leadP.T > T_change_P_PbI2): + Lead.set_root_to_use('P_PbI2', 1) + if name == 'K_PbI2' and\ + (prop.correlation_name == 'knacke1991'\ + and leadP.T > T_change_K_PbI2): + Lead.set_root_to_use('K_PbI2', 1) val = getattr(leadP, name) init_dict = {name: val} fromX = Lead(**init_dict) + if np.isnan(fromX.T): + print(f"Test passed for {name} because it is a constant.") + continue self.assertAlmostEqual(leadP.T, fromX.T, tol, name+" FAILED") if __name__ == "__main__": From 5fa7319eb5eea2d53b749e246fa33da66fbba259 Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Tue, 27 Aug 2024 14:43:29 +0200 Subject: [PATCH 08/22] [189_contamination_tests], issue #189, Second try of commit (see commit 6ec7db2 in Actions on the github repository), correction of docstrings. --- lbh15/properties/lead_properties.py | 4 ++-- .../lead_thermochemical_properties/lead_contamination.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lbh15/properties/lead_properties.py b/lbh15/properties/lead_properties.py index b6ba31e..2f964c2 100644 --- a/lbh15/properties/lead_properties.py +++ b/lbh15/properties/lead_properties.py @@ -400,7 +400,7 @@ def guess_helper(self) -> List[float]: Returns ------- List[float]: - Temperature initial guess' coefficient + Temperature initial guess' coefficients """ return [1, 3] @@ -467,7 +467,7 @@ def guess_helper(self) -> List[float]: Returns ------- List[float]: - Temperature initial guess' coefficient + Temperature initial guess' coefficients """ return [1, 3] diff --git a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py index 7c29ee7..acaf9b8 100644 --- a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py +++ b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py @@ -343,7 +343,7 @@ def guess_helper(self) -> List[float]: Returns ------- List[float]: - Temperature initial guess' coefficient + Temperature initial guess' coefficients """ return [1.14, 1.85] @@ -557,7 +557,7 @@ def guess_helper(self) -> List[float]: Returns ------- List[float]: - Temperature initial guess' coefficient + Temperature initial guess' coefficients """ return [1.14, 1.85] From 59389768a38c6fc6a7cdce8f6ae6764029e3c88d Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Tue, 27 Aug 2024 15:35:40 +0200 Subject: [PATCH 09/22] [190_contamination_tests_bismuth], issue #190, Implementation in test_bismuth_fromX_spanT of BismuthContaminationTester method. New implementations in _lbh15.py and test_bismuth_fromX_spanT to handle the case of constant correlations. Implementation of guess_helper for cp in bismuth_properties.py. guess_helper method introduced also in interface.py. --- lbh15/_lbh15.py | 16 +++++++++++++++- lbh15/properties/bismuth_properties.py | 13 +++++++++++++ lbh15/properties/interface.py | 12 ++++++++++++ tests/test_bismuth_fromX_spanT.py | 15 +++++++++++++++ 4 files changed, 55 insertions(+), 1 deletion(-) diff --git a/lbh15/_lbh15.py b/lbh15/_lbh15.py index 4adb2ee..07ec71f 100644 --- a/lbh15/_lbh15.py +++ b/lbh15/_lbh15.py @@ -13,6 +13,7 @@ from typing import List from typing import Tuple from typing import Union +import numpy as np from scipy.constants import atm from scipy.optimize import fsolve from .properties.interface import PropertyInterface @@ -232,6 +233,8 @@ def check_temperature(self, T: float) -> Tuple[bool, str]: to the temperature check """ # Manage acceptable value + if np.isnan(T): + return True, "" if self.T_m0 < T < self.T_b0: return True, "" # Manage value outside the acceptable range @@ -423,6 +426,15 @@ def __compute_T(self, input_value: float, input_property: str) -> float: f"{input_property}! The temperature " "value can not be computed!") + # Check if the correlation is constant + range_of_function = self.__properties[input_property].range + test_value = function_of_T(range_of_function[0], self.__p) + if np.allclose(function_of_T(np.linspace(range_of_function[0] + 1, + range_of_function[1], 5), + self.__p), test_value, + atol=1e-25): + return float('nan') + def function_to_solve(T: float, target: float) -> float: return function_of_T(T, self.__p) - target @@ -442,7 +454,9 @@ def function_to_solve(T: float, target: float) -> float: index = (self._roots_to_use[input_property] if input_property in self._roots_to_use else 0) res, _, ier, msg = fsolve(function_to_solve, - x0=[self._guess, 3*self._guess], + x0=[k*self._guess for k in + self.__properties[input_property] + .guess_helper()], args=(input_value), xtol=1e-10, full_output=True) # Raise an exception in case the solver did not converge diff --git a/lbh15/properties/bismuth_properties.py b/lbh15/properties/bismuth_properties.py index f424062..29204e3 100644 --- a/lbh15/properties/bismuth_properties.py +++ b/lbh15/properties/bismuth_properties.py @@ -382,6 +382,18 @@ def correlation(self, T: float, p: float = atm, """ return 118.2 + 5.934e-3*T + 7.183e6/T/T + def guess_helper(self) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + return [1, 3] + @property def correlation_name(self) -> str: """ @@ -607,3 +619,4 @@ def description(self) -> str: str : Thermal conductivity description """ return f"Liquid bismuth {self.long_name}" + \ No newline at end of file diff --git a/lbh15/properties/interface.py b/lbh15/properties/interface.py index 92e16ff..97de540 100644 --- a/lbh15/properties/interface.py +++ b/lbh15/properties/interface.py @@ -108,6 +108,18 @@ def initialization_helper(self, """ return None + def guess_helper(self) -> Union[List[float], None]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Returns + ------- + None + """ + return None + def info(self, T: float, p: float = atm, print_info: bool = True, n_tab: int = 0) -> Union[None, str]: """ diff --git a/tests/test_bismuth_fromX_spanT.py b/tests/test_bismuth_fromX_spanT.py index f547b4f..6135d3b 100644 --- a/tests/test_bismuth_fromX_spanT.py +++ b/tests/test_bismuth_fromX_spanT.py @@ -84,6 +84,21 @@ def test_init_fromX(self): fromX = Bismuth(**init_dict) self.assertAlmostEqual(bismuthP.T, fromX.T, tol, name+" FAILED") +class BismuthContaminationTester(unittest.TestCase): + + def test_init_fromX(self): + for bismuthP in bismuthPs: + properties = load_prop('lbh15.properties.bismuth_thermochemical_properties.bismuth_contamination') + for prop in properties: + name = prop.name + val = getattr(bismuthP, name) + init_dict = {name: val} + fromX = Bismuth(**init_dict) + if np.isnan(fromX.T): + print(f"Test passed for {name} because it is a constant.") + continue + self.assertAlmostEqual(bismuthP.T, fromX.T, tol, + name+" FAILED") if __name__ == "__main__": unittest.main() From aa3fdcaddf66529562da04a4878c5b825bd8705d Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Tue, 27 Aug 2024 15:42:48 +0200 Subject: [PATCH 10/22] [190_contamination_tests_bismuth], issue #190, Implementation of guess_helper in cp_sobolev2011 and cp_gurvich1991 accordingly to the changes made in _lbh15.py, as it was made in branch 189. --- lbh15/properties/bismuth_properties.py | 1 + lbh15/properties/lead_properties.py | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lbh15/properties/bismuth_properties.py b/lbh15/properties/bismuth_properties.py index 29204e3..f4786de 100644 --- a/lbh15/properties/bismuth_properties.py +++ b/lbh15/properties/bismuth_properties.py @@ -387,6 +387,7 @@ def guess_helper(self) -> List[float]: Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + Returns ------- List[float]: diff --git a/lbh15/properties/lead_properties.py b/lbh15/properties/lead_properties.py index 637a247..8419a30 100644 --- a/lbh15/properties/lead_properties.py +++ b/lbh15/properties/lead_properties.py @@ -391,6 +391,19 @@ def correlation(self, T: float, p: float = atm, """ return 176.2 - T * (4.923e-2 - 1.544e-5 * T) - 1.524e6 / T / T + def guess_helper(self) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + return [1, 3] + @property def correlation_name(self) -> str: """ @@ -445,6 +458,19 @@ def correlation(self, T: float, p: float = atm, return 175.1 - T * (4.961e-2 - T * (1.985e-5 - 2.099e-9 * T))\ - 1.524e6 / T / T + def guess_helper(self) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + return [1, 3] + @property def correlation_name(self) -> str: """ From a8cbf02ff8ef8c367a326ca4558ac68806226054 Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Wed, 28 Aug 2024 12:27:02 +0200 Subject: [PATCH 11/22] [191_contamination_tests_lbe], issue #191, Implementation of LBEContaminationTester in test_lbe_fromX_spanT. Implementation of guess_helper method in interface.py. Implementation of guess_helper method for non injective correlation in lbe_properties.py, bismuth_properties.py, lead_properties.py and lbe_contamination.py. Implementation of initialization_helper method in lbe_contamination.py to help pass the test. Implementation in _lbh15.py of method to handle constant correlation and non injective correlation. --- lbh15/_lbh15.py | 16 +- lbh15/lbe.py | 2 +- lbh15/properties/bismuth_properties.py | 18 ++ lbh15/properties/interface.py | 18 ++ lbh15/properties/lbe_properties.py | 18 ++ .../lbe_contamination.py | 158 +++++++++++++++++- lbh15/properties/lead_properties.py | 36 ++++ tests/test_lbe_fromX_spanT.py | 33 ++++ 8 files changed, 296 insertions(+), 3 deletions(-) diff --git a/lbh15/_lbh15.py b/lbh15/_lbh15.py index 4adb2ee..72ce5a4 100644 --- a/lbh15/_lbh15.py +++ b/lbh15/_lbh15.py @@ -13,6 +13,7 @@ from typing import List from typing import Tuple from typing import Union +import numpy as np from scipy.constants import atm from scipy.optimize import fsolve from .properties.interface import PropertyInterface @@ -232,6 +233,8 @@ def check_temperature(self, T: float) -> Tuple[bool, str]: to the temperature check """ # Manage acceptable value + if np.isnan(T): + return True, "" if self.T_m0 < T < self.T_b0: return True, "" # Manage value outside the acceptable range @@ -423,6 +426,15 @@ def __compute_T(self, input_value: float, input_property: str) -> float: f"{input_property}! The temperature " "value can not be computed!") + # Check if the correlation is constant + range_of_function = self.__properties[input_property].range + test_value = function_of_T(range_of_function[0], self.__p) + if np.allclose(function_of_T(np.linspace(range_of_function[0] + 1, + range_of_function[1], 5), + self.__p), test_value, + atol=1e-25): + return float('nan') + def function_to_solve(T: float, target: float) -> float: return function_of_T(T, self.__p) - target @@ -442,7 +454,9 @@ def function_to_solve(T: float, target: float) -> float: index = (self._roots_to_use[input_property] if input_property in self._roots_to_use else 0) res, _, ier, msg = fsolve(function_to_solve, - x0=[self._guess, 3*self._guess], + x0=[k*self._guess for k in + self.__properties[input_property] + .guess_helper(input_value)], args=(input_value), xtol=1e-10, full_output=True) # Raise an exception in case the solver did not converge diff --git a/lbh15/lbe.py b/lbh15/lbe.py index f477d21..24f39a8 100644 --- a/lbh15/lbe.py +++ b/lbh15/lbe.py @@ -85,7 +85,7 @@ class LBE(LiquidMetalInterface): 'gamma_Po': 'ohno2006', 'P_PbI2': 'knacke1991', 'K_PbI2': 'knacke1991', 'gamma_Cs': 'lbh15'} _correlations_to_use: Dict[str, str] = copy.deepcopy(_default_corr_to_use) - _roots_to_use: Dict[str, int] = {'cp': 0} + _roots_to_use: Dict[str, int] = {'cp': 0, 'P_PbI2': 0, 'K_PbI2': 0} _custom_properties_path: Dict[str, List[str]] = {} _available_properties_dict: Dict[str, PropertyInterface] = {} _available_correlations_dict: Dict[str, List[str]] = {} diff --git a/lbh15/properties/bismuth_properties.py b/lbh15/properties/bismuth_properties.py index f424062..24a0c07 100644 --- a/lbh15/properties/bismuth_properties.py +++ b/lbh15/properties/bismuth_properties.py @@ -382,6 +382,24 @@ def correlation(self, T: float, p: float = atm, """ return 118.2 + 5.934e-3*T + 7.183e6/T/T + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + return [1, 3] + @property def correlation_name(self) -> str: """ diff --git a/lbh15/properties/interface.py b/lbh15/properties/interface.py index 92e16ff..7448297 100644 --- a/lbh15/properties/interface.py +++ b/lbh15/properties/interface.py @@ -108,6 +108,24 @@ def initialization_helper(self, """ return None + def guess_helper(self, + property_value: float) -> Union[List[float], None]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the property + + Returns + ------- + None + """ + return None + def info(self, T: float, p: float = atm, print_info: bool = True, n_tab: int = 0) -> Union[None, str]: """ diff --git a/lbh15/properties/lbe_properties.py b/lbh15/properties/lbe_properties.py index 59ddbc4..13120d7 100644 --- a/lbh15/properties/lbe_properties.py +++ b/lbh15/properties/lbe_properties.py @@ -371,6 +371,24 @@ def correlation(self, T: float, p: float = atm, """ return 164.8 - T * (3.94e-2 - 1.25e-5 * T) - 4.56e5 / T / T + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + return [1, 3] + @property def correlation_name(self) -> str: """ diff --git a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py index fb5657c..7325470 100644 --- a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py +++ b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py @@ -1,6 +1,6 @@ """Module with the definition of some coumpounds properties for contamination assessment""" -from typing import List +from typing import List, Union import numpy as np from scipy.constants import atm from ..interface import PropertyInterface @@ -74,6 +74,26 @@ def correlation(self, T: float, p: float = atm, """ return np.power(10, - 8348 / T + 10.5357) + def initialization_helper(self, + property_value: float) -> Union[None, float]: + """ + Returns the temperature guess value according to the value + of Henry constant of Polonium in liquid LBE. + It is used by the root finder algorithm. + + Parameters + ---------- + property_value : float + Polonium Henry constant value in :math:`[Pa]` + + Returns + ------- + float + Temperature guess value in :math:`[K]` + """ + if property_value > 235: + return 1200 + @property def name(self) -> str: """ @@ -573,6 +593,26 @@ def correlation(self, T: float, p: float = atm, """ return np.power(10, - 9463 / T - 0.892 * np.log(T) + 13.264) + def initialization_helper(self, + property_value: float) -> Union[None, float]: + """ + Returns the temperature guess value according to the value + of Henry constant of Thallium in liquid LBE. + It is used by the root finder algorithm. + + Parameters + ---------- + property_value : float + Thallium Henry constant value in :math:`[Pa]` + + Returns + ------- + float + Temperature guess value in :math:`[K]` + """ + if property_value > 0.02: + return 1200 + @property def name(self) -> str: """ @@ -789,6 +829,34 @@ def correlation(self, T: float, p: float = atm, """ return LeadIodineVapourPressureKnacke1991().correlation(T, p) + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the pressure in :math:`[Pa]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + if property_value > 3.5e-20: + return [1.14, 1.65] + return [1, 1] + + @property + def is_injective(self) -> bool: + """ + bool : `True` if the correlation is injective, + `False` otherwise. + """ + return False + @property def correlation_name(self) -> str: """ @@ -982,6 +1050,34 @@ def correlation(self, T: float, p: float = atm, """ return LBEIodineVapourPressureKnacke1991().correlation(T, p) + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the pressure in :math:`[Pa]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + if property_value > 3.5e-20: + return [1.14, 1.65] + return [1, 1] + + @property + def is_injective(self) -> bool: + """ + bool : `True` if the correlation is injective, + `False` otherwise. + """ + return False + @property def correlation_name(self) -> str: """ @@ -1028,6 +1124,26 @@ def correlation(self, T: float, p: float = atm, """ return np.power(10, - 10407 / T + 14.56) + def initialization_helper(self, + property_value: float) -> Union[None, float]: + """ + Returns the temperature guess value according to the value + of Henry constant of Iodine in liquid LBE. + It is used by the root finder algorithm. + + Parameters + ---------- + property_value : float + Iodine Henry constant value in :math:`[Pa]` + + Returns + ------- + float + Temperature guess value in :math:`[K]` + """ + if property_value > 1.8e+5: + return 1500 + @property def name(self) -> str: """ @@ -1283,6 +1399,26 @@ def correlation(self, T: float, p: float = atm, """ return np.power(10, - 4588 / T - 1.45 * np.log(T) + 14.110) + def initialization_helper(self, + property_value: float) -> Union[None, float]: + """ + Returns the temperature guess value according to the value + of vapoure pressure of Rubidium in liquid LBE. + It is used by the root finder algorithm. + + Parameters + ---------- + property_value : float + Rubidium vapour pressure value in :math:`[Pa]` + + Returns + ------- + float + Temperature guess value in :math:`[K]` + """ + if property_value > 0.1: + return 1900 + @property def name(self) -> str: """ @@ -1428,6 +1564,26 @@ def correlation(self, T: float, p: float = atm, .correlation(T, p) * LBERubidiumActivityCoefficient()\ .correlation(T, p) + def initialization_helper(self, + property_value: float) -> Union[None, float]: + """ + Returns the temperature guess value according to the value + of Henry constant of Rubidium in liquid LBE. + It is used by the root finder algorithm. + + Parameters + ---------- + property_value : float + Rubidium Henry constant value in :math:`[Pa]` + + Returns + ------- + float + Temperature guess value in :math:`[K]` + """ + if property_value > 0.1: + return 1900 + @property def name(self) -> str: """ diff --git a/lbh15/properties/lead_properties.py b/lbh15/properties/lead_properties.py index 637a247..b9097db 100644 --- a/lbh15/properties/lead_properties.py +++ b/lbh15/properties/lead_properties.py @@ -391,6 +391,24 @@ def correlation(self, T: float, p: float = atm, """ return 176.2 - T * (4.923e-2 - 1.544e-5 * T) - 1.524e6 / T / T + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + return [1, 3] + @property def correlation_name(self) -> str: """ @@ -445,6 +463,24 @@ def correlation(self, T: float, p: float = atm, return 175.1 - T * (4.961e-2 - T * (1.985e-5 - 2.099e-9 * T))\ - 1.524e6 / T / T + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + return [1, 3] + @property def correlation_name(self) -> str: """ diff --git a/tests/test_lbe_fromX_spanT.py b/tests/test_lbe_fromX_spanT.py index e1ab062..d9a6a4e 100644 --- a/tests/test_lbe_fromX_spanT.py +++ b/tests/test_lbe_fromX_spanT.py @@ -3,9 +3,11 @@ import sys import os import inspect +import numpy as np sys.path.insert(0, os.path.abspath('..')) from lbh15.properties.interface import PropertyInterface from lbh15 import LBE +from lbh15 import lead_contamination from scipy.constants import convert_temperature @@ -29,6 +31,13 @@ def is_valid(obj): for T in Ts: lbePs.append(LBE(T=T)) +# Compute temperature discriminants for P_PbI2 and K_PbI2 root index identification +P_PbI2 = lead_contamination.LeadIodineVapourPressureKnacke1991() +P_PbI2.compute_bounds() +T_change_P_PbI2 = P_PbI2.T_at_max +K_PbI2 = lead_contamination.LeadIodineHenryConstantKnacke1991() +K_PbI2.compute_bounds() +T_change_K_PbI2 = K_PbI2.T_at_max class LBETester(unittest.TestCase): @@ -96,6 +105,30 @@ def test_init_fromX(self): fromX = LBE(**init_dict) self.assertAlmostEqual(lbeP.T, fromX.T, tol, name+" FAILED") +class LBEContaminationTester(unittest.TestCase): + + def test_init_fromX(self): + for lbeP in lbePs: + properties = load_prop('lbh15.properties.lbe_thermochemical_properties.lbe_contamination') + for prop in properties: + name = prop.name + if name == 'P_PbI2' and\ + (prop.correlation_name == 'knacke1991'\ + and lbeP.T > T_change_P_PbI2): + LBE.set_root_to_use('P_PbI2', 1) + if name == 'K_PbI2' and\ + (prop.correlation_name == 'knacke1991'\ + and lbeP.T > T_change_K_PbI2): + LBE.set_root_to_use('K_PbI2', 1) + val = getattr(lbeP, name) + init_dict = {name: val} + fromX = LBE(**init_dict) + if np.isnan(fromX.T): + print(f"Test passed for {name} because it is a constant.") + continue + self.assertAlmostEqual(lbeP.T, fromX.T, tol, + name+" FAILED") + if __name__ == "__main__": unittest.main() From 67d6f174b38592110ff47a15c57b653c54af328b Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Wed, 28 Aug 2024 12:40:26 +0200 Subject: [PATCH 12/22] [189_contamination_tests], issue #189, Addition of property_value as a additional entry of guess_helper method for coherence with the changes made on the issue 191. Implementation in _lbh15.py, lead_properties.py and lead_contamination.py accordingly to this change. --- lbh15/_lbh15.py | 2 +- lbh15/properties/interface.py | 8 +++++++- lbh15/properties/lead_properties.py | 14 ++++++++++++-- .../lead_contamination.py | 14 ++++++++++++-- 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/lbh15/_lbh15.py b/lbh15/_lbh15.py index 03598e6..957cbd6 100644 --- a/lbh15/_lbh15.py +++ b/lbh15/_lbh15.py @@ -456,7 +456,7 @@ def function_to_solve(T: float, target: float) -> float: res, _, ier, msg = fsolve(function_to_solve, x0=[k*self._guess for k in self.__properties[input_property] - .guess_helper()], + .guess_helper(input_value)], args=(input_value), xtol=1e-10, full_output=True) diff --git a/lbh15/properties/interface.py b/lbh15/properties/interface.py index 97de540..7448297 100644 --- a/lbh15/properties/interface.py +++ b/lbh15/properties/interface.py @@ -108,12 +108,18 @@ def initialization_helper(self, """ return None - def guess_helper(self) -> Union[List[float], None]: + def guess_helper(self, + property_value: float) -> Union[List[float], None]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + Parameters + ---------- + property_value : float + value of the property + Returns ------- None diff --git a/lbh15/properties/lead_properties.py b/lbh15/properties/lead_properties.py index 2f964c2..b9097db 100644 --- a/lbh15/properties/lead_properties.py +++ b/lbh15/properties/lead_properties.py @@ -391,12 +391,17 @@ def correlation(self, T: float, p: float = atm, """ return 176.2 - T * (4.923e-2 - 1.544e-5 * T) - 1.524e6 / T / T - def guess_helper(self) -> List[float]: + def guess_helper(self, property_value: float) -> List[float]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]` + Returns ------- List[float]: @@ -458,12 +463,17 @@ def correlation(self, T: float, p: float = atm, return 175.1 - T * (4.961e-2 - T * (1.985e-5 - 2.099e-9 * T))\ - 1.524e6 / T / T - def guess_helper(self) -> List[float]: + def guess_helper(self, property_value: float) -> List[float]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]` + Returns ------- List[float]: diff --git a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py index acaf9b8..284f1c3 100644 --- a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py +++ b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py @@ -334,12 +334,17 @@ def correlation(self, T: float, p: float = atm, """ return np.power(10, - 9087 / T - 6.16 * np.log(T) + 31.897) - def guess_helper(self) -> List[float]: + def guess_helper(self, property_value: float) -> List[float]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + Parameters + ---------- + property_value : float + value of the pressure in :math:`[Pa]` + Returns ------- List[float]: @@ -548,12 +553,17 @@ def correlation(self, T: float, p: float = atm, """ return LeadIodineVapourPressureKnacke1991().correlation(T, p) - def guess_helper(self) -> List[float]: + def guess_helper(self, property_value: float) -> List[float]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + Parameters + ---------- + property_value : float + value of the pressure in :math:`[Pa]` + Returns ------- List[float]: From 106df06a4b48bf65833295b7247bf9b58787b22f Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Wed, 28 Aug 2024 12:49:47 +0200 Subject: [PATCH 13/22] [190_contamination_tests_bismuth], issue #190, Addition of property_value as an additional entry of guess_helper method for coherence with the changes made on the issue 191. Implementation in _lbh15.py, lead_properties.py and bismuth_properties.py accordingly to this change. --- lbh15/_lbh15.py | 2 +- lbh15/properties/bismuth_properties.py | 7 ++++++- lbh15/properties/interface.py | 8 +++++++- lbh15/properties/lead_properties.py | 14 ++++++++++++-- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lbh15/_lbh15.py b/lbh15/_lbh15.py index 07ec71f..72ce5a4 100644 --- a/lbh15/_lbh15.py +++ b/lbh15/_lbh15.py @@ -456,7 +456,7 @@ def function_to_solve(T: float, target: float) -> float: res, _, ier, msg = fsolve(function_to_solve, x0=[k*self._guess for k in self.__properties[input_property] - .guess_helper()], + .guess_helper(input_value)], args=(input_value), xtol=1e-10, full_output=True) # Raise an exception in case the solver did not converge diff --git a/lbh15/properties/bismuth_properties.py b/lbh15/properties/bismuth_properties.py index f4786de..2989ee6 100644 --- a/lbh15/properties/bismuth_properties.py +++ b/lbh15/properties/bismuth_properties.py @@ -382,11 +382,16 @@ def correlation(self, T: float, p: float = atm, """ return 118.2 + 5.934e-3*T + 7.183e6/T/T - def guess_helper(self) -> List[float]: + def guess_helper(self, property_value: float) -> List[float]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]` Returns ------- diff --git a/lbh15/properties/interface.py b/lbh15/properties/interface.py index 97de540..7448297 100644 --- a/lbh15/properties/interface.py +++ b/lbh15/properties/interface.py @@ -108,12 +108,18 @@ def initialization_helper(self, """ return None - def guess_helper(self) -> Union[List[float], None]: + def guess_helper(self, + property_value: float) -> Union[List[float], None]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + Parameters + ---------- + property_value : float + value of the property + Returns ------- None diff --git a/lbh15/properties/lead_properties.py b/lbh15/properties/lead_properties.py index 8419a30..31db879 100644 --- a/lbh15/properties/lead_properties.py +++ b/lbh15/properties/lead_properties.py @@ -391,12 +391,17 @@ def correlation(self, T: float, p: float = atm, """ return 176.2 - T * (4.923e-2 - 1.544e-5 * T) - 1.524e6 / T / T - def guess_helper(self) -> List[float]: + def guess_helper(self, property_value: float) -> List[float]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]`s + Returns ------- List[float]: @@ -458,11 +463,16 @@ def correlation(self, T: float, p: float = atm, return 175.1 - T * (4.961e-2 - T * (1.985e-5 - 2.099e-9 * T))\ - 1.524e6 / T / T - def guess_helper(self) -> List[float]: + def guess_helper(self, property_value: float) -> List[float]: """ Returns the coefficient values applied to the temperature initial guess if the correlation is non injective. The return type is `None` if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the specific heat capacity in :math:`[J/(kg \\cdot K)]` Returns ------- From 20d6dd1a1342d42212622373c52dea6873cae57e Mon Sep 17 00:00:00 2001 From: Gabriele Ottino Date: Wed, 28 Aug 2024 17:53:51 +0200 Subject: [PATCH 14/22] [188_contamination_tests_in_common], issue #188, Little mod to check automatic tests --- tests/test_lbh15_bounds.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_lbh15_bounds.py b/tests/test_lbh15_bounds.py index d3457b8..9127526 100644 --- a/tests/test_lbh15_bounds.py +++ b/tests/test_lbh15_bounds.py @@ -443,7 +443,8 @@ def test_T_at_max(self): class LeadContaminationTester(unittest.TestCase): - properties = load_prop('lbh15.properties.lead_thermochemical_properties.lead_contamination') + properties = load_prop( + 'lbh15.properties.lead_thermochemical_properties.lead_contamination') def test_min(self): for prop in self.properties: From 4b8d7d815f82f566d848a0fc5289f822cf5e2ff8 Mon Sep 17 00:00:00 2001 From: Gabriele Ottino Date: Wed, 28 Aug 2024 19:18:55 +0200 Subject: [PATCH 15/22] [188_contamination_tests_in_common], issue #188, Updated reference values file following the local update of numpy according to the version used in github platform --- tests/properties_bounds.json | 1354 +++++++++++++++++----------------- 1 file changed, 674 insertions(+), 680 deletions(-) diff --git a/tests/properties_bounds.json b/tests/properties_bounds.json index 6632bde..3c78fb6 100644 --- a/tests/properties_bounds.json +++ b/tests/properties_bounds.json @@ -1,974 +1,968 @@ { "alpha_lbh15_Liquid_lead_thermal_expansion_coefficient": { - "min": 0.000119884, - "T_at_min": 600.600016251, - "max": 0.0001444878, - "T_at_max": 2020.9999611359 + "min": 0.000119883952568, + "T_at_min": 600.6000162510092, + "max": 0.00014448778997, + "T_at_max": 2020.9999611359272 }, "beta_s_lbh15_Liquid_lead_isentropic_compressibility": { - "min": 0.0, - "T_at_min": 600.6000160107, - "max": 1e-10, - "T_at_max": 1999.9999618422 + "min": 2.8751e-11, + "T_at_min": 600.6000160107451, + "max": 5.2746e-11, + "T_at_max": 1999.999961842222 }, "cp_gurvich1991_Liquid_lead_specific_heat_capacity": { - "min": 137.2871331822, - "T_at_min": 1682.5219138071, - "max": 147.78490806, - "T_at_max": 600.6000160107 + "min": 137.28713318220272, + "T_at_min": 1682.5219138070895, + "max": 147.78490805998962, + "T_at_max": 600.6000160107451 }, "cp_sobolev2011_Liquid_lead_specific_heat_capacity": { - "min": 136.3486491575, - "T_at_min": 1568.6647571773, - "max": 147.9771047426, - "T_at_max": 600.6000160107 + "min": 136.34864915749822, + "T_at_min": 1568.6647571773037, + "max": 147.9771047426332, + "T_at_max": 600.6000160107451 }, "h_sobolev2011_Liquid_lead_specific_enthalpy_(as_difference_with_respect_to_the_melting_point_enthalpy)": { - "min": 0.0023692295, - "T_at_min": 600.6000160107, - "max": 195278.8532229452, - "T_at_max": 1999.9999618422 + "min": 0.002369229485654, + "T_at_min": 600.6000160107451, + "max": 195278.85322294518, + "T_at_max": 1999.999961842222 }, "k_lbh15_Liquid_lead_thermal_conductivity": { - "min": 15.8066001325, - "T_at_min": 600.600012041, - "max": 23.4999996271, - "T_at_max": 1299.9999661032 + "min": 15.806600132450779, + "T_at_min": 600.60001204098, + "max": 23.49999962713561, + "T_at_max": 1299.9999661032377 }, "mu_lbh15_Liquid_lead_dynamic_viscosity": { - "min": 0.0009401385, - "T_at_min": 1472.9999577187, - "max": 0.0026977791, - "T_at_max": 600.60001615 + "min": 0.00094013853579, + "T_at_min": 1472.999957718708, + "max": 0.002697779081182, + "T_at_max": 600.6000161500165 }, "p_s_sobolev2011_Liquid_lead_saturation_vapour_pressure": { - "min": 5.721e-07, - "T_at_min": 600.6000113097, - "max": 101081.6167665516, - "T_at_max": 2020.9999611359 + "min": 5.72102399e-07, + "T_at_min": 600.6000113097255, + "max": 101081.61676655158, + "T_at_max": 2020.9999611359272 }, "r_lbh15_Liquid_lead_electrical_resistivity": { - "min": 9.529e-07, - "T_at_min": 600.6000112322, - "max": 1.2696e-06, - "T_at_max": 1272.9999674118 + "min": 9.52882605e-07, + "T_at_min": 600.6000112322404, + "max": 1.269582985e-06, + "T_at_max": 1272.999967411806 }, "rho_sobolev2008a_Liquid_lead_density": { - "min": 8855.1305497266, - "T_at_min": 2020.9999611359, - "max": 10672.5322792068, - "T_at_max": 600.600016251 + "min": 8855.130549726582, + "T_at_min": 2020.9999611359272, + "max": 10672.532279206835, + "T_at_max": 600.6000162510092 }, "sigma_jauch1986_Liquid_lead_surface_tension": { - "min": 0.3790000038, - "T_at_min": 1299.9999661032, - "max": 0.4580321986, - "T_at_max": 600.600012041 + "min": 0.379000003830334, + "T_at_min": 1299.9999661032377, + "max": 0.458032198639369, + "T_at_max": 600.60001204098 }, "u_s_sobolev2011_Sound_velocity_in_liquid_lead": { - "min": 1461.0000093868, - "T_at_min": 1999.9999618422, - "max": 1805.2523960614, - "T_at_max": 600.6000160107 + "min": 1461.0000093868134, + "T_at_min": 1999.999961842222, + "max": 1805.2523960613566, + "T_at_max": 600.6000160107451 }, "cr_sol_alden1958_chromium_solubility_in_liquid_lead": { - "min": 0.0105804651, - "T_at_min": 1181.000020802, - "max": 0.1543175276, - "T_at_max": 1482.9999616809 + "min": 0.010580465069446, + "T_at_min": 1181.0000208019626, + "max": 0.154317527598545, + "T_at_max": 1482.9999616809428 }, "cr_sol_gosse2014_chromium_solubility_in_liquid_lead": { - "min": 3.62e-08, - "T_at_min": 601.0000169449, - "max": 0.7420325344, - "T_at_max": 1772.9999694963 + "min": 3.6177308e-08, + "T_at_min": 601.0000169449064, + "max": 0.742032534410458, + "T_at_max": 1772.9999694963203 }, "cr_sol_venkatraman1988_chromium_solubility_in_liquid_lead": { - "min": 0.0093562075, - "T_at_min": 1173.0000206669, - "max": 0.1373667919, - "T_at_max": 1472.9999619347 + "min": 0.009356207505308, + "T_at_min": 1173.000020666853, + "max": 0.137366791929709, + "T_at_max": 1472.9999619347113 }, "fe_sol_gosse2014_iron_solubility_in_liquid_lead": { - "min": 2.522e-07, - "T_at_min": 600.0000166405, - "max": 0.0045249048, - "T_at_max": 1172.9999724645 + "min": 2.52154607e-07, + "T_at_min": 600.0000166404512, + "max": 0.004524904770177, + "T_at_max": 1172.999972464458 }, "ni_sol_gosse2014_nickel_solubility_in_liquid_lead": { - "min": 0.1064692367, - "T_at_min": 598.0000154605, - "max": 0.689818701, - "T_at_max": 916.9999749844 + "min": 0.106469236711521, + "T_at_min": 598.0000154604908, + "max": 0.689818701045892, + "T_at_max": 916.9999749844005 }, "o_sol_lbh15_oxygen_solubility_in_liquid_lead": { - "min": 5.45364e-05, - "T_at_min": 673.0000180825, - "max": 0.3605961046, - "T_at_max": 1372.9999660742 + "min": 5.4536426802e-05, + "T_at_min": 673.000018082542, + "max": 0.360596104601807, + "T_at_max": 1372.9999660741587 }, "si_sol_lbh15_silicon_solubility_in_liquid_lead": { - "min": 0.028770034, - "T_at_min": 1323.0000214373, - "max": 0.148463727, - "T_at_max": 1522.9999589394 + "min": 0.02877003400201, + "T_at_min": 1323.0000214373254, + "max": 0.148463726999077, + "T_at_max": 1522.9999589393794 }, "co_dif_lbh15_cobalt_diffusivity_in_liquid_lead": { - "min": 3.4e-09, - "T_at_min": 1023.0000165475, - "max": 5.7e-09, - "T_at_max": 1272.9999682789 + "min": 3.400878e-09, + "T_at_min": 1023.000016547498, + "max": 5.672009e-09, + "T_at_max": 1272.9999682789262 }, "in_dif_lbh15_indium_diffusivity_in_liquid_lead": { - "min": 3.1e-09, - "T_at_min": 723.0000110856, - "max": 7.5e-09, - "T_at_max": 1172.99998211 + "min": 3.124676e-09, + "T_at_min": 723.000011085613, + "max": 7.535563e-09, + "T_at_max": 1172.9999821099711 }, "fe_dif_lbh15_iron_diffusivity_in_liquid_lead": { - "min": 2.1e-09, - "T_at_min": 973.0000235256, - "max": 7.7e-09, - "T_at_max": 1272.9999808164 + "min": 2.144448e-09, + "T_at_min": 973.0000235256421, + "max": 7.712089e-09, + "T_at_max": 1272.9999808163855 }, "o_dif_arcella1968_oxygen_diffusivity_in_liquid_lead": { - "min": 1e-09, - "T_at_min": 973.0000253769, - "max": 1.4e-09, - "T_at_max": 1172.9999763378 + "min": 9.92198e-10, + "T_at_min": 973.000025376859, + "max": 1.360514e-09, + "T_at_max": 1172.999976337814 }, "o_dif_charle1976_oxygen_diffusivity_in_liquid_lead": { - "min": 2.22e-08, - "T_at_min": 1173.0000236622, - "max": 3.04e-08, - "T_at_max": 1372.9999793043 + "min": 2.2226729e-08, + "T_at_min": 1173.000023662185, + "max": 3.0382176e-08, + "T_at_max": 1372.9999793042932 }, "o_dif_ganesan2006b_oxygen_diffusivity_in_liquid_lead": { - "min": 4e-10, - "T_at_min": 823.0000169763, - "max": 1.5e-09, - "T_at_max": 1052.9999708166 + "min": 3.56713e-10, + "T_at_min": 823.0000169762914, + "max": 1.528552e-09, + "T_at_max": 1052.999970816612 }, "o_dif_gromov1996_oxygen_diffusivity_in_liquid_lead": { - "min": 4e-10, - "T_at_min": 673.000017972, - "max": 1.4e-09, - "T_at_max": 1272.9999718304 + "min": 3.67681e-10, + "T_at_min": 673.0000179719914, + "max": 1.434004e-09, + "T_at_max": 1272.9999718303898 }, "o_dif_homna1971_oxygen_diffusivity_in_liquid_lead": { - "min": 1e-09, - "T_at_min": 1073.0000221501, - "max": 1.7e-09, - "T_at_max": 1372.9999619347 + "min": 1.015985e-09, + "T_at_min": 1073.0000221500927, + "max": 1.661503e-09, + "T_at_max": 1372.9999619347113 }, "o_dif_otsuka1975_oxygen_diffusivity_in_liquid_lead": { - "min": 2e-08, - "T_at_min": 1173.0000236622, - "max": 2.68e-08, - "T_at_max": 1372.9999793043 + "min": 2.0047558e-08, + "T_at_min": 1173.000023662185, + "max": 2.6824342e-08, + "T_at_max": 1372.9999793042932 }, "o_dif_swzarc1972_oxygen_diffusivity_in_liquid_lead": { - "min": 6.6e-09, - "T_at_min": 1013.0000266624, - "max": 1.43e-08, - "T_at_max": 1352.9999769276 + "min": 6.617706e-09, + "T_at_min": 1013.0000266623945, + "max": 1.4349981e-08, + "T_at_max": 1352.9999769276053 }, "se_dif_lbh15_selenium_diffusivity_in_liquid_lead": { - "min": 5.1e-09, - "T_at_min": 823.0000152395, - "max": 9e-09, - "T_at_max": 1172.9999729889 + "min": 5.117633e-09, + "T_at_min": 823.000015239486, + "max": 9.004507e-09, + "T_at_max": 1172.9999729889312 }, "te_dif_lbh15_tellurium_diffusivity_in_liquid_lead": { - "min": 2.2e-09, - "T_at_min": 723.0000110856, - "max": 6.1e-09, - "T_at_max": 1172.99998211 + "min": 2.207046e-09, + "T_at_min": 723.000011085613, + "max": 6.082024e-09, + "T_at_max": 1172.9999821099711 }, "G_lbh15_Gibbs_free_energy_variation_in_liquid_lead": { - "min": -29.6732366576, - "T_at_min": 1999.9999618422, - "max": 1e-10, - "T_at_max": 600.6014640717 + "min": -29.673236657633808, + "T_at_min": 1999.999961842222, + "max": 5.4716e-11, + "T_at_max": 600.6014640717282 }, "H_lbh15_molar_enthalpy_variation_in_liquid_lead": { - "min": 4.909e-07, - "T_at_min": 600.6000160107, - "max": 40.4617783878, - "T_at_max": 1999.9999618422 + "min": 4.90904349e-07, + "T_at_min": 600.6000160107451, + "max": 40.46177838779424, + "T_at_max": 1999.999961842222 }, "S_lbh15_molar_entropy_variation_in_liquid_lead": { - "min": 8e-10, - "T_at_min": 600.6000160107, - "max": 0.0350675082, - "T_at_max": 1999.9999618422 + "min": 8.17355e-10, + "T_at_min": 600.6000160107451, + "max": 0.035067508191763, + "T_at_max": 1999.999961842222 }, "o_pp_alcock1964_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 3.62e-08, - "T_at_min": 783.0000202001, - "max": 4.71393e-05, - "T_at_max": 972.999975892 + "min": 3.6212842e-08, + "T_at_min": 783.0000202001462, + "max": 4.7139308689e-05, + "T_at_max": 972.9999758919839 }, "o_pp_charle1976_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0157447029, - "T_at_min": 1173.0000285823, - "max": 0.5669828293, - "T_at_max": 1372.9999793043 + "min": 0.015744702900625, + "T_at_min": 1173.0000285822598, + "max": 0.566982829288443, + "T_at_max": 1372.9999793042932 }, "o_pp_fisher1966_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 9.55198e-05, - "T_at_min": 903.0000255083, - "max": 0.2643337647, - "T_at_max": 1252.9999741755 + "min": 9.5519783639e-05, + "T_at_min": 903.0000255082603, + "max": 0.264333764689828, + "T_at_max": 1252.9999741755228 }, "o_pp_ganesan2006_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 2.669e-07, - "T_at_min": 815.0000172979, - "max": 0.0022647564, - "T_at_max": 1089.9999812742 + "min": 2.66862029e-07, + "T_at_min": 815.0000172979202, + "max": 0.002264756436346, + "T_at_max": 1089.9999812741644 }, "o_pp_isecke1977_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.015760074, - "T_at_min": 1173.0000289778, - "max": 0.5767067644, - "T_at_max": 1372.9999793043 + "min": 0.015760073993477, + "T_at_min": 1173.0000289777936, + "max": 0.576706764364238, + "T_at_max": 1372.9999793042932 }, "o_pp_otsuka1979_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0013964659, - "T_at_min": 1073.0000287357, - "max": 19.5356967881, - "T_at_max": 1672.9999529487 + "min": 0.001396465921043, + "T_at_min": 1073.0000287356625, + "max": 19.53569678813021, + "T_at_max": 1672.9999529487159 }, "o_pp_otsuka1981_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0003987713, - "T_at_min": 1023.0000267898, - "max": 0.0897786661, - "T_at_max": 1272.9999682789 + "min": 0.000398771251447, + "T_at_min": 1023.0000267898392, + "max": 0.089778666098183, + "T_at_max": 1272.9999682789262 }, "o_pp_szwarc1972_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0174733543, - "T_at_min": 1012.0000245197, - "max": 9.9883627314, - "T_at_max": 1352.9999768007 + "min": 0.017473354300596, + "T_at_min": 1012.0000245196775, + "max": 9.988362731371112, + "T_at_max": 1352.9999768007208 }, "o_pp_taskinen1979_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0015206948, - "T_at_min": 1073.0000266894, - "max": 0.0257872157, - "T_at_max": 1202.999974659 + "min": 0.001520694848039, + "T_at_min": 1073.0000266894035, + "max": 0.025787215686601, + "T_at_max": 1202.9999746590447 }, "lim_cr_alden1958_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lead": { "min": 0.0, - "T_at_min": 673.0000133819, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000133818933, + "max": 1.47e-13, + "T_at_max": 999.9999743570503 }, "lim_cr_gosse2014_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lead": { "min": 0.0, - "T_at_min": 673.0000124208, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000124208025, + "max": 1.43e-13, + "T_at_max": 999.9999743570503 }, "lim_cr_venkatraman1988_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lead": { "min": 0.0, - "T_at_min": 673.0000131001, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000131000504, + "max": 1.45e-13, + "T_at_max": 999.9999743570503 }, "lim_fe_lbh15_Oxygen_concentration_lower_limit_times_iron_concentration_raised_to_3/4_in_lead": { - "min": 0.0, - "T_at_min": 673.000017791, - "max": 5.8e-09, - "T_at_max": 999.9999743571 + "min": 9e-15, + "T_at_min": 673.0000177910331, + "max": 5.772708e-09, + "T_at_max": 999.9999743570503 }, "lim_ni_lbh15_Oxygen_concentration_lower_limit_times_nickel_concentration_in_lead": { - "min": 1.029e-07, - "T_at_min": 673.0000121086, - "max": 8.52242e-05, - "T_at_max": 916.9999826416 + "min": 1.02944838e-07, + "T_at_min": 673.0000121085645, + "max": 8.5224169321e-05, + "T_at_max": 916.999982641573 }, "lim_al_sat_lbh15_Oxygen_concentration_lower_limit_for_aluminium_at_its_saturation_concentration_in_liquid_lead": { "min": 0.0, - "T_at_min": 673.0000133122, + "T_at_min": 673.0000133121973, "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_max": 999.9999743570503 }, "lim_cr_sat_lbh15_Oxygen_concentration_lower_limit_for_chromium_at_its_saturation_concentration_in_liquid_lead": { "min": 0.0, - "T_at_min": 673.0000155753, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000155752929, + "max": 1.4931e-11, + "T_at_max": 999.9999743570503 }, "lim_fe_sat_lbh15_Oxygen_concentration_lower_limit_foriron_at_its_saturation_concentration_in_liquid_lead": { - "min": 2e-10, - "T_at_min": 673.0000121095, - "max": 1.2521e-06, - "T_at_max": 999.9999743571 + "min": 1.56987e-10, + "T_at_min": 673.000012109508, + "max": 1.25207307e-06, + "T_at_max": 999.9999743570503 }, "lim_ni_sat_lbh15_Oxygen_concentration_lower_limit_for_nickel_at_its_saturation_concentration_in_liquid_lead": { - "min": 5.314e-07, - "T_at_min": 673.0000180933, - "max": 0.0004301025, - "T_at_max": 999.9999743571 + "min": 5.3138946e-07, + "T_at_min": 673.0000180933367, + "max": 0.000430102517012, + "T_at_max": 999.9999743570503 }, "lim_si_sat_lbh15_Oxygen_concentration_lower_limit_for_silicon_at_its_saturation_concentration_in_liquid_lead": { "min": 0.0, - "T_at_min": 673.0000163988, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000163988171, + "max": 2e-15, + "T_at_max": 999.9999743570503 }, "lim_si_lbh15_Oxygen_concentration_lower_limit_times_silicon_concentration_raised_to_1/2_in_lead": { "min": 0.0, - "T_at_min": 673.000012831, + "T_at_min": 673.0000128309707, + "max": 0.0, + "T_at_max": 999.9999743570503 + }, + "gamma_PbCs_lbh15_Activity_coefficient_of_Cs-Pb_Caesium_intermetallic_compound_in_liquid_lead": { + "min": 0.031622776601684, + "T_at_min": 1099.999977153317, + "max": 0.031622776601684, + "T_at_max": 1099.999977153317 + }, + "K_PbCs_yamshchikov2001_Cs-Pb_Caesium_intermetallic_compound_Henry_constant_in_liquid_lead": { + "min": 0.0, + "T_at_min": 932.9999772585459, + "max": 0.0, + "T_at_max": 708.9085832566972 + }, + "P_PbCs_lbh15_Cs-Pb_Caesium_intermetallic_compound_vapour_pressure_in_liquid_lead": { + "min": 0.0, + "T_at_min": 932.9999772585459, + "max": 0.0, + "T_at_max": 708.908593771417 + }, + "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 1, + "T_at_min": 2020.9999611359272, + "max": 1, + "T_at_max": 2020.9999611359272 + }, + "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.0, + "T_at_min": 697.0000136286183, + "max": 0.0, + "T_at_max": 1475.1623011938134 + }, + "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.220531621726107, + "T_at_min": 600.600014181742, + "max": 22.123107562218102, + "T_at_max": 696.9999802087809 + }, + "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.0, + "T_at_min": 697.0000136286183, "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_max": 1475.1623011938134 + }, + "P_PbI2_konings1996_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.220531621726107, + "T_at_min": 600.600014181742, + "max": 22.123107562218102, + "T_at_max": 696.9999802087809 + }, + "gamma_PbPo_li1998_Activity_coefficient_of_PbPo_compound_in_liquid_lead": { + "min": 1, + "T_at_min": 1122.9999735431632, + "max": 1, + "T_at_max": 1122.9999735431632 + }, + "K_PbPo_lbh15_Henry_constant_of_PbPo_compound_in_liquid_lead": { + "min": 12.509503438763986, + "T_at_min": 913.000023192315, + "max": 385.7169908818606, + "T_at_max": 1122.9999735431632 + }, + "P_PbPo_abakumov1994a_Vapour_pressure_of_PbPo_compound_in_liquid_lead": { + "min": 12.509503438763986, + "T_at_min": 913.000023192315, + "max": 385.7169908818606, + "T_at_max": 1122.9999735431632 }, "alpha_lbh15_Liquid_bismuth_thermal_expansion_coefficient": { - "min": 0.000121265, - "T_at_min": 544.6000147179, - "max": 0.0001436782, - "T_at_max": 1830.9999648121 + "min": 0.000121265037081, + "T_at_min": 544.6000147178952, + "max": 0.000143678160193, + "T_at_max": 1830.999964812147 }, "beta_s_lbh15_Liquid_bismuth_isentropic_compressibility": { - "min": 0.0, - "T_at_min": 544.6000143632, - "max": 1e-10, - "T_at_max": 1799.9999658548 + "min": 3.6395e-11, + "T_at_min": 544.6000143632194, + "max": 7.6278e-11, + "T_at_max": 1799.9999658547729 }, "cp_imbeni1998_Liquid_bismuth_specific_heat_capacity": { - "min": 130.1518437746, - "T_at_min": 1342.7529236016, - "max": 145.6503420649, - "T_at_max": 544.6000147179 + "min": 130.15184377460824, + "T_at_min": 1342.7529236016146, + "max": 145.65034206490986, + "T_at_max": 544.6000147178952 }, "h_sobolev2011_Liquid_bismuth_specific_enthalpy_(as_difference_with_respect_to_the_melting_point_enthalpy)": { - "min": 0.0021436665, - "T_at_min": 544.6000147179, + "min": 0.002143666473532, + "T_at_min": 544.6000147178952, "max": 170386.0478107512, - "T_at_max": 1830.9999648121 + "T_at_max": 1830.999964812147 }, "k_touloukian1970b_Liquid_bismuth_thermal_conductivity": { - "min": 12.5137001296, - "T_at_min": 544.6000136407, - "max": 16.8399998016, - "T_at_max": 999.9999791205 + "min": 12.513700129587043, + "T_at_min": 544.6000136407414, + "max": 16.839999801644797, + "T_at_max": 999.999979120505 }, "mu_lucas1984b_Liquid_bismuth_dynamic_viscosity": { - "min": 0.0008119362, - "T_at_min": 1299.9999633892, - "max": 0.0018662111, - "T_at_max": 544.6000139841 + "min": 0.000811936151174, + "T_at_min": 1299.9999633891703, + "max": 0.001866211092227, + "T_at_max": 544.6000139840927 }, "p_s_sobolev2011_Liquid_bismuth_saturation_vapour_pressure": { - "min": 1.58e-08, - "T_at_min": 544.6000099395, - "max": 101117.711436216, - "T_at_max": 1830.9999648121 + "min": 1.578573e-08, + "T_at_min": 544.6000099395206, + "max": 101117.71143621602, + "T_at_max": 1830.999964812147 }, "r_lbh15_Liquid_bismuth_electrical_resistivity": { - "min": 1.2915e-06, - "T_at_min": 545.00000817, - "max": 1.7779e-06, - "T_at_max": 1422.9999785538 + "min": 1.291530005e-06, + "T_at_min": 545.0000081699945, + "max": 1.777941988e-06, + "T_at_max": 1422.999978553835 }, "rho_imbeni1998_Liquid_bismuth_density": { - "min": 8491.1800429292, - "T_at_min": 1830.9999648121, - "max": 10060.5879820442, - "T_at_max": 544.6000147179 - }, - "sigma_sobolev2011_Liquid_bismuth_surface_tension": { - "min": 0.3074000034, - "T_at_min": 1399.9999585426, - "max": 0.3766873987, - "T_at_max": 544.6000158353 + "min": 8491.18004292918, + "T_at_min": 1830.999964812147, + "max": 10060.587982044168, + "T_at_max": 544.6000147178952 }, "u_s_sobolev2011_Sound_velocity_in_liquid_bismuth": { - "min": 1239.8000206579, - "T_at_min": 1799.9999658548, - "max": 1652.5905840441, - "T_at_max": 544.6000143632 + "min": 1239.800020657862, + "T_at_min": 1799.9999658547729, + "max": 1652.5905840441499, + "T_at_max": 544.6000143632194 }, "cr_sol_gosse2014_chromium_solubility_in_liquid_bismuth": { - "min": 5.20172e-05, - "T_at_min": 545.0000150386, - "max": 2.0132743067, - "T_at_max": 1772.9999667823 + "min": 5.2017200076e-05, + "T_at_min": 545.0000150386322, + "max": 2.013274306739782, + "T_at_max": 1772.9999667822526 }, "cr_sol_venkatraman1988_chromium_solubility_in_liquid_bismuth": { - "min": 0.0007139667, - "T_at_min": 658.0000183323, - "max": 0.0215447101, - "T_at_max": 900.9999825311 + "min": 0.000713966713168, + "T_at_min": 658.000018332328, + "max": 0.021544710106284, + "T_at_max": 900.9999825311388 }, "cr_sol_weeks1998_chromium_solubility_in_liquid_bismuth": { - "min": 0.000782826, - "T_at_min": 663.0000124151, - "max": 0.059641836, - "T_at_max": 997.9999737297 + "min": 0.000782826039485, + "T_at_min": 663.0000124151118, + "max": 0.05964183599476, + "T_at_max": 997.9999737296996 }, "fe_sol_gosse2014_iron_solubility_in_liquid_bismuth": { - "min": 9.7497e-06, - "T_at_min": 545.0000085106, - "max": 0.0707320559, - "T_at_max": 1172.9999695637 + "min": 9.749692944e-06, + "T_at_min": 545.000008510586, + "max": 0.070732055878932, + "T_at_max": 1172.9999695636734 }, "fe_sol_massalski1990_iron_solubility_in_liquid_bismuth": { - "min": 0.012290178, - "T_at_min": 973.0000253769, - "max": 0.0612337073, - "T_at_max": 1172.9999763378 + "min": 0.012290178046628, + "T_at_min": 973.000025376859, + "max": 0.061233707296074, + "T_at_max": 1172.999976337814 }, "fe_sol_weeks1998_iron_solubility_in_liquid_bismuth": { - "min": 0.0006285495, - "T_at_min": 713.0000117738, - "max": 0.0172110568, - "T_at_max": 997.9999786407 + "min": 0.000628549512748, + "T_at_min": 713.0000117738275, + "max": 0.017211056815837, + "T_at_max": 997.9999786407409 }, "ni_sol_gosse2014_nickel_solubility_in_liquid_bismuth": { - "min": 0.2171218787, - "T_at_min": 543.0000108166, - "max": 8.6573059971, - "T_at_max": 1172.9999686173 + "min": 0.217121878708237, + "T_at_min": 543.0000108165658, + "max": 8.657305997112159, + "T_at_max": 1172.9999686173219 }, "ni_sol_weeks1998_nickel_solubility_in_liquid_bismuth": { - "min": 3.0391522429, - "T_at_min": 723.0000121153, - "max": 8.068418932, - "T_at_max": 902.9999771608 + "min": 3.03915224290001, + "T_at_min": 723.0000121153164, + "max": 8.068418932018085, + "T_at_max": 902.9999771608269 }, "o_sol_lbh15_oxygen_solubility_in_liquid_bismuth": { - "min": 1.59961e-05, - "T_at_min": 573.0000087999, - "max": 0.9597292065, - "T_at_max": 1572.9999748659 + "min": 1.5996098531e-05, + "T_at_min": 573.0000087998916, + "max": 0.959729206515277, + "T_at_max": 1572.9999748659052 }, "o_dif_fitzner1980_oxygen_diffusivity_in_liquid_bismuth": { - "min": 2.1e-09, - "T_at_min": 951.0000164845, - "max": 4.9e-09, - "T_at_max": 1099.9999694098 + "min": 2.115845e-09, + "T_at_min": 951.0000164845189, + "max": 4.917442e-09, + "T_at_max": 1099.9999694098378 }, "o_dif_heshmatpour1981_oxygen_diffusivity_in_liquid_bismuth": { - "min": 9e-10, - "T_at_min": 1023.0000165475, - "max": 1.6e-09, - "T_at_max": 1272.9999682789 + "min": 8.66919e-10, + "T_at_min": 1023.000016547498, + "max": 1.60253e-09, + "T_at_max": 1272.9999682789262 }, "G_lbh15_Gibbs_free_energy_variation_in_liquid_bismuth": { - "min": -26.3795884859, - "T_at_min": 1830.9999648121, - "max": -0.0, - "T_at_max": 544.6000147179 + "min": -26.379588485888686, + "T_at_min": 1830.999964812147, + "max": -6e-15, + "T_at_max": 544.6000147178952 }, "H_lbh15_molar_enthalpy_variation_in_liquid_bismuth": { - "min": 4.48e-07, - "T_at_min": 544.6000147179, - "max": 35.6072762715, - "T_at_max": 1830.9999648121 + "min": 4.4798342e-07, + "T_at_min": 544.6000147178952, + "max": 35.60727627149078, + "T_at_max": 1830.999964812147 }, "S_lbh15_molar_entropy_variation_in_liquid_bismuth": { - "min": 8e-10, - "T_at_min": 544.6000147179, - "max": 0.0338541048, - "T_at_max": 1830.9999648121 + "min": 8.22592e-10, + "T_at_min": 544.6000147178952, + "max": 0.033854104832678, + "T_at_max": 1830.999964812147 }, "o_pp_fitzner1980_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_bismuth": { - "min": 0.0138597517, - "T_at_min": 988.0000170986, - "max": 0.6220631653, - "T_at_max": 1180.9999778936 + "min": 0.013859751678567, + "T_at_min": 988.0000170985788, + "max": 0.622063165301616, + "T_at_max": 1180.9999778935946 }, "o_pp_hahn1979_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_bismuth": { - "min": 118.4103097223, - "T_at_min": 1073.0000307955, - "max": 772.9709193544, - "T_at_max": 1222.9999692045 + "min": 118.41030972227716, + "T_at_min": 1073.0000307954651, + "max": 772.9709193544093, + "T_at_max": 1222.9999692045349 }, "o_pp_heshmatpour1981_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_bismuth": { - "min": 0.0075193048, - "T_at_min": 1023.0000181672, - "max": 0.619852834, - "T_at_max": 1272.9999682789 + "min": 0.007519304824623, + "T_at_min": 1023.0000181672021, + "max": 0.619852834043242, + "T_at_max": 1272.9999682789262 }, "o_pp_isecke1979_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_bismuth": { - "min": 0.0102042588, - "T_at_min": 973.0000150658, - "max": 49.8207121233, - "T_at_max": 1472.9999607906 + "min": 0.010204258777441, + "T_at_min": 973.0000150657633, + "max": 49.82071212334006, + "T_at_max": 1472.9999607905966 + }, + "gamma_Cs_gverdtsiteli1984_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_bismuth": { + "min": 0.003162277660168, + "T_at_min": 999.999979120505, + "max": 0.003162277660168, + "T_at_max": 999.999979120505 + }, + "P_BiI3_cubicciotti1959_Vapour_pressure_of_BiI3_Iodide_in_liquid_bismuth": { + "min": 237.6483261098085, + "T_at_min": 544.6000088591823, + "max": 86316731.09536353, + "T_at_max": 1830.999964812147 + }, + "gamma_Po_lbh15_Activity_coefficient_of_Polonium_in_liquid_bismuth": { + "min": 0.004669852947025, + "T_at_min": 923.0000236098568, + "max": 0.008751871153612, + "T_at_max": 1037.9999771945104 + }, + "gamma_Po_joy1963_Activity_coefficient_of_Polonium_in_liquid_bismuth": { + "min": 0.002208095258597, + "T_at_min": 723.0000193861952, + "max": 0.048766918104064, + "T_at_max": 1122.999968632477 }, "alpha_lbh15_Liquid_lbe_thermal_expansion_coefficient": { - "min": 0.000122549, - "T_at_min": 398.0000108116, - "max": 0.0001508068, - "T_at_max": 1926.9999544783 + "min": 0.00012254901977, + "T_at_min": 398.00001081158865, + "max": 0.000150806815433, + "T_at_max": 1926.9999544783298 }, "beta_s_lbh15_Liquid_lbe_isentropic_compressibility": { - "min": 0.0, - "T_at_min": 400.0000070255, - "max": 0.0, - "T_at_max": 1099.9999823898 + "min": 3.0255e-11, + "T_at_min": 400.0000070255261, + "max": 3.9428e-11, + "T_at_max": 1099.999982389828 }, "cp_sobolev2011_Liquid_lbe_specific_heat_capacity": { - "min": 133.5681031653, - "T_at_min": 1566.510196253, - "max": 148.1899998364, - "T_at_max": 400.0000107974 + "min": 133.5681031653219, + "T_at_min": 1566.510196253038, + "max": 148.18999983641868, + "T_at_max": 400.00001079744663 }, "h_sobolev2011_Liquid_lbe_specific_enthalpy_(as_difference_with_respect_to_the_melting_point_enthalpy)": { - "min": 296.4121085953, - "T_at_min": 400.0000107974, - "max": 210592.6949524394, - "T_at_max": 1926.9999545753 + "min": 296.41210859526996, + "T_at_min": 400.00001079744663, + "max": 210592.69495243934, + "T_at_max": 1926.9999545752607 }, "k_sobolev2011_Liquid_lbe_thermal_conductivity": { - "min": 9.3545389082, - "T_at_min": 398.0000089434, - "max": 19.3687997759, - "T_at_max": 1199.9999789296 + "min": 9.354538908206067, + "T_at_min": 398.0000089434321, + "max": 19.368799775852953, + "T_at_max": 1199.9999789295878 }, "mu_lbh15_Liquid_lbe_dynamic_viscosity": { - "min": 0.0008823709, - "T_at_min": 1299.9999755663, - "max": 0.0032854506, - "T_at_max": 398.0000103199 + "min": 0.000882370866482, + "T_at_min": 1299.9999755662786, + "max": 0.003285450585832, + "T_at_max": 398.00001031991707 }, "p_s_sobolev2011_Liquid_lbe_saturation_vapour_pressure": { - "min": 0.0, - "T_at_min": 398.000009158, + "min": 3e-15, + "T_at_min": 398.0000091579604, "max": 100864.76819824, - "T_at_max": 1926.9999544783 + "T_at_max": 1926.9999544783298 }, "r_lbh15_Liquid_lbe_electrical_resistivity": { - "min": 1.101e-06, - "T_at_min": 400.0000070255, - "max": 1.437e-06, - "T_at_max": 1099.9999823898 + "min": 1.101000003e-06, + "T_at_min": 400.0000070255261, + "max": 1.436999992e-06, + "T_at_max": 1099.999982389828 }, "rho_lbh15_Liquid_lbe_density": { - "min": 8573.3890588595, - "T_at_min": 1926.9999544783, - "max": 10550.3859860206, - "T_at_max": 398.0000108116 + "min": 8573.38905885952, + "T_at_min": 1926.9999544783298, + "max": 10550.385986020616, + "T_at_max": 398.00001081158865 }, "sigma_plevachuk2008_Liquid_lbe_surface_tension": { - "min": 0.3366400022, - "T_at_min": 1399.999972203, - "max": 0.4166997991, - "T_at_max": 398.000011464 + "min": 0.336640002220983, + "T_at_min": 1399.999972202969, + "max": 0.416699799084024, + "T_at_max": 398.00001146403207 }, "u_s_sobolev2011_Sound_velocity_in_liquid_lbe": { - "min": 1621.8000037334, - "T_at_min": 1099.9999823898, - "max": 1770.1999985106, - "T_at_max": 400.0000070255 + "min": 1621.8000037333566, + "T_at_min": 1099.999982389828, + "max": 1770.1999985105888, + "T_at_max": 400.0000070255261 }, "cr_sol_courouau2004_cr_solubility_in_liquid_lbe": { - "min": 0.0002345069, - "T_at_min": 643.0000120331, - "max": 0.0022537344, - "T_at_max": 812.9999784297 + "min": 0.000234506890967, + "T_at_min": 643.0000120330653, + "max": 0.002253734383318, + "T_at_max": 812.9999784296698 }, "cr_sol_gosse2014_cr_solubility_in_liquid_lbe": { - "min": 2.89e-07, - "T_at_min": 399.0000097679, - "max": 0.0327125472, - "T_at_max": 1172.9999798861 + "min": 2.88969707e-07, + "T_at_min": 399.0000097679219, + "max": 0.032712547241343, + "T_at_max": 1172.9999798861468 }, "cr_sol_martynov1998_cr_solubility_in_liquid_lbe": { - "min": 0.0003910068, - "T_at_min": 673.0000105481, - "max": 0.0010726368, - "T_at_max": 772.9999794697 + "min": 0.000391006793201, + "T_at_min": 673.0000105480734, + "max": 0.00107263682565, + "T_at_max": 772.9999794696897 }, "fe_sol_gosse2014_iron_solubility_in_liquid_lbe": { - "min": 9e-10, - "T_at_min": 399.0000102451, - "max": 0.0177740668, - "T_at_max": 1172.9999798861 + "min": 9.43925e-10, + "T_at_min": 399.0000102450688, + "max": 0.017774066756063, + "T_at_max": 1172.9999798861468 }, "fe_sol_weeks1969_iron_solubility_in_liquid_lbe": { - "min": 0.000617251, - "T_at_min": 823.0000169763, - "max": 0.0078629214, - "T_at_max": 1052.9999708166 + "min": 0.000617251039171, + "T_at_min": 823.0000169762914, + "max": 0.007862921429558, + "T_at_max": 1052.999970816612 }, "ni_sol_gosse2014_nickel_solubility_in_liquid_lbe": { - "min": 0.0582204939, - "T_at_min": 528.0000121669, - "max": 7.6272848972, - "T_at_max": 1172.9999687398 + "min": 0.058220493930226, + "T_at_min": 528.0000121669038, + "max": 7.627284897155317, + "T_at_max": 1172.9999687397603 }, "ni_sol_martinelli2010_nickel_solubility_in_liquid_lbe": { - "min": 0.2487072182, - "T_at_min": 603.0000170734, - "max": 6.9153223123, - "T_at_max": 1172.9999726997 + "min": 0.248707218172976, + "T_at_min": 603.0000170733919, + "max": 6.915322312266162, + "T_at_max": 1172.9999726997141 }, "o_sol_lbh15_oxygen_solubility_in_liquid_lbe": { - "min": 0.0001320469, - "T_at_min": 673.0000169974, - "max": 0.0150638754, - "T_at_max": 1012.9999733376 + "min": 0.000132046908533, + "T_at_min": 673.0000169973534, + "max": 0.015063875377944, + "T_at_max": 1012.9999733376055 }, "fe_dif_lbh15_iron_diffusivity_in_liquid_lbe": { - "min": 2.1e-09, - "T_at_min": 973.0000235256, - "max": 7.7e-09, - "T_at_max": 1272.9999808164 + "min": 2.144448e-09, + "T_at_min": 973.0000235256421, + "max": 7.712089e-09, + "T_at_max": 1272.9999808163855 }, "o_dif_ganesan2006b_oxygen_diffusivity_in_liquid_lbe": { - "min": 6e-10, - "T_at_min": 813.0000203015, - "max": 3e-09, - "T_at_max": 972.9999815835 + "min": 5.6231e-10, + "T_at_min": 813.0000203014872, + "max": 3.017763e-09, + "T_at_max": 972.9999815834586 }, "o_dif_gromov1996_oxygen_diffusivity_in_liquid_lbe": { - "min": 0.0, - "T_at_min": 473.0000098149, - "max": 4.08e-08, - "T_at_max": 1272.9999801093 + "min": 4.1863e-11, + "T_at_min": 473.00000981491115, + "max": 4.0834802e-08, + "T_at_max": 1272.9999801092838 }, "bi_a_gosse2014_Bismuth_chemical_activity_in_liquid_lbe": { - "min": 0.3929578726, - "T_at_min": 399.0000084103, - "max": 0.4858986607, - "T_at_max": 1172.9999798861 + "min": 0.392957872643115, + "T_at_min": 399.000008410259, + "max": 0.485898660730024, + "T_at_max": 1172.9999798861468 }, "bi_Kh_lbh15_bismuth_Henry_constant_in_liquid_lbe": { - "min": 0.0000027608, - "T_at_min": 623.5500154587, - "max": 0.0030945479, - "T_at_max": 776.4499805994 + "min": 2.760784286e-06, + "T_at_min": 623.5500154587282, + "max": 0.003094547858169, + "T_at_max": 776.4499805993913 }, "G_lbh15_Gibbs_free_energy_variation_in_liquid_lbe": { - "min": -44.6276162032, - "T_at_min": 1926.9999545753, - "max": -0.0001547227, - "T_at_max": 400.0000107974 + "min": -44.627616203231035, + "T_at_min": 1926.9999545752607, + "max": -0.000154722737187, + "T_at_max": 400.00001079744663 }, "pb_a_gosse2014_lead_chemical_activity_in_liquid_lbe": { - "min": 0.2636640134, - "T_at_min": 399.0000084103, - "max": 0.3681810562, - "T_at_max": 1172.9999798861 + "min": 0.263664013363788, + "T_at_min": 399.000008410259, + "max": 0.368181056194618, + "T_at_max": 1172.9999798861468 }, "pb_Kh_lbh15_lead_Henry_constant_in_liquid_lbe": { - "min": 0.0000000002, - "T_at_min": 623.5500144393, - "max": 0.0000001640, - "T_at_max": 776.4499805994 + "min": 1.70495e-10, + "T_at_min": 623.5500144392983, + "max": 1.63994914e-07, + "T_at_max": 776.4499805993913 }, "H_lbh15_molar_enthalpy_variation_in_liquid_lbe": { - "min": 0.0617067764, - "T_at_min": 400.0000107974, - "max": 43.8409766425, - "T_at_max": 1926.9999545753 + "min": 0.061706776355255, + "T_at_min": 400.00001079744663, + "max": 43.840976642503875, + "T_at_max": 1926.9999545752607 }, "S_lbh15_molar_entropy_variation_in_liquid_lbe": { - "min": 0.0001546537, - "T_at_min": 400.0000107974, - "max": 0.0459100129, - "T_at_max": 1926.9999545753 + "min": 0.000154653743556, + "T_at_min": 400.00001079744663, + "max": 0.045910012937823, + "T_at_max": 1926.9999545752607 }, "o_pp_lbh15_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lbe": { - "min": 5.591e-07, - "T_at_min": 812.000021982, - "max": 0.000867172, - "T_at_max": 1007.9999751307 + "min": 5.5914273e-07, + "T_at_min": 812.0000219820085, + "max": 0.000867172034384, + "T_at_max": 1007.9999751306782 }, "lim_cr_courouau2004_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lbe": { "min": 0.0, - "T_at_min": 673.0000197495, + "T_at_min": 673.0000197494587, "max": 0.0, - "T_at_max": 812.9999833163 + "T_at_max": 812.9999833163374 }, "lim_cr_gosse2014_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lbe": { "min": 0.0, - "T_at_min": 673.0000160904, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000160904223, + "max": 2.38e-13, + "T_at_max": 999.9999743570503 }, "lim_cr_martynov1998_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lbe": { "min": 0.0, - "T_at_min": 673.0000162616, + "T_at_min": 673.0000162616153, "max": 0.0, - "T_at_max": 772.9999794697 + "T_at_max": 772.9999794696897 }, "lim_fe_gosse2014_Oxygen_concentration_lower_limit_times_iron_concentration_raised_to_3/4_in_lbe": { - "min": 0.0, - "T_at_min": 673.0000190104, - "max": 6.2e-09, - "T_at_max": 999.9999743571 + "min": 4.9e-14, + "T_at_min": 673.000019010385, + "max": 6.184501e-09, + "T_at_max": 999.9999743570503 }, "lim_fe_weeks1969_Oxygen_concentration_lower_limit_times_iron_concentration_raised_to_3/4_in_lbe": { - "min": 0.0, - "T_at_min": 673.0000144612, - "max": 7.2e-09, - "T_at_max": 999.9999743571 + "min": 7e-14, + "T_at_min": 673.000014461176, + "max": 7.162336e-09, + "T_at_max": 999.9999743570503 }, "lim_ni_gosse2014_Oxygen_concentration_lower_limit_times_nickel_concentration_in_lbe": { - "min": 3.868e-07, - "T_at_min": 673.0000145852, - "max": 0.0007252655, - "T_at_max": 999.9999743571 + "min": 3.86751239e-07, + "T_at_min": 673.0000145852309, + "max": 0.000725265522698, + "T_at_max": 999.9999743570503 }, "lim_ni_martinelli2010_Oxygen_concentration_lower_limit_times_nickel_concentration_in_lbe": { - "min": 4.216e-07, - "T_at_min": 673.0000198925, - "max": 0.0006568966, - "T_at_max": 999.9999743571 + "min": 4.21633926e-07, + "T_at_min": 673.00001989251, + "max": 0.000656896628098, + "T_at_max": 999.9999743570503 }, "lim_al_sat_lbh15_Oxygen_concentration_lower_limit_for_aluminium_at_its_saturation_concentration_in_liquid_lbe": { "min": 0.0, - "T_at_min": 673.0000160986, + "T_at_min": 673.0000160986198, "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_max": 999.9999743570503 }, "lim_cr_sat_lbh15_Oxygen_concentration_lower_limit_for_chromium_at_its_saturation_concentration_in_lbe": { "min": 0.0, - "T_at_min": 673.0000111399, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.000011139931, + "max": 4.645e-12, + "T_at_max": 999.9999743570503 }, "lim_fe_sat_lbh15_Oxygen_concentration_lower_limit_foriron_at_its_saturation_concentration_in_liquid_lbe": { - "min": 1e-10, - "T_at_min": 673.0000161601, - "max": 3.895e-07, - "T_at_max": 999.9999743571 + "min": 1.24733e-10, + "T_at_min": 673.0000161601129, + "max": 3.89542412e-07, + "T_at_max": 999.9999743570503 }, "lim_ni_sat_lbh15_Oxygen_concentration_lower_limit_for_nickel_at_its_saturation_concentration_in_liquid_lbe": { - "min": 4.222e-07, - "T_at_min": 673.0000190285, - "max": 0.0001338126, - "T_at_max": 999.9999743571 + "min": 4.22211189e-07, + "T_at_min": 673.0000190284652, + "max": 0.000133812615186, + "T_at_max": 999.9999743570503 }, "lim_si_sat_lbh15_Oxygen_concentration_lower_limit_for_silicon_at_its_saturation_concentration_in_liquid_lbe": { "min": 0.0, - "T_at_min": 673.00001951, - "max": 0.0, - "T_at_max": 999.9999743571 - }, - "P_PbPo_abakumov1994a_Vapour_pressure_of_PbPo_compound_in_liquid_lead": { - "min": 12.5095034388, - "T_at_min": 913.0000231923, - "max": 385.7169908819, - "T_at_max": 1122.9999735432 - }, - "gamma_PbPo_li1998_Activity_coefficient_of_PbPo_compound_in_liquid_lead": { - "min": 1.0000000000, - "T_at_min": 1122.9999735432, - "max": 1.0000000000, - "T_at_max": 1122.9999735432 - }, - "K_PbPo_lbh15_Henry_constant_of_PbPo_compound_in_liquid_lead": { - "min": 12.5095034388, - "T_at_min": 913.0000231923, - "max": 385.7169908819, - "T_at_max": 1122.9999735432 - }, - "P_PbI2_konings1996_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 0.2205316217, - "T_at_min": 600.6000141817, - "max": 22.1231075622, - "T_at_max": 696.9999802088 - }, - "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 0.0000000000, - "T_at_min": 697.0000136286, - "max": 0.0000000000, - "T_at_max": 1475.1623230823368 - }, - "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 1.0000000000, - "T_at_min": 2020.9999611359, - "max": 1.0000000000, - "T_at_max": 2020.9999611359 - }, - "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 0.2205316217, - "T_at_min": 600.6000141817, - "max": 22.1231075622, - "T_at_max": 696.9999802088 - }, - "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 0.0000000000, - "T_at_min": 697.0000136286, - "max": 0.0000000000, - "T_at_max": 1475.1623230823368 - }, - "K_PbCs_yamshchikov2001_Cs-Pb_Caesium_intermetallic_compound_Henry_constant_in_liquid_lead": { - "min": 0.0000000000, - "T_at_min": 932.9999772585, - "max": 0.0000000000, - "T_at_max": 708.9085832567 - }, - "gamma_PbCs_lbh15_Activity_coefficient_of_Cs-Pb_Caesium_intermetallic_compound_in_liquid_lead": { - "min": 0.0316227766, - "T_at_min": 1099.9999771533, - "max": 0.0316227766, - "T_at_max": 1099.9999771533 - }, - "P_PbCs_lbh15_Cs-Pb_Caesium_intermetallic_compound_vapour_pressure_in_liquid_lead": { - "min": 0.0000000000, - "T_at_min": 932.9999772585, - "max": 0.0000000000, - "T_at_max": 708.9086327201708 - }, - "gamma_Po_joy1963_Activity_coefficient_of_Polonium_in_liquid_bismuth": { - "min": 0.0022080953, - "T_at_min": 723.0000193862, - "max": 0.0487669181, - "T_at_max": 1122.9999686325 - }, - "gamma_Po_lbh15_Activity_coefficient_of_Polonium_in_liquid_bismuth": { - "min": 0.0046698529, - "T_at_min": 923.0000236099, - "max": 0.0087518712, - "T_at_max": 1037.9999771945 - }, - "P_BiI3_cubicciotti1959_Vapour_pressure_of_BiI3_Iodide_in_liquid_bismuth": { - "min": 237.64832610980847, - "T_at_min": 544.6000088591823, - "max": 86316731.09536353, - "T_at_max": 1830.9999648121470 - }, - "gamma_Cs_gverdtsiteli1984_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_bismuth": { - "min": 0.0031622777, - "T_at_min": 999.9999791205, - "max": 0.0031622777, - "T_at_max": 999.9999791205 + "T_at_min": 673.0000195100106, + "max": 1e-15, + "T_at_max": 999.9999743570503 }, - "K_Po_ohno2006_Henry_constant_of_Polonium_in_liquid_LBE": { - "min": 0.0975810518, - "T_at_min": 723.0000132379, - "max": 237.3487844736, - "T_at_max": 1022.9999771083 + "gamma_Cd_lbh15_Activity_coefficient_of_Cadmium_in_liquid_LBE": { + "min": 4, + "T_at_min": 849.4499812085684, + "max": 4, + "T_at_max": 849.4499812085684 }, - "K_PbPo_buongiorno2003_Henry_constant_of_Polonium_in_liquid_LBE": { - "min": 0.0177612640, - "T_at_min": 665.0000120712, - "max": 1.6206753711, - "T_at_max": 822.9999799523 + "K_Cd_lbh15_Henry_constant_of_Cadmium_in_liquid_LBE": { + "min": 0.116769555758837, + "T_at_min": 696.5500194006087, + "max": 2.125597851296796, + "T_at_max": 849.4499812085684 }, - "gamma_Po_ohno2006_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { - "min": 0.001139908769775767, - "T_at_min": 723.0000195402, - "max": 0.0057962945, - "T_at_max": 876.9999813914 + "gamma_Cs_lbh15_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { + "min": 0.031622776601684, + "T_at_min": 932.9999772585459, + "max": 0.031622776601684, + "T_at_max": 932.9999772585459 }, - "gamma_Po_lbh15_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { - "min": 0.02486674251805006, - "T_at_min": 913.0000266457, - "max": 0.0589435506, - "T_at_max": 1122.9999735432 + "gamma_Cs_ohno2006_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { + "min": 0.001115249729092, + "T_at_min": 723.0000128017854, + "max": 0.013588973358916, + "T_at_max": 1022.9999771082863 }, - "K_Hg_lbh15_Henry_constant_of_Mercury_in_liquid_LBE": { - "min": 21.3022269849, - "T_at_min": 526.5500115906, - "max": 343.9970060127, - "T_at_max": 679.4499805994 + "K_Cs_lbh15_Henry_constant_of_Caesium_intermettalic_compounds_in_liquid_LBE": { + "min": 0.0, + "T_at_min": 932.9999772585459, + "max": 0.0, + "T_at_max": 708.9085832566972 }, - "gamma_Hg_lbh15_Activity_coefficient_of_Mercury_in_liquid_LBE": { - "min": 2.0000000000, - "T_at_min": 679.4499805994, - "max": 2.0000000000, - "T_at_max": 679.4499805994 + "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 1, + "T_at_min": 1119.9999742661614, + "max": 1, + "T_at_max": 1119.9999742661614 }, - "K_Cd_lbh15_Henry_constant_of_Cadmium_in_liquid_LBE": { - "min": 0.1167695558, - "T_at_min": 696.5500194006, - "max": 2.1255978513, - "T_at_max": 849.4499812086 + "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.0, + "T_at_min": 697.0000149129803, + "max": 0.0, + "T_at_max": 1119.9999668288444 }, - "gamma_Cd_lbh15_Activity_coefficient_of_Cadmium_in_liquid_LBE": { - "min": 4.0000000000, - "T_at_min": 849.4499812086, - "max": 4.0000000000, - "T_at_max": 849.4499812086 + "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.067533228223181, + "T_at_min": 580.0000104113557, + "max": 22.123113129382677, + "T_at_max": 696.9999863177507 }, - "K_Tl_lbh15_Henry_constant_of_Thallium_in_liquid_LBE": { - "min": 0.0000006907, - "T_at_min": 696.5500153335, - "max": 0.0001281377, - "T_at_max": 849.4499812086 + "K_I_neuhausen2005_Henry_constant_of_monoatomic_Iodine_in_liquid_LBE": { + "min": 0.493011867536738, + "T_at_min": 700.0000108606505, + "max": 185368.2888892461, + "T_at_max": 1119.9999670641012 }, - "gamma_Tl_lbh15_Activity_coefficient_of_Thallium_in_liquid_LBE": { - "min": 0.8000000000, - "T_at_min": 849.4499812086, - "max": 0.8000000000, - "T_at_max": 849.4499812086 + "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.0, + "T_at_min": 697.0000149129803, + "max": 0.0, + "T_at_max": 1119.9999668288444 }, "P_PbI2_konings1996_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 0.0675332282, - "T_at_min": 580.0000104114, - "max": 22.1231131294, - "T_at_max": 696.9999863178 + "min": 0.067533228223181, + "T_at_min": 580.0000104113557, + "max": 22.123113129382677, + "T_at_max": 696.9999863177507 }, - "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 0.0000000000, - "T_at_min": 697.0000149130, - "max": 0.0000000000, - "T_at_max": 1119.9999668288 + "gamma_Hg_lbh15_Activity_coefficient_of_Mercury_in_liquid_LBE": { + "min": 2, + "T_at_min": 679.4499805993913, + "max": 2, + "T_at_max": 679.4499805993913 }, - "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 1.0000000000, - "T_at_min": 1119.9999742661614, - "max": 1.0000000000, - "T_at_max": 1119.9999742661614 + "K_Hg_lbh15_Henry_constant_of_Mercury_in_liquid_LBE": { + "min": 21.302226984927948, + "T_at_min": 526.5500115905764, + "max": 343.9970060126639, + "T_at_max": 679.4499805993913 }, - "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 0.0675332282, - "T_at_min": 580.0000104114, - "max": 22.1231131294, - "T_at_max": 696.9999863178 + "gamma_Po_lbh15_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { + "min": 0.02486674251805, + "T_at_min": 913.0000266457018, + "max": 0.058943550578041, + "T_at_max": 1122.9999735431632 }, - "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 0.0000000000, - "T_at_min": 697.0000149130, - "max": 0.0000000000, - "T_at_max": 1119.9999668288 + "gamma_Po_ohno2006_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { + "min": 0.001139908769776, + "T_at_min": 723.0000195401814, + "max": 0.005796294494951, + "T_at_max": 876.9999813913673 }, - "K_I_neuhausen2005_Henry_constant_of_monoatomic_Iodine_in_liquid_LBE": { - "min": 0.4930118675, - "T_at_min": 700.0000108607, - "max": 185368.2888892461, - "T_at_max": 1119.9999670641 + "K_PbPo_buongiorno2003_Henry_constant_of_Polonium_in_liquid_LBE": { + "min": 0.017761263998555, + "T_at_min": 665.00001207123, + "max": 1.620675371058366, + "T_at_max": 822.9999799522814 }, - "K_Cs_lbh15_Henry_constant_of_Caesium_intermettalic_compounds_in_liquid_LBE": { - "min": 2.4848725492608575e-33, - "T_at_min": 932.9999772585, - "max": 3.855017547852056e-33, - "T_at_max":708.9085832567 + "K_Po_ohno2006_Henry_constant_of_Polonium_in_liquid_LBE": { + "min": 0.097581051801276, + "T_at_min": 723.0000132379278, + "max": 237.34878447359293, + "T_at_max": 1022.9999771082863 }, - "gamma_Cs_lbh15_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { - "min": 0.0316227766, - "T_at_min": 932.9999772585, - "max": 0.0316227766, - "T_at_max": 932.9999772585 + "gamma_Rb_lbh15_Activity_coefficient_of_Rubidium_in_liquid_LBE": { + "min": 0.02, + "T_at_min": 949.449982691808, + "max": 0.02, + "T_at_max": 949.449982691808 }, - "gamma_Cs_ohno2006_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { - "min": 0.0011152497, - "T_at_min": 723.0000128018, - "max": 0.0135889734, - "T_at_max": 1022.9999771083 + "K_Rb_lbh15_Henry_constant_of_Rubidium_in_liquid_LBE": { + "min": 0.000922083892746, + "T_at_min": 796.5500194006087, + "max": 0.004342386323499, + "T_at_max": 949.449982691808 }, "P_Rb_landolt1960_Vapour_pressure_of_Rubidium_in_liquid_LBE": { - "min": 0.0461041946, - "T_at_min": 796.5500194006, - "max": 0.2171193162, - "T_at_max": 949.4499826918 + "min": 0.04610419463728, + "T_at_min": 796.5500194006087, + "max": 0.217119316174944, + "T_at_max": 949.449982691808 }, - "gamma_Rb_lbh15_Activity_coefficient_of_Rubidium_in_liquid_LBE": { - "min": 0.0200000000, - "T_at_min": 949.4499826918, - "max": 0.0200000000, - "T_at_max": 949.4499826918 + "gamma_Tl_lbh15_Activity_coefficient_of_Thallium_in_liquid_LBE": { + "min": 0.8, + "T_at_min": 849.4499812085684, + "max": 0.8, + "T_at_max": 849.4499812085684 }, - "K_Rb_lbh15_Henry_constant_of_Rubidium_in_liquid_LBE": { - "min": 0.0009220839, - "T_at_min": 796.5500194006, - "max": 0.0043423863, - "T_at_max": 949.4499826918 + "K_Tl_lbh15_Henry_constant_of_Thallium_in_liquid_LBE": { + "min": 6.90740783e-07, + "T_at_min": 696.5500153335043, + "max": 0.000128137664579, + "T_at_max": 849.4499812085684 } } \ No newline at end of file From 674a32b0549bc97aff9a7e64e61ff233dc6185d5 Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Thu, 29 Aug 2024 14:48:01 +0200 Subject: [PATCH 16/22] [189_contamination_tests], issue #189, Implementation of the is_constant method. Addition of the non injectivity of P_PbCs and K_PbCs. --- lbh15/_lbh15.py | 16 +--- lbh15/lead.py | 3 +- lbh15/properties/interface.py | 11 +++ .../lead_contamination.py | 91 ++++++++++++++++++- tests/test_lead_fromX_spanT.py | 22 ++++- 5 files changed, 125 insertions(+), 18 deletions(-) diff --git a/lbh15/_lbh15.py b/lbh15/_lbh15.py index 957cbd6..8f185b1 100644 --- a/lbh15/_lbh15.py +++ b/lbh15/_lbh15.py @@ -233,8 +233,6 @@ def check_temperature(self, T: float) -> Tuple[bool, str]: to the temperature check """ # Manage acceptable value - if np.isnan(T): - return True, "" if self.T_m0 < T < self.T_b0: return True, "" # Manage value outside the acceptable range @@ -427,14 +425,11 @@ def __compute_T(self, input_value: float, input_property: str) -> float: "value can not be computed!") # Check if the correlation is constant - range_of_function = self.__properties[input_property].range - test_value = function_of_T(range_of_function[0], self.__p) - if np.allclose(function_of_T(np.linspace(range_of_function[0] + 1, - range_of_function[1], 5), - self.__p), test_value, - atol=1e-25): - return float('nan') - + if self.__properties[input_property].is_constant(): + raise ValueError(f"The property {input_property} is " + "constant. The temperature value " + "can not be computed !") + def function_to_solve(T: float, target: float) -> float: return function_of_T(T, self.__p) - target @@ -459,7 +454,6 @@ def function_to_solve(T: float, target: float) -> float: .guess_helper(input_value)], args=(input_value), xtol=1e-10, full_output=True) - # Raise an exception in case the solver did not converge if ier == 0: raise RuntimeError(f"Error: {msg}\n" diff --git a/lbh15/lead.py b/lbh15/lead.py index 0f70938..d838aa1 100644 --- a/lbh15/lead.py +++ b/lbh15/lead.py @@ -95,7 +95,8 @@ class Lead(LiquidMetalInterface): 'lim_cr': "gosse2014", 'P_PbI2': 'knacke1991', 'K_PbI2': 'knacke1991'} _correlations_to_use: Dict[str, str] = copy.deepcopy(_default_corr_to_use) - _roots_to_use: Dict[str, int] = {'cp': 0, 'P_PbI2': 0, 'K_PbI2': 0} + _roots_to_use: Dict[str, int] = {'cp': 0, 'P_PbI2': 0, 'K_PbI2': 0, + 'K_PbCs': 1, 'P_PbCs': 1} _custom_properties_path: Dict[str, List[str]] = {} _available_properties_dict: Dict[str, PropertyInterface] = {} _available_correlations_dict: Dict[str, List[str]] = {} diff --git a/lbh15/properties/interface.py b/lbh15/properties/interface.py index 7448297..7be5377 100644 --- a/lbh15/properties/interface.py +++ b/lbh15/properties/interface.py @@ -126,6 +126,17 @@ def guess_helper(self, """ return None + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return False + def info(self, T: float, p: float = atm, print_info: bool = True, n_tab: int = 0) -> Union[None, str]: """ diff --git a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py index 284f1c3..c1d6c0d 100644 --- a/lbh15/properties/lead_thermochemical_properties/lead_contamination.py +++ b/lbh15/properties/lead_thermochemical_properties/lead_contamination.py @@ -113,6 +113,17 @@ def correlation(self, T: float, p: float = atm, """ return 1 + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ @@ -406,6 +417,17 @@ def correlation(self, T: float, p: float = atm, """ return 1 + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ @@ -624,7 +646,35 @@ def correlation(self, T: float, p: float = atm, Henry constant in :math:`[Pa]` """ return np.power(10, - 4980 / T - 9.323 * np.log(T) + 0.004473 * T - - 8.684 * 10**(-7) * T**(2) + 33.07) + - 8.684 * 10**(-7) * np.power(T, 2) + 33.07) + + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the pressure in :math:`[Pa]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + if property_value > 3.1e-33: + return [0.85, 1.2] + return [1, 1] + + @property + def is_injective(self) -> bool: + """ + bool : `True` if the correlation is injective, + `False` otherwise + """ + return False @property def name(self) -> str: @@ -700,6 +750,17 @@ def correlation(self, T: float, p: float = atm, """ return np.power(10, -1.5) + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ @@ -770,6 +831,34 @@ def correlation(self, T: float, p: float = atm, return LeadCaesiumHenryConstantYamshchikov2001().correlation(T, p) /\ LeadCaesiumActivityCoefficient().correlation(T, p) + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the pressure in :math:`[Pa]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + if property_value > 3.1e-33: + return [0.85, 1.2] + return [1, 1] + + @property + def is_injective(self) -> bool: + """ + bool : `True` if the correlation is injective, + `False` otherwise + """ + return False + @property def name(self) -> str: """ diff --git a/tests/test_lead_fromX_spanT.py b/tests/test_lead_fromX_spanT.py index a25525d..15660f8 100644 --- a/tests/test_lead_fromX_spanT.py +++ b/tests/test_lead_fromX_spanT.py @@ -32,7 +32,8 @@ def is_valid(obj): for T in Ts: leadPs.append(Lead(T=T)) -# Compute temperature discriminants for cp, P_PbI2 and K_PbI2 root index identification +# Compute temperature discriminants for cp, P_PbI2, K_PbI2 +# K_PbCs and P_PbCs root index identification cp_sobolev2011 = lead_properties.cp_sobolev2011() cp_sobolev2011.compute_bounds() T_change_sobolev2011 = cp_sobolev2011.T_at_min @@ -45,6 +46,12 @@ def is_valid(obj): K_PbI2 = lead_contamination.LeadIodineHenryConstantKnacke1991() K_PbI2.compute_bounds() T_change_K_PbI2 = K_PbI2.T_at_max +K_PbCs = lead_contamination.LeadCaesiumHenryConstantYamshchikov2001() +K_PbCs.compute_bounds() +T_change_K_PbCs = K_PbCs.T_at_max +P_PbCs = lead_contamination.LeadCaesiumVapourPressure() +P_PbCs.compute_bounds() +T_change_P_PbCs = P_PbCs.T_at_max class LeadTester(unittest.TestCase): @@ -124,6 +131,8 @@ def test_init_fromX(self): properties = load_prop('lbh15.properties.lead_thermochemical_properties.lead_contamination') for prop in properties: name = prop.name + if prop.is_constant(): + continue if name == 'P_PbI2' and\ (prop.correlation_name == 'knacke1991'\ and leadP.T > T_change_P_PbI2): @@ -132,12 +141,15 @@ def test_init_fromX(self): (prop.correlation_name == 'knacke1991'\ and leadP.T > T_change_K_PbI2): Lead.set_root_to_use('K_PbI2', 1) + if name == 'K_PbCs' and\ + leadP.T > T_change_K_PbCs: + Lead.set_root_to_use('K_PbCs', 0) + if name == 'P_PbCs' and\ + leadP.T > T_change_P_PbCs: + Lead.set_root_to_use('P_PbCs', 0) val = getattr(leadP, name) init_dict = {name: val} - fromX = Lead(**init_dict) - if np.isnan(fromX.T): - print(f"Test passed for {name} because it is a constant.") - continue + fromX = Lead(**init_dict) self.assertAlmostEqual(leadP.T, fromX.T, tol, name+" FAILED") if __name__ == "__main__": From abc487081c7d1cc084c3dd44c93a86381fc2419c Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Thu, 29 Aug 2024 15:22:55 +0200 Subject: [PATCH 17/22] [190_contamination_tests_bismuth], issue #190, Addition of the is_constant() method in bismuth_contamination.py. Adaptation of test_bismuth_fromX_spanT.py accordingly. --- .../bismuth_contamination.py | 11 +++++++++++ tests/test_bismuth_fromX_spanT.py | 5 ++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lbh15/properties/bismuth_thermochemical_properties/bismuth_contamination.py b/lbh15/properties/bismuth_thermochemical_properties/bismuth_contamination.py index c060c50..fc5db0b 100644 --- a/lbh15/properties/bismuth_thermochemical_properties/bismuth_contamination.py +++ b/lbh15/properties/bismuth_thermochemical_properties/bismuth_contamination.py @@ -234,6 +234,17 @@ def correlation(self, T: float, p: float = atm, """ return np.power(10, -2.5) + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ diff --git a/tests/test_bismuth_fromX_spanT.py b/tests/test_bismuth_fromX_spanT.py index 6135d3b..f0da0f8 100644 --- a/tests/test_bismuth_fromX_spanT.py +++ b/tests/test_bismuth_fromX_spanT.py @@ -91,12 +91,11 @@ def test_init_fromX(self): properties = load_prop('lbh15.properties.bismuth_thermochemical_properties.bismuth_contamination') for prop in properties: name = prop.name + if prop.is_constant(): + continue val = getattr(bismuthP, name) init_dict = {name: val} fromX = Bismuth(**init_dict) - if np.isnan(fromX.T): - print(f"Test passed for {name} because it is a constant.") - continue self.assertAlmostEqual(bismuthP.T, fromX.T, tol, name+" FAILED") From 6a51ff730496e4d73d6922b05179157c8dfeef2d Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Fri, 30 Aug 2024 12:52:52 +0200 Subject: [PATCH 18/22] [191_contamination_tests_lbe], issue #191, Implementation of the is_constant() method adaptations. Modification of load_prop() in test_lbe_fromX_spanT.py. --- lbh15/lbe.py | 3 +- .../lbe_contamination.py | 100 +++++++++++++++++- tests/test_lbe_fromX_spanT.py | 19 +++- 3 files changed, 116 insertions(+), 6 deletions(-) diff --git a/lbh15/lbe.py b/lbh15/lbe.py index 24f39a8..8c47dba 100644 --- a/lbh15/lbe.py +++ b/lbh15/lbe.py @@ -85,7 +85,8 @@ class LBE(LiquidMetalInterface): 'gamma_Po': 'ohno2006', 'P_PbI2': 'knacke1991', 'K_PbI2': 'knacke1991', 'gamma_Cs': 'lbh15'} _correlations_to_use: Dict[str, str] = copy.deepcopy(_default_corr_to_use) - _roots_to_use: Dict[str, int] = {'cp': 0, 'P_PbI2': 0, 'K_PbI2': 0} + _roots_to_use: Dict[str, int] = {'cp': 0, 'P_PbI2': 0, 'K_PbI2': 0, + 'K_Cs': 0} _custom_properties_path: Dict[str, List[str]] = {} _available_properties_dict: Dict[str, PropertyInterface] = {} _available_correlations_dict: Dict[str, List[str]] = {} diff --git a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py index 7325470..eced612 100644 --- a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py +++ b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py @@ -389,6 +389,17 @@ def correlation(self, T: float, p: float = atm, """ return 2 + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ @@ -525,6 +536,17 @@ def correlation(self, T: float, p: float = atm, """ return 4 + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ @@ -681,6 +703,17 @@ def correlation(self, T: float, p: float = atm, """ return 0.8 + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ @@ -847,6 +880,8 @@ def guess_helper(self, property_value: float) -> List[float]: """ if property_value > 3.5e-20: return [1.14, 1.65] + if property_value < 2e-22: + return [0.70, 1] return [1, 1] @property @@ -903,6 +938,17 @@ def correlation(self, T: float, p: float = atm, """ return 1 + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ @@ -1068,6 +1114,8 @@ def guess_helper(self, property_value: float) -> List[float]: """ if property_value > 3.5e-20: return [1.14, 1.65] + if property_value < 2e-22: + return [0.70, 1] return [1, 1] @property @@ -1091,7 +1139,7 @@ def range(self) -> List[float]: List[float] : Temperature validity range of the PbI2 Iodine compound Henry constant correlation function """ - return [697.0, 1120.0] + return [398.0, 1120.0] class LBEIodineHenryConstantNeuhausen2005(LBEIodineHenryConstantInterface): @@ -1211,6 +1259,34 @@ def correlation(self, T: float, p: float = atm, """ return LeadCaesiumHenryConstantYamshchikov2001().correlation(T, p) + def guess_helper(self, property_value: float) -> List[float]: + """ + Returns the coefficient values applied to the temperature initial + guess if the correlation is non injective. The return type is `None` + if the correlation is injective. + + Parameters + ---------- + property_value : float + value of the pressure in :math:`[Pa]` + + Returns + ------- + List[float]: + Temperature initial guess' coefficients + """ + if property_value > 2.3e-34: + return [0.5, 1] + return [1, 1] + + @property + def is_injective(self) -> bool: + """ + bool : `True` if the correlation is injective, + `False` otherwise + """ + return False + @property def name(self) -> str: """ @@ -1313,6 +1389,17 @@ def correlation(self, T: float, p: float = atm, """ return LeadCaesiumActivityCoefficient().correlation(T, p) + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def range(self) -> List[float]: """ @@ -1494,6 +1581,17 @@ def correlation(self, T: float, p: float = atm, """ return 0.02 + def is_constant(self) -> bool: + """ + Returns True if the correlation returns a constant value, + False otherwise. + + Returns + ------- + bool + """ + return True + @property def name(self) -> str: """ diff --git a/tests/test_lbe_fromX_spanT.py b/tests/test_lbe_fromX_spanT.py index d9a6a4e..25b3cc3 100644 --- a/tests/test_lbe_fromX_spanT.py +++ b/tests/test_lbe_fromX_spanT.py @@ -8,6 +8,7 @@ from lbh15.properties.interface import PropertyInterface from lbh15 import LBE from lbh15 import lead_contamination +from lbh15 import lbe_contamination from scipy.constants import convert_temperature @@ -17,7 +18,8 @@ def load_prop(module_name): def is_valid(obj): return inspect.isclass(obj) and obj is not PropertyInterface \ and not inspect.isabstract(obj) \ - and issubclass(obj, PropertyInterface) + and issubclass(obj, PropertyInterface) \ + and not obj.__module__.endswith("lead_contamination") for _, obj in inspect.getmembers(sys.modules[module_name], is_valid): propertyObjectList.append(obj()) @@ -38,6 +40,9 @@ def is_valid(obj): K_PbI2 = lead_contamination.LeadIodineHenryConstantKnacke1991() K_PbI2.compute_bounds() T_change_K_PbI2 = K_PbI2.T_at_max +K_Cs = lead_contamination.LeadCaesiumHenryConstantYamshchikov2001() +K_Cs.compute_bounds() +T_change_K_Cs = K_Cs.T_at_max class LBETester(unittest.TestCase): @@ -105,6 +110,7 @@ def test_init_fromX(self): fromX = LBE(**init_dict) self.assertAlmostEqual(lbeP.T, fromX.T, tol, name+" FAILED") + class LBEContaminationTester(unittest.TestCase): def test_init_fromX(self): @@ -112,6 +118,11 @@ def test_init_fromX(self): properties = load_prop('lbh15.properties.lbe_thermochemical_properties.lbe_contamination') for prop in properties: name = prop.name + if name == 'gamma_Cs' and prop.correlation_name == 'ohno2006': + lbeP.change_correlation_to_use(name, prop.correlation_name) + LBE.set_correlation_to_use(name, prop.correlation_name) + if prop.is_constant(): + continue if name == 'P_PbI2' and\ (prop.correlation_name == 'knacke1991'\ and lbeP.T > T_change_P_PbI2): @@ -120,12 +131,12 @@ def test_init_fromX(self): (prop.correlation_name == 'knacke1991'\ and lbeP.T > T_change_K_PbI2): LBE.set_root_to_use('K_PbI2', 1) + if name == 'K_Cs' and\ + lbeP.T > T_change_K_Cs: + LBE.set_root_to_use('K_Cs', 1) val = getattr(lbeP, name) init_dict = {name: val} fromX = LBE(**init_dict) - if np.isnan(fromX.T): - print(f"Test passed for {name} because it is a constant.") - continue self.assertAlmostEqual(lbeP.T, fromX.T, tol, name+" FAILED") From f84a1558507456bd1b6f27d33946536f1a1e27bd Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Fri, 30 Aug 2024 13:11:44 +0200 Subject: [PATCH 19/22] [191_contamination_tests_lbe], issue #191, Modifications to update the merge. --- .../lbe_thermochemical_properties/lbe_contamination.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py index a4e13f3..5076435 100644 --- a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py +++ b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py @@ -1139,7 +1139,7 @@ def range(self) -> List[float]: List[float] : Temperature validity range of the PbI2 Iodine compound Henry constant correlation function """ - return [398.0, 1120.0] + return [697.0, 1120.0] class LBEIodineHenryConstantNeuhausen2005(LBEIodineHenryConstantInterface): From 35365de2d446ce314fa50256b377904cdcf644bf Mon Sep 17 00:00:00 2001 From: Sami Amestas Date: Fri, 30 Aug 2024 15:36:20 +0200 Subject: [PATCH 20/22] [191_contamination_tests_lbe], issue #191, The test_lbe_fromX_spanT works in local. It has been a little bit cleaned to test it again remotely. --- tests/test_lbe_fromX_spanT.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/test_lbe_fromX_spanT.py b/tests/test_lbe_fromX_spanT.py index 25b3cc3..b202961 100644 --- a/tests/test_lbe_fromX_spanT.py +++ b/tests/test_lbe_fromX_spanT.py @@ -3,12 +3,10 @@ import sys import os import inspect -import numpy as np sys.path.insert(0, os.path.abspath('..')) from lbh15.properties.interface import PropertyInterface from lbh15 import LBE from lbh15 import lead_contamination -from lbh15 import lbe_contamination from scipy.constants import convert_temperature From 7c237b7d0ca6e07d1453ea0a06a45292ff48ea59 Mon Sep 17 00:00:00 2001 From: Gabriele Ottino Date: Fri, 30 Aug 2024 15:59:29 +0200 Subject: [PATCH 21/22] [191_contamination_tests_lbe], issue #191, Solved issue about different validity ranges between lead and LBE --- .../lbe_contamination.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py index 5076435..c82375c 100644 --- a/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py +++ b/lbh15/properties/lbe_thermochemical_properties/lbe_contamination.py @@ -7,14 +7,6 @@ from ..._decorators import range_warning from ..._commons import LBE_MELTING_TEMPERATURE as T_m0 from ..._commons import LBE_BOILING_TEMPERATURE as T_b0 -from ..lead_thermochemical_properties.lead_contamination \ - import LeadIodineVapourPressureKonings1996 -from ..lead_thermochemical_properties.lead_contamination \ - import LeadIodineVapourPressureKnacke1991 -from ..lead_thermochemical_properties.lead_contamination \ - import LeadCaesiumActivityCoefficient -from ..lead_thermochemical_properties.lead_contamination \ - import LeadCaesiumHenryConstantYamshchikov2001 class LBEPoloniumHenryConstantInterface(PropertyInterface): @@ -814,7 +806,7 @@ def correlation(self, T: float, p: float = atm, float: pressure in :math:`[Pa]` """ - return LeadIodineVapourPressureKonings1996().correlation(T, p) + return np.power(10, - 8691 / T + 13.814) @property def correlation_name(self) -> str: @@ -860,7 +852,7 @@ def correlation(self, T: float, p: float = atm, float: pressure in :math:`[Pa]` """ - return LeadIodineVapourPressureKnacke1991().correlation(T, p) + return np.power(10, - 9087 / T - 6.16 * np.log(T) + 31.897) def guess_helper(self, property_value: float) -> List[float]: """ @@ -1257,7 +1249,8 @@ def correlation(self, T: float, p: float = atm, float: Henry constant in :math:`[Pa]` """ - return LeadCaesiumHenryConstantYamshchikov2001().correlation(T, p) + return np.power(10, - 4980 / T - 9.323 * np.log(T) + 0.004473 * T + - 8.684 * 10**(-7) * np.power(T, 2) + 33.07) def guess_helper(self, property_value: float) -> List[float]: """ @@ -1387,7 +1380,7 @@ def correlation(self, T: float, p: float = atm, float: activity coefficient in :math:`[-]` """ - return LeadCaesiumActivityCoefficient().correlation(T, p) + return np.power(10, -1.5) def is_constant(self) -> bool: """ From 7ecb01b87dc48f9fe7ef146afecaf87001b06f07 Mon Sep 17 00:00:00 2001 From: Gabriele Ottino Date: Fri, 30 Aug 2024 16:06:43 +0200 Subject: [PATCH 22/22] [191_contamination_tests_lbe], issue #191, Updated contaminant reference data according to what done when handling issue 188 --- tests/properties_bounds.json | 1354 +++++++++++++++++----------------- 1 file changed, 674 insertions(+), 680 deletions(-) diff --git a/tests/properties_bounds.json b/tests/properties_bounds.json index 6632bde..3c78fb6 100644 --- a/tests/properties_bounds.json +++ b/tests/properties_bounds.json @@ -1,974 +1,968 @@ { "alpha_lbh15_Liquid_lead_thermal_expansion_coefficient": { - "min": 0.000119884, - "T_at_min": 600.600016251, - "max": 0.0001444878, - "T_at_max": 2020.9999611359 + "min": 0.000119883952568, + "T_at_min": 600.6000162510092, + "max": 0.00014448778997, + "T_at_max": 2020.9999611359272 }, "beta_s_lbh15_Liquid_lead_isentropic_compressibility": { - "min": 0.0, - "T_at_min": 600.6000160107, - "max": 1e-10, - "T_at_max": 1999.9999618422 + "min": 2.8751e-11, + "T_at_min": 600.6000160107451, + "max": 5.2746e-11, + "T_at_max": 1999.999961842222 }, "cp_gurvich1991_Liquid_lead_specific_heat_capacity": { - "min": 137.2871331822, - "T_at_min": 1682.5219138071, - "max": 147.78490806, - "T_at_max": 600.6000160107 + "min": 137.28713318220272, + "T_at_min": 1682.5219138070895, + "max": 147.78490805998962, + "T_at_max": 600.6000160107451 }, "cp_sobolev2011_Liquid_lead_specific_heat_capacity": { - "min": 136.3486491575, - "T_at_min": 1568.6647571773, - "max": 147.9771047426, - "T_at_max": 600.6000160107 + "min": 136.34864915749822, + "T_at_min": 1568.6647571773037, + "max": 147.9771047426332, + "T_at_max": 600.6000160107451 }, "h_sobolev2011_Liquid_lead_specific_enthalpy_(as_difference_with_respect_to_the_melting_point_enthalpy)": { - "min": 0.0023692295, - "T_at_min": 600.6000160107, - "max": 195278.8532229452, - "T_at_max": 1999.9999618422 + "min": 0.002369229485654, + "T_at_min": 600.6000160107451, + "max": 195278.85322294518, + "T_at_max": 1999.999961842222 }, "k_lbh15_Liquid_lead_thermal_conductivity": { - "min": 15.8066001325, - "T_at_min": 600.600012041, - "max": 23.4999996271, - "T_at_max": 1299.9999661032 + "min": 15.806600132450779, + "T_at_min": 600.60001204098, + "max": 23.49999962713561, + "T_at_max": 1299.9999661032377 }, "mu_lbh15_Liquid_lead_dynamic_viscosity": { - "min": 0.0009401385, - "T_at_min": 1472.9999577187, - "max": 0.0026977791, - "T_at_max": 600.60001615 + "min": 0.00094013853579, + "T_at_min": 1472.999957718708, + "max": 0.002697779081182, + "T_at_max": 600.6000161500165 }, "p_s_sobolev2011_Liquid_lead_saturation_vapour_pressure": { - "min": 5.721e-07, - "T_at_min": 600.6000113097, - "max": 101081.6167665516, - "T_at_max": 2020.9999611359 + "min": 5.72102399e-07, + "T_at_min": 600.6000113097255, + "max": 101081.61676655158, + "T_at_max": 2020.9999611359272 }, "r_lbh15_Liquid_lead_electrical_resistivity": { - "min": 9.529e-07, - "T_at_min": 600.6000112322, - "max": 1.2696e-06, - "T_at_max": 1272.9999674118 + "min": 9.52882605e-07, + "T_at_min": 600.6000112322404, + "max": 1.269582985e-06, + "T_at_max": 1272.999967411806 }, "rho_sobolev2008a_Liquid_lead_density": { - "min": 8855.1305497266, - "T_at_min": 2020.9999611359, - "max": 10672.5322792068, - "T_at_max": 600.600016251 + "min": 8855.130549726582, + "T_at_min": 2020.9999611359272, + "max": 10672.532279206835, + "T_at_max": 600.6000162510092 }, "sigma_jauch1986_Liquid_lead_surface_tension": { - "min": 0.3790000038, - "T_at_min": 1299.9999661032, - "max": 0.4580321986, - "T_at_max": 600.600012041 + "min": 0.379000003830334, + "T_at_min": 1299.9999661032377, + "max": 0.458032198639369, + "T_at_max": 600.60001204098 }, "u_s_sobolev2011_Sound_velocity_in_liquid_lead": { - "min": 1461.0000093868, - "T_at_min": 1999.9999618422, - "max": 1805.2523960614, - "T_at_max": 600.6000160107 + "min": 1461.0000093868134, + "T_at_min": 1999.999961842222, + "max": 1805.2523960613566, + "T_at_max": 600.6000160107451 }, "cr_sol_alden1958_chromium_solubility_in_liquid_lead": { - "min": 0.0105804651, - "T_at_min": 1181.000020802, - "max": 0.1543175276, - "T_at_max": 1482.9999616809 + "min": 0.010580465069446, + "T_at_min": 1181.0000208019626, + "max": 0.154317527598545, + "T_at_max": 1482.9999616809428 }, "cr_sol_gosse2014_chromium_solubility_in_liquid_lead": { - "min": 3.62e-08, - "T_at_min": 601.0000169449, - "max": 0.7420325344, - "T_at_max": 1772.9999694963 + "min": 3.6177308e-08, + "T_at_min": 601.0000169449064, + "max": 0.742032534410458, + "T_at_max": 1772.9999694963203 }, "cr_sol_venkatraman1988_chromium_solubility_in_liquid_lead": { - "min": 0.0093562075, - "T_at_min": 1173.0000206669, - "max": 0.1373667919, - "T_at_max": 1472.9999619347 + "min": 0.009356207505308, + "T_at_min": 1173.000020666853, + "max": 0.137366791929709, + "T_at_max": 1472.9999619347113 }, "fe_sol_gosse2014_iron_solubility_in_liquid_lead": { - "min": 2.522e-07, - "T_at_min": 600.0000166405, - "max": 0.0045249048, - "T_at_max": 1172.9999724645 + "min": 2.52154607e-07, + "T_at_min": 600.0000166404512, + "max": 0.004524904770177, + "T_at_max": 1172.999972464458 }, "ni_sol_gosse2014_nickel_solubility_in_liquid_lead": { - "min": 0.1064692367, - "T_at_min": 598.0000154605, - "max": 0.689818701, - "T_at_max": 916.9999749844 + "min": 0.106469236711521, + "T_at_min": 598.0000154604908, + "max": 0.689818701045892, + "T_at_max": 916.9999749844005 }, "o_sol_lbh15_oxygen_solubility_in_liquid_lead": { - "min": 5.45364e-05, - "T_at_min": 673.0000180825, - "max": 0.3605961046, - "T_at_max": 1372.9999660742 + "min": 5.4536426802e-05, + "T_at_min": 673.000018082542, + "max": 0.360596104601807, + "T_at_max": 1372.9999660741587 }, "si_sol_lbh15_silicon_solubility_in_liquid_lead": { - "min": 0.028770034, - "T_at_min": 1323.0000214373, - "max": 0.148463727, - "T_at_max": 1522.9999589394 + "min": 0.02877003400201, + "T_at_min": 1323.0000214373254, + "max": 0.148463726999077, + "T_at_max": 1522.9999589393794 }, "co_dif_lbh15_cobalt_diffusivity_in_liquid_lead": { - "min": 3.4e-09, - "T_at_min": 1023.0000165475, - "max": 5.7e-09, - "T_at_max": 1272.9999682789 + "min": 3.400878e-09, + "T_at_min": 1023.000016547498, + "max": 5.672009e-09, + "T_at_max": 1272.9999682789262 }, "in_dif_lbh15_indium_diffusivity_in_liquid_lead": { - "min": 3.1e-09, - "T_at_min": 723.0000110856, - "max": 7.5e-09, - "T_at_max": 1172.99998211 + "min": 3.124676e-09, + "T_at_min": 723.000011085613, + "max": 7.535563e-09, + "T_at_max": 1172.9999821099711 }, "fe_dif_lbh15_iron_diffusivity_in_liquid_lead": { - "min": 2.1e-09, - "T_at_min": 973.0000235256, - "max": 7.7e-09, - "T_at_max": 1272.9999808164 + "min": 2.144448e-09, + "T_at_min": 973.0000235256421, + "max": 7.712089e-09, + "T_at_max": 1272.9999808163855 }, "o_dif_arcella1968_oxygen_diffusivity_in_liquid_lead": { - "min": 1e-09, - "T_at_min": 973.0000253769, - "max": 1.4e-09, - "T_at_max": 1172.9999763378 + "min": 9.92198e-10, + "T_at_min": 973.000025376859, + "max": 1.360514e-09, + "T_at_max": 1172.999976337814 }, "o_dif_charle1976_oxygen_diffusivity_in_liquid_lead": { - "min": 2.22e-08, - "T_at_min": 1173.0000236622, - "max": 3.04e-08, - "T_at_max": 1372.9999793043 + "min": 2.2226729e-08, + "T_at_min": 1173.000023662185, + "max": 3.0382176e-08, + "T_at_max": 1372.9999793042932 }, "o_dif_ganesan2006b_oxygen_diffusivity_in_liquid_lead": { - "min": 4e-10, - "T_at_min": 823.0000169763, - "max": 1.5e-09, - "T_at_max": 1052.9999708166 + "min": 3.56713e-10, + "T_at_min": 823.0000169762914, + "max": 1.528552e-09, + "T_at_max": 1052.999970816612 }, "o_dif_gromov1996_oxygen_diffusivity_in_liquid_lead": { - "min": 4e-10, - "T_at_min": 673.000017972, - "max": 1.4e-09, - "T_at_max": 1272.9999718304 + "min": 3.67681e-10, + "T_at_min": 673.0000179719914, + "max": 1.434004e-09, + "T_at_max": 1272.9999718303898 }, "o_dif_homna1971_oxygen_diffusivity_in_liquid_lead": { - "min": 1e-09, - "T_at_min": 1073.0000221501, - "max": 1.7e-09, - "T_at_max": 1372.9999619347 + "min": 1.015985e-09, + "T_at_min": 1073.0000221500927, + "max": 1.661503e-09, + "T_at_max": 1372.9999619347113 }, "o_dif_otsuka1975_oxygen_diffusivity_in_liquid_lead": { - "min": 2e-08, - "T_at_min": 1173.0000236622, - "max": 2.68e-08, - "T_at_max": 1372.9999793043 + "min": 2.0047558e-08, + "T_at_min": 1173.000023662185, + "max": 2.6824342e-08, + "T_at_max": 1372.9999793042932 }, "o_dif_swzarc1972_oxygen_diffusivity_in_liquid_lead": { - "min": 6.6e-09, - "T_at_min": 1013.0000266624, - "max": 1.43e-08, - "T_at_max": 1352.9999769276 + "min": 6.617706e-09, + "T_at_min": 1013.0000266623945, + "max": 1.4349981e-08, + "T_at_max": 1352.9999769276053 }, "se_dif_lbh15_selenium_diffusivity_in_liquid_lead": { - "min": 5.1e-09, - "T_at_min": 823.0000152395, - "max": 9e-09, - "T_at_max": 1172.9999729889 + "min": 5.117633e-09, + "T_at_min": 823.000015239486, + "max": 9.004507e-09, + "T_at_max": 1172.9999729889312 }, "te_dif_lbh15_tellurium_diffusivity_in_liquid_lead": { - "min": 2.2e-09, - "T_at_min": 723.0000110856, - "max": 6.1e-09, - "T_at_max": 1172.99998211 + "min": 2.207046e-09, + "T_at_min": 723.000011085613, + "max": 6.082024e-09, + "T_at_max": 1172.9999821099711 }, "G_lbh15_Gibbs_free_energy_variation_in_liquid_lead": { - "min": -29.6732366576, - "T_at_min": 1999.9999618422, - "max": 1e-10, - "T_at_max": 600.6014640717 + "min": -29.673236657633808, + "T_at_min": 1999.999961842222, + "max": 5.4716e-11, + "T_at_max": 600.6014640717282 }, "H_lbh15_molar_enthalpy_variation_in_liquid_lead": { - "min": 4.909e-07, - "T_at_min": 600.6000160107, - "max": 40.4617783878, - "T_at_max": 1999.9999618422 + "min": 4.90904349e-07, + "T_at_min": 600.6000160107451, + "max": 40.46177838779424, + "T_at_max": 1999.999961842222 }, "S_lbh15_molar_entropy_variation_in_liquid_lead": { - "min": 8e-10, - "T_at_min": 600.6000160107, - "max": 0.0350675082, - "T_at_max": 1999.9999618422 + "min": 8.17355e-10, + "T_at_min": 600.6000160107451, + "max": 0.035067508191763, + "T_at_max": 1999.999961842222 }, "o_pp_alcock1964_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 3.62e-08, - "T_at_min": 783.0000202001, - "max": 4.71393e-05, - "T_at_max": 972.999975892 + "min": 3.6212842e-08, + "T_at_min": 783.0000202001462, + "max": 4.7139308689e-05, + "T_at_max": 972.9999758919839 }, "o_pp_charle1976_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0157447029, - "T_at_min": 1173.0000285823, - "max": 0.5669828293, - "T_at_max": 1372.9999793043 + "min": 0.015744702900625, + "T_at_min": 1173.0000285822598, + "max": 0.566982829288443, + "T_at_max": 1372.9999793042932 }, "o_pp_fisher1966_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 9.55198e-05, - "T_at_min": 903.0000255083, - "max": 0.2643337647, - "T_at_max": 1252.9999741755 + "min": 9.5519783639e-05, + "T_at_min": 903.0000255082603, + "max": 0.264333764689828, + "T_at_max": 1252.9999741755228 }, "o_pp_ganesan2006_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 2.669e-07, - "T_at_min": 815.0000172979, - "max": 0.0022647564, - "T_at_max": 1089.9999812742 + "min": 2.66862029e-07, + "T_at_min": 815.0000172979202, + "max": 0.002264756436346, + "T_at_max": 1089.9999812741644 }, "o_pp_isecke1977_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.015760074, - "T_at_min": 1173.0000289778, - "max": 0.5767067644, - "T_at_max": 1372.9999793043 + "min": 0.015760073993477, + "T_at_min": 1173.0000289777936, + "max": 0.576706764364238, + "T_at_max": 1372.9999793042932 }, "o_pp_otsuka1979_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0013964659, - "T_at_min": 1073.0000287357, - "max": 19.5356967881, - "T_at_max": 1672.9999529487 + "min": 0.001396465921043, + "T_at_min": 1073.0000287356625, + "max": 19.53569678813021, + "T_at_max": 1672.9999529487159 }, "o_pp_otsuka1981_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0003987713, - "T_at_min": 1023.0000267898, - "max": 0.0897786661, - "T_at_max": 1272.9999682789 + "min": 0.000398771251447, + "T_at_min": 1023.0000267898392, + "max": 0.089778666098183, + "T_at_max": 1272.9999682789262 }, "o_pp_szwarc1972_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0174733543, - "T_at_min": 1012.0000245197, - "max": 9.9883627314, - "T_at_max": 1352.9999768007 + "min": 0.017473354300596, + "T_at_min": 1012.0000245196775, + "max": 9.988362731371112, + "T_at_max": 1352.9999768007208 }, "o_pp_taskinen1979_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lead": { - "min": 0.0015206948, - "T_at_min": 1073.0000266894, - "max": 0.0257872157, - "T_at_max": 1202.999974659 + "min": 0.001520694848039, + "T_at_min": 1073.0000266894035, + "max": 0.025787215686601, + "T_at_max": 1202.9999746590447 }, "lim_cr_alden1958_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lead": { "min": 0.0, - "T_at_min": 673.0000133819, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000133818933, + "max": 1.47e-13, + "T_at_max": 999.9999743570503 }, "lim_cr_gosse2014_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lead": { "min": 0.0, - "T_at_min": 673.0000124208, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000124208025, + "max": 1.43e-13, + "T_at_max": 999.9999743570503 }, "lim_cr_venkatraman1988_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lead": { "min": 0.0, - "T_at_min": 673.0000131001, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000131000504, + "max": 1.45e-13, + "T_at_max": 999.9999743570503 }, "lim_fe_lbh15_Oxygen_concentration_lower_limit_times_iron_concentration_raised_to_3/4_in_lead": { - "min": 0.0, - "T_at_min": 673.000017791, - "max": 5.8e-09, - "T_at_max": 999.9999743571 + "min": 9e-15, + "T_at_min": 673.0000177910331, + "max": 5.772708e-09, + "T_at_max": 999.9999743570503 }, "lim_ni_lbh15_Oxygen_concentration_lower_limit_times_nickel_concentration_in_lead": { - "min": 1.029e-07, - "T_at_min": 673.0000121086, - "max": 8.52242e-05, - "T_at_max": 916.9999826416 + "min": 1.02944838e-07, + "T_at_min": 673.0000121085645, + "max": 8.5224169321e-05, + "T_at_max": 916.999982641573 }, "lim_al_sat_lbh15_Oxygen_concentration_lower_limit_for_aluminium_at_its_saturation_concentration_in_liquid_lead": { "min": 0.0, - "T_at_min": 673.0000133122, + "T_at_min": 673.0000133121973, "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_max": 999.9999743570503 }, "lim_cr_sat_lbh15_Oxygen_concentration_lower_limit_for_chromium_at_its_saturation_concentration_in_liquid_lead": { "min": 0.0, - "T_at_min": 673.0000155753, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000155752929, + "max": 1.4931e-11, + "T_at_max": 999.9999743570503 }, "lim_fe_sat_lbh15_Oxygen_concentration_lower_limit_foriron_at_its_saturation_concentration_in_liquid_lead": { - "min": 2e-10, - "T_at_min": 673.0000121095, - "max": 1.2521e-06, - "T_at_max": 999.9999743571 + "min": 1.56987e-10, + "T_at_min": 673.000012109508, + "max": 1.25207307e-06, + "T_at_max": 999.9999743570503 }, "lim_ni_sat_lbh15_Oxygen_concentration_lower_limit_for_nickel_at_its_saturation_concentration_in_liquid_lead": { - "min": 5.314e-07, - "T_at_min": 673.0000180933, - "max": 0.0004301025, - "T_at_max": 999.9999743571 + "min": 5.3138946e-07, + "T_at_min": 673.0000180933367, + "max": 0.000430102517012, + "T_at_max": 999.9999743570503 }, "lim_si_sat_lbh15_Oxygen_concentration_lower_limit_for_silicon_at_its_saturation_concentration_in_liquid_lead": { "min": 0.0, - "T_at_min": 673.0000163988, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000163988171, + "max": 2e-15, + "T_at_max": 999.9999743570503 }, "lim_si_lbh15_Oxygen_concentration_lower_limit_times_silicon_concentration_raised_to_1/2_in_lead": { "min": 0.0, - "T_at_min": 673.000012831, + "T_at_min": 673.0000128309707, + "max": 0.0, + "T_at_max": 999.9999743570503 + }, + "gamma_PbCs_lbh15_Activity_coefficient_of_Cs-Pb_Caesium_intermetallic_compound_in_liquid_lead": { + "min": 0.031622776601684, + "T_at_min": 1099.999977153317, + "max": 0.031622776601684, + "T_at_max": 1099.999977153317 + }, + "K_PbCs_yamshchikov2001_Cs-Pb_Caesium_intermetallic_compound_Henry_constant_in_liquid_lead": { + "min": 0.0, + "T_at_min": 932.9999772585459, + "max": 0.0, + "T_at_max": 708.9085832566972 + }, + "P_PbCs_lbh15_Cs-Pb_Caesium_intermetallic_compound_vapour_pressure_in_liquid_lead": { + "min": 0.0, + "T_at_min": 932.9999772585459, + "max": 0.0, + "T_at_max": 708.908593771417 + }, + "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 1, + "T_at_min": 2020.9999611359272, + "max": 1, + "T_at_max": 2020.9999611359272 + }, + "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.0, + "T_at_min": 697.0000136286183, + "max": 0.0, + "T_at_max": 1475.1623011938134 + }, + "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.220531621726107, + "T_at_min": 600.600014181742, + "max": 22.123107562218102, + "T_at_max": 696.9999802087809 + }, + "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.0, + "T_at_min": 697.0000136286183, "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_max": 1475.1623011938134 + }, + "P_PbI2_konings1996_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { + "min": 0.220531621726107, + "T_at_min": 600.600014181742, + "max": 22.123107562218102, + "T_at_max": 696.9999802087809 + }, + "gamma_PbPo_li1998_Activity_coefficient_of_PbPo_compound_in_liquid_lead": { + "min": 1, + "T_at_min": 1122.9999735431632, + "max": 1, + "T_at_max": 1122.9999735431632 + }, + "K_PbPo_lbh15_Henry_constant_of_PbPo_compound_in_liquid_lead": { + "min": 12.509503438763986, + "T_at_min": 913.000023192315, + "max": 385.7169908818606, + "T_at_max": 1122.9999735431632 + }, + "P_PbPo_abakumov1994a_Vapour_pressure_of_PbPo_compound_in_liquid_lead": { + "min": 12.509503438763986, + "T_at_min": 913.000023192315, + "max": 385.7169908818606, + "T_at_max": 1122.9999735431632 }, "alpha_lbh15_Liquid_bismuth_thermal_expansion_coefficient": { - "min": 0.000121265, - "T_at_min": 544.6000147179, - "max": 0.0001436782, - "T_at_max": 1830.9999648121 + "min": 0.000121265037081, + "T_at_min": 544.6000147178952, + "max": 0.000143678160193, + "T_at_max": 1830.999964812147 }, "beta_s_lbh15_Liquid_bismuth_isentropic_compressibility": { - "min": 0.0, - "T_at_min": 544.6000143632, - "max": 1e-10, - "T_at_max": 1799.9999658548 + "min": 3.6395e-11, + "T_at_min": 544.6000143632194, + "max": 7.6278e-11, + "T_at_max": 1799.9999658547729 }, "cp_imbeni1998_Liquid_bismuth_specific_heat_capacity": { - "min": 130.1518437746, - "T_at_min": 1342.7529236016, - "max": 145.6503420649, - "T_at_max": 544.6000147179 + "min": 130.15184377460824, + "T_at_min": 1342.7529236016146, + "max": 145.65034206490986, + "T_at_max": 544.6000147178952 }, "h_sobolev2011_Liquid_bismuth_specific_enthalpy_(as_difference_with_respect_to_the_melting_point_enthalpy)": { - "min": 0.0021436665, - "T_at_min": 544.6000147179, + "min": 0.002143666473532, + "T_at_min": 544.6000147178952, "max": 170386.0478107512, - "T_at_max": 1830.9999648121 + "T_at_max": 1830.999964812147 }, "k_touloukian1970b_Liquid_bismuth_thermal_conductivity": { - "min": 12.5137001296, - "T_at_min": 544.6000136407, - "max": 16.8399998016, - "T_at_max": 999.9999791205 + "min": 12.513700129587043, + "T_at_min": 544.6000136407414, + "max": 16.839999801644797, + "T_at_max": 999.999979120505 }, "mu_lucas1984b_Liquid_bismuth_dynamic_viscosity": { - "min": 0.0008119362, - "T_at_min": 1299.9999633892, - "max": 0.0018662111, - "T_at_max": 544.6000139841 + "min": 0.000811936151174, + "T_at_min": 1299.9999633891703, + "max": 0.001866211092227, + "T_at_max": 544.6000139840927 }, "p_s_sobolev2011_Liquid_bismuth_saturation_vapour_pressure": { - "min": 1.58e-08, - "T_at_min": 544.6000099395, - "max": 101117.711436216, - "T_at_max": 1830.9999648121 + "min": 1.578573e-08, + "T_at_min": 544.6000099395206, + "max": 101117.71143621602, + "T_at_max": 1830.999964812147 }, "r_lbh15_Liquid_bismuth_electrical_resistivity": { - "min": 1.2915e-06, - "T_at_min": 545.00000817, - "max": 1.7779e-06, - "T_at_max": 1422.9999785538 + "min": 1.291530005e-06, + "T_at_min": 545.0000081699945, + "max": 1.777941988e-06, + "T_at_max": 1422.999978553835 }, "rho_imbeni1998_Liquid_bismuth_density": { - "min": 8491.1800429292, - "T_at_min": 1830.9999648121, - "max": 10060.5879820442, - "T_at_max": 544.6000147179 - }, - "sigma_sobolev2011_Liquid_bismuth_surface_tension": { - "min": 0.3074000034, - "T_at_min": 1399.9999585426, - "max": 0.3766873987, - "T_at_max": 544.6000158353 + "min": 8491.18004292918, + "T_at_min": 1830.999964812147, + "max": 10060.587982044168, + "T_at_max": 544.6000147178952 }, "u_s_sobolev2011_Sound_velocity_in_liquid_bismuth": { - "min": 1239.8000206579, - "T_at_min": 1799.9999658548, - "max": 1652.5905840441, - "T_at_max": 544.6000143632 + "min": 1239.800020657862, + "T_at_min": 1799.9999658547729, + "max": 1652.5905840441499, + "T_at_max": 544.6000143632194 }, "cr_sol_gosse2014_chromium_solubility_in_liquid_bismuth": { - "min": 5.20172e-05, - "T_at_min": 545.0000150386, - "max": 2.0132743067, - "T_at_max": 1772.9999667823 + "min": 5.2017200076e-05, + "T_at_min": 545.0000150386322, + "max": 2.013274306739782, + "T_at_max": 1772.9999667822526 }, "cr_sol_venkatraman1988_chromium_solubility_in_liquid_bismuth": { - "min": 0.0007139667, - "T_at_min": 658.0000183323, - "max": 0.0215447101, - "T_at_max": 900.9999825311 + "min": 0.000713966713168, + "T_at_min": 658.000018332328, + "max": 0.021544710106284, + "T_at_max": 900.9999825311388 }, "cr_sol_weeks1998_chromium_solubility_in_liquid_bismuth": { - "min": 0.000782826, - "T_at_min": 663.0000124151, - "max": 0.059641836, - "T_at_max": 997.9999737297 + "min": 0.000782826039485, + "T_at_min": 663.0000124151118, + "max": 0.05964183599476, + "T_at_max": 997.9999737296996 }, "fe_sol_gosse2014_iron_solubility_in_liquid_bismuth": { - "min": 9.7497e-06, - "T_at_min": 545.0000085106, - "max": 0.0707320559, - "T_at_max": 1172.9999695637 + "min": 9.749692944e-06, + "T_at_min": 545.000008510586, + "max": 0.070732055878932, + "T_at_max": 1172.9999695636734 }, "fe_sol_massalski1990_iron_solubility_in_liquid_bismuth": { - "min": 0.012290178, - "T_at_min": 973.0000253769, - "max": 0.0612337073, - "T_at_max": 1172.9999763378 + "min": 0.012290178046628, + "T_at_min": 973.000025376859, + "max": 0.061233707296074, + "T_at_max": 1172.999976337814 }, "fe_sol_weeks1998_iron_solubility_in_liquid_bismuth": { - "min": 0.0006285495, - "T_at_min": 713.0000117738, - "max": 0.0172110568, - "T_at_max": 997.9999786407 + "min": 0.000628549512748, + "T_at_min": 713.0000117738275, + "max": 0.017211056815837, + "T_at_max": 997.9999786407409 }, "ni_sol_gosse2014_nickel_solubility_in_liquid_bismuth": { - "min": 0.2171218787, - "T_at_min": 543.0000108166, - "max": 8.6573059971, - "T_at_max": 1172.9999686173 + "min": 0.217121878708237, + "T_at_min": 543.0000108165658, + "max": 8.657305997112159, + "T_at_max": 1172.9999686173219 }, "ni_sol_weeks1998_nickel_solubility_in_liquid_bismuth": { - "min": 3.0391522429, - "T_at_min": 723.0000121153, - "max": 8.068418932, - "T_at_max": 902.9999771608 + "min": 3.03915224290001, + "T_at_min": 723.0000121153164, + "max": 8.068418932018085, + "T_at_max": 902.9999771608269 }, "o_sol_lbh15_oxygen_solubility_in_liquid_bismuth": { - "min": 1.59961e-05, - "T_at_min": 573.0000087999, - "max": 0.9597292065, - "T_at_max": 1572.9999748659 + "min": 1.5996098531e-05, + "T_at_min": 573.0000087998916, + "max": 0.959729206515277, + "T_at_max": 1572.9999748659052 }, "o_dif_fitzner1980_oxygen_diffusivity_in_liquid_bismuth": { - "min": 2.1e-09, - "T_at_min": 951.0000164845, - "max": 4.9e-09, - "T_at_max": 1099.9999694098 + "min": 2.115845e-09, + "T_at_min": 951.0000164845189, + "max": 4.917442e-09, + "T_at_max": 1099.9999694098378 }, "o_dif_heshmatpour1981_oxygen_diffusivity_in_liquid_bismuth": { - "min": 9e-10, - "T_at_min": 1023.0000165475, - "max": 1.6e-09, - "T_at_max": 1272.9999682789 + "min": 8.66919e-10, + "T_at_min": 1023.000016547498, + "max": 1.60253e-09, + "T_at_max": 1272.9999682789262 }, "G_lbh15_Gibbs_free_energy_variation_in_liquid_bismuth": { - "min": -26.3795884859, - "T_at_min": 1830.9999648121, - "max": -0.0, - "T_at_max": 544.6000147179 + "min": -26.379588485888686, + "T_at_min": 1830.999964812147, + "max": -6e-15, + "T_at_max": 544.6000147178952 }, "H_lbh15_molar_enthalpy_variation_in_liquid_bismuth": { - "min": 4.48e-07, - "T_at_min": 544.6000147179, - "max": 35.6072762715, - "T_at_max": 1830.9999648121 + "min": 4.4798342e-07, + "T_at_min": 544.6000147178952, + "max": 35.60727627149078, + "T_at_max": 1830.999964812147 }, "S_lbh15_molar_entropy_variation_in_liquid_bismuth": { - "min": 8e-10, - "T_at_min": 544.6000147179, - "max": 0.0338541048, - "T_at_max": 1830.9999648121 + "min": 8.22592e-10, + "T_at_min": 544.6000147178952, + "max": 0.033854104832678, + "T_at_max": 1830.999964812147 }, "o_pp_fitzner1980_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_bismuth": { - "min": 0.0138597517, - "T_at_min": 988.0000170986, - "max": 0.6220631653, - "T_at_max": 1180.9999778936 + "min": 0.013859751678567, + "T_at_min": 988.0000170985788, + "max": 0.622063165301616, + "T_at_max": 1180.9999778935946 }, "o_pp_hahn1979_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_bismuth": { - "min": 118.4103097223, - "T_at_min": 1073.0000307955, - "max": 772.9709193544, - "T_at_max": 1222.9999692045 + "min": 118.41030972227716, + "T_at_min": 1073.0000307954651, + "max": 772.9709193544093, + "T_at_max": 1222.9999692045349 }, "o_pp_heshmatpour1981_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_bismuth": { - "min": 0.0075193048, - "T_at_min": 1023.0000181672, - "max": 0.619852834, - "T_at_max": 1272.9999682789 + "min": 0.007519304824623, + "T_at_min": 1023.0000181672021, + "max": 0.619852834043242, + "T_at_max": 1272.9999682789262 }, "o_pp_isecke1979_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_bismuth": { - "min": 0.0102042588, - "T_at_min": 973.0000150658, - "max": 49.8207121233, - "T_at_max": 1472.9999607906 + "min": 0.010204258777441, + "T_at_min": 973.0000150657633, + "max": 49.82071212334006, + "T_at_max": 1472.9999607905966 + }, + "gamma_Cs_gverdtsiteli1984_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_bismuth": { + "min": 0.003162277660168, + "T_at_min": 999.999979120505, + "max": 0.003162277660168, + "T_at_max": 999.999979120505 + }, + "P_BiI3_cubicciotti1959_Vapour_pressure_of_BiI3_Iodide_in_liquid_bismuth": { + "min": 237.6483261098085, + "T_at_min": 544.6000088591823, + "max": 86316731.09536353, + "T_at_max": 1830.999964812147 + }, + "gamma_Po_lbh15_Activity_coefficient_of_Polonium_in_liquid_bismuth": { + "min": 0.004669852947025, + "T_at_min": 923.0000236098568, + "max": 0.008751871153612, + "T_at_max": 1037.9999771945104 + }, + "gamma_Po_joy1963_Activity_coefficient_of_Polonium_in_liquid_bismuth": { + "min": 0.002208095258597, + "T_at_min": 723.0000193861952, + "max": 0.048766918104064, + "T_at_max": 1122.999968632477 }, "alpha_lbh15_Liquid_lbe_thermal_expansion_coefficient": { - "min": 0.000122549, - "T_at_min": 398.0000108116, - "max": 0.0001508068, - "T_at_max": 1926.9999544783 + "min": 0.00012254901977, + "T_at_min": 398.00001081158865, + "max": 0.000150806815433, + "T_at_max": 1926.9999544783298 }, "beta_s_lbh15_Liquid_lbe_isentropic_compressibility": { - "min": 0.0, - "T_at_min": 400.0000070255, - "max": 0.0, - "T_at_max": 1099.9999823898 + "min": 3.0255e-11, + "T_at_min": 400.0000070255261, + "max": 3.9428e-11, + "T_at_max": 1099.999982389828 }, "cp_sobolev2011_Liquid_lbe_specific_heat_capacity": { - "min": 133.5681031653, - "T_at_min": 1566.510196253, - "max": 148.1899998364, - "T_at_max": 400.0000107974 + "min": 133.5681031653219, + "T_at_min": 1566.510196253038, + "max": 148.18999983641868, + "T_at_max": 400.00001079744663 }, "h_sobolev2011_Liquid_lbe_specific_enthalpy_(as_difference_with_respect_to_the_melting_point_enthalpy)": { - "min": 296.4121085953, - "T_at_min": 400.0000107974, - "max": 210592.6949524394, - "T_at_max": 1926.9999545753 + "min": 296.41210859526996, + "T_at_min": 400.00001079744663, + "max": 210592.69495243934, + "T_at_max": 1926.9999545752607 }, "k_sobolev2011_Liquid_lbe_thermal_conductivity": { - "min": 9.3545389082, - "T_at_min": 398.0000089434, - "max": 19.3687997759, - "T_at_max": 1199.9999789296 + "min": 9.354538908206067, + "T_at_min": 398.0000089434321, + "max": 19.368799775852953, + "T_at_max": 1199.9999789295878 }, "mu_lbh15_Liquid_lbe_dynamic_viscosity": { - "min": 0.0008823709, - "T_at_min": 1299.9999755663, - "max": 0.0032854506, - "T_at_max": 398.0000103199 + "min": 0.000882370866482, + "T_at_min": 1299.9999755662786, + "max": 0.003285450585832, + "T_at_max": 398.00001031991707 }, "p_s_sobolev2011_Liquid_lbe_saturation_vapour_pressure": { - "min": 0.0, - "T_at_min": 398.000009158, + "min": 3e-15, + "T_at_min": 398.0000091579604, "max": 100864.76819824, - "T_at_max": 1926.9999544783 + "T_at_max": 1926.9999544783298 }, "r_lbh15_Liquid_lbe_electrical_resistivity": { - "min": 1.101e-06, - "T_at_min": 400.0000070255, - "max": 1.437e-06, - "T_at_max": 1099.9999823898 + "min": 1.101000003e-06, + "T_at_min": 400.0000070255261, + "max": 1.436999992e-06, + "T_at_max": 1099.999982389828 }, "rho_lbh15_Liquid_lbe_density": { - "min": 8573.3890588595, - "T_at_min": 1926.9999544783, - "max": 10550.3859860206, - "T_at_max": 398.0000108116 + "min": 8573.38905885952, + "T_at_min": 1926.9999544783298, + "max": 10550.385986020616, + "T_at_max": 398.00001081158865 }, "sigma_plevachuk2008_Liquid_lbe_surface_tension": { - "min": 0.3366400022, - "T_at_min": 1399.999972203, - "max": 0.4166997991, - "T_at_max": 398.000011464 + "min": 0.336640002220983, + "T_at_min": 1399.999972202969, + "max": 0.416699799084024, + "T_at_max": 398.00001146403207 }, "u_s_sobolev2011_Sound_velocity_in_liquid_lbe": { - "min": 1621.8000037334, - "T_at_min": 1099.9999823898, - "max": 1770.1999985106, - "T_at_max": 400.0000070255 + "min": 1621.8000037333566, + "T_at_min": 1099.999982389828, + "max": 1770.1999985105888, + "T_at_max": 400.0000070255261 }, "cr_sol_courouau2004_cr_solubility_in_liquid_lbe": { - "min": 0.0002345069, - "T_at_min": 643.0000120331, - "max": 0.0022537344, - "T_at_max": 812.9999784297 + "min": 0.000234506890967, + "T_at_min": 643.0000120330653, + "max": 0.002253734383318, + "T_at_max": 812.9999784296698 }, "cr_sol_gosse2014_cr_solubility_in_liquid_lbe": { - "min": 2.89e-07, - "T_at_min": 399.0000097679, - "max": 0.0327125472, - "T_at_max": 1172.9999798861 + "min": 2.88969707e-07, + "T_at_min": 399.0000097679219, + "max": 0.032712547241343, + "T_at_max": 1172.9999798861468 }, "cr_sol_martynov1998_cr_solubility_in_liquid_lbe": { - "min": 0.0003910068, - "T_at_min": 673.0000105481, - "max": 0.0010726368, - "T_at_max": 772.9999794697 + "min": 0.000391006793201, + "T_at_min": 673.0000105480734, + "max": 0.00107263682565, + "T_at_max": 772.9999794696897 }, "fe_sol_gosse2014_iron_solubility_in_liquid_lbe": { - "min": 9e-10, - "T_at_min": 399.0000102451, - "max": 0.0177740668, - "T_at_max": 1172.9999798861 + "min": 9.43925e-10, + "T_at_min": 399.0000102450688, + "max": 0.017774066756063, + "T_at_max": 1172.9999798861468 }, "fe_sol_weeks1969_iron_solubility_in_liquid_lbe": { - "min": 0.000617251, - "T_at_min": 823.0000169763, - "max": 0.0078629214, - "T_at_max": 1052.9999708166 + "min": 0.000617251039171, + "T_at_min": 823.0000169762914, + "max": 0.007862921429558, + "T_at_max": 1052.999970816612 }, "ni_sol_gosse2014_nickel_solubility_in_liquid_lbe": { - "min": 0.0582204939, - "T_at_min": 528.0000121669, - "max": 7.6272848972, - "T_at_max": 1172.9999687398 + "min": 0.058220493930226, + "T_at_min": 528.0000121669038, + "max": 7.627284897155317, + "T_at_max": 1172.9999687397603 }, "ni_sol_martinelli2010_nickel_solubility_in_liquid_lbe": { - "min": 0.2487072182, - "T_at_min": 603.0000170734, - "max": 6.9153223123, - "T_at_max": 1172.9999726997 + "min": 0.248707218172976, + "T_at_min": 603.0000170733919, + "max": 6.915322312266162, + "T_at_max": 1172.9999726997141 }, "o_sol_lbh15_oxygen_solubility_in_liquid_lbe": { - "min": 0.0001320469, - "T_at_min": 673.0000169974, - "max": 0.0150638754, - "T_at_max": 1012.9999733376 + "min": 0.000132046908533, + "T_at_min": 673.0000169973534, + "max": 0.015063875377944, + "T_at_max": 1012.9999733376055 }, "fe_dif_lbh15_iron_diffusivity_in_liquid_lbe": { - "min": 2.1e-09, - "T_at_min": 973.0000235256, - "max": 7.7e-09, - "T_at_max": 1272.9999808164 + "min": 2.144448e-09, + "T_at_min": 973.0000235256421, + "max": 7.712089e-09, + "T_at_max": 1272.9999808163855 }, "o_dif_ganesan2006b_oxygen_diffusivity_in_liquid_lbe": { - "min": 6e-10, - "T_at_min": 813.0000203015, - "max": 3e-09, - "T_at_max": 972.9999815835 + "min": 5.6231e-10, + "T_at_min": 813.0000203014872, + "max": 3.017763e-09, + "T_at_max": 972.9999815834586 }, "o_dif_gromov1996_oxygen_diffusivity_in_liquid_lbe": { - "min": 0.0, - "T_at_min": 473.0000098149, - "max": 4.08e-08, - "T_at_max": 1272.9999801093 + "min": 4.1863e-11, + "T_at_min": 473.00000981491115, + "max": 4.0834802e-08, + "T_at_max": 1272.9999801092838 }, "bi_a_gosse2014_Bismuth_chemical_activity_in_liquid_lbe": { - "min": 0.3929578726, - "T_at_min": 399.0000084103, - "max": 0.4858986607, - "T_at_max": 1172.9999798861 + "min": 0.392957872643115, + "T_at_min": 399.000008410259, + "max": 0.485898660730024, + "T_at_max": 1172.9999798861468 }, "bi_Kh_lbh15_bismuth_Henry_constant_in_liquid_lbe": { - "min": 0.0000027608, - "T_at_min": 623.5500154587, - "max": 0.0030945479, - "T_at_max": 776.4499805994 + "min": 2.760784286e-06, + "T_at_min": 623.5500154587282, + "max": 0.003094547858169, + "T_at_max": 776.4499805993913 }, "G_lbh15_Gibbs_free_energy_variation_in_liquid_lbe": { - "min": -44.6276162032, - "T_at_min": 1926.9999545753, - "max": -0.0001547227, - "T_at_max": 400.0000107974 + "min": -44.627616203231035, + "T_at_min": 1926.9999545752607, + "max": -0.000154722737187, + "T_at_max": 400.00001079744663 }, "pb_a_gosse2014_lead_chemical_activity_in_liquid_lbe": { - "min": 0.2636640134, - "T_at_min": 399.0000084103, - "max": 0.3681810562, - "T_at_max": 1172.9999798861 + "min": 0.263664013363788, + "T_at_min": 399.000008410259, + "max": 0.368181056194618, + "T_at_max": 1172.9999798861468 }, "pb_Kh_lbh15_lead_Henry_constant_in_liquid_lbe": { - "min": 0.0000000002, - "T_at_min": 623.5500144393, - "max": 0.0000001640, - "T_at_max": 776.4499805994 + "min": 1.70495e-10, + "T_at_min": 623.5500144392983, + "max": 1.63994914e-07, + "T_at_max": 776.4499805993913 }, "H_lbh15_molar_enthalpy_variation_in_liquid_lbe": { - "min": 0.0617067764, - "T_at_min": 400.0000107974, - "max": 43.8409766425, - "T_at_max": 1926.9999545753 + "min": 0.061706776355255, + "T_at_min": 400.00001079744663, + "max": 43.840976642503875, + "T_at_max": 1926.9999545752607 }, "S_lbh15_molar_entropy_variation_in_liquid_lbe": { - "min": 0.0001546537, - "T_at_min": 400.0000107974, - "max": 0.0459100129, - "T_at_max": 1926.9999545753 + "min": 0.000154653743556, + "T_at_min": 400.00001079744663, + "max": 0.045910012937823, + "T_at_max": 1926.9999545752607 }, "o_pp_lbh15_Oxygen_partial_pressure_divided_by_the_oxygen_concentration_squared_in_liquid_lbe": { - "min": 5.591e-07, - "T_at_min": 812.000021982, - "max": 0.000867172, - "T_at_max": 1007.9999751307 + "min": 5.5914273e-07, + "T_at_min": 812.0000219820085, + "max": 0.000867172034384, + "T_at_max": 1007.9999751306782 }, "lim_cr_courouau2004_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lbe": { "min": 0.0, - "T_at_min": 673.0000197495, + "T_at_min": 673.0000197494587, "max": 0.0, - "T_at_max": 812.9999833163 + "T_at_max": 812.9999833163374 }, "lim_cr_gosse2014_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lbe": { "min": 0.0, - "T_at_min": 673.0000160904, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.0000160904223, + "max": 2.38e-13, + "T_at_max": 999.9999743570503 }, "lim_cr_martynov1998_Oxygen_concentration_lower_limit_times_chromium_concentration_raised_to_2/3_in_lbe": { "min": 0.0, - "T_at_min": 673.0000162616, + "T_at_min": 673.0000162616153, "max": 0.0, - "T_at_max": 772.9999794697 + "T_at_max": 772.9999794696897 }, "lim_fe_gosse2014_Oxygen_concentration_lower_limit_times_iron_concentration_raised_to_3/4_in_lbe": { - "min": 0.0, - "T_at_min": 673.0000190104, - "max": 6.2e-09, - "T_at_max": 999.9999743571 + "min": 4.9e-14, + "T_at_min": 673.000019010385, + "max": 6.184501e-09, + "T_at_max": 999.9999743570503 }, "lim_fe_weeks1969_Oxygen_concentration_lower_limit_times_iron_concentration_raised_to_3/4_in_lbe": { - "min": 0.0, - "T_at_min": 673.0000144612, - "max": 7.2e-09, - "T_at_max": 999.9999743571 + "min": 7e-14, + "T_at_min": 673.000014461176, + "max": 7.162336e-09, + "T_at_max": 999.9999743570503 }, "lim_ni_gosse2014_Oxygen_concentration_lower_limit_times_nickel_concentration_in_lbe": { - "min": 3.868e-07, - "T_at_min": 673.0000145852, - "max": 0.0007252655, - "T_at_max": 999.9999743571 + "min": 3.86751239e-07, + "T_at_min": 673.0000145852309, + "max": 0.000725265522698, + "T_at_max": 999.9999743570503 }, "lim_ni_martinelli2010_Oxygen_concentration_lower_limit_times_nickel_concentration_in_lbe": { - "min": 4.216e-07, - "T_at_min": 673.0000198925, - "max": 0.0006568966, - "T_at_max": 999.9999743571 + "min": 4.21633926e-07, + "T_at_min": 673.00001989251, + "max": 0.000656896628098, + "T_at_max": 999.9999743570503 }, "lim_al_sat_lbh15_Oxygen_concentration_lower_limit_for_aluminium_at_its_saturation_concentration_in_liquid_lbe": { "min": 0.0, - "T_at_min": 673.0000160986, + "T_at_min": 673.0000160986198, "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_max": 999.9999743570503 }, "lim_cr_sat_lbh15_Oxygen_concentration_lower_limit_for_chromium_at_its_saturation_concentration_in_lbe": { "min": 0.0, - "T_at_min": 673.0000111399, - "max": 0.0, - "T_at_max": 999.9999743571 + "T_at_min": 673.000011139931, + "max": 4.645e-12, + "T_at_max": 999.9999743570503 }, "lim_fe_sat_lbh15_Oxygen_concentration_lower_limit_foriron_at_its_saturation_concentration_in_liquid_lbe": { - "min": 1e-10, - "T_at_min": 673.0000161601, - "max": 3.895e-07, - "T_at_max": 999.9999743571 + "min": 1.24733e-10, + "T_at_min": 673.0000161601129, + "max": 3.89542412e-07, + "T_at_max": 999.9999743570503 }, "lim_ni_sat_lbh15_Oxygen_concentration_lower_limit_for_nickel_at_its_saturation_concentration_in_liquid_lbe": { - "min": 4.222e-07, - "T_at_min": 673.0000190285, - "max": 0.0001338126, - "T_at_max": 999.9999743571 + "min": 4.22211189e-07, + "T_at_min": 673.0000190284652, + "max": 0.000133812615186, + "T_at_max": 999.9999743570503 }, "lim_si_sat_lbh15_Oxygen_concentration_lower_limit_for_silicon_at_its_saturation_concentration_in_liquid_lbe": { "min": 0.0, - "T_at_min": 673.00001951, - "max": 0.0, - "T_at_max": 999.9999743571 - }, - "P_PbPo_abakumov1994a_Vapour_pressure_of_PbPo_compound_in_liquid_lead": { - "min": 12.5095034388, - "T_at_min": 913.0000231923, - "max": 385.7169908819, - "T_at_max": 1122.9999735432 - }, - "gamma_PbPo_li1998_Activity_coefficient_of_PbPo_compound_in_liquid_lead": { - "min": 1.0000000000, - "T_at_min": 1122.9999735432, - "max": 1.0000000000, - "T_at_max": 1122.9999735432 - }, - "K_PbPo_lbh15_Henry_constant_of_PbPo_compound_in_liquid_lead": { - "min": 12.5095034388, - "T_at_min": 913.0000231923, - "max": 385.7169908819, - "T_at_max": 1122.9999735432 - }, - "P_PbI2_konings1996_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 0.2205316217, - "T_at_min": 600.6000141817, - "max": 22.1231075622, - "T_at_max": 696.9999802088 - }, - "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 0.0000000000, - "T_at_min": 697.0000136286, - "max": 0.0000000000, - "T_at_max": 1475.1623230823368 - }, - "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 1.0000000000, - "T_at_min": 2020.9999611359, - "max": 1.0000000000, - "T_at_max": 2020.9999611359 - }, - "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 0.2205316217, - "T_at_min": 600.6000141817, - "max": 22.1231075622, - "T_at_max": 696.9999802088 - }, - "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_lead": { - "min": 0.0000000000, - "T_at_min": 697.0000136286, - "max": 0.0000000000, - "T_at_max": 1475.1623230823368 - }, - "K_PbCs_yamshchikov2001_Cs-Pb_Caesium_intermetallic_compound_Henry_constant_in_liquid_lead": { - "min": 0.0000000000, - "T_at_min": 932.9999772585, - "max": 0.0000000000, - "T_at_max": 708.9085832567 - }, - "gamma_PbCs_lbh15_Activity_coefficient_of_Cs-Pb_Caesium_intermetallic_compound_in_liquid_lead": { - "min": 0.0316227766, - "T_at_min": 1099.9999771533, - "max": 0.0316227766, - "T_at_max": 1099.9999771533 - }, - "P_PbCs_lbh15_Cs-Pb_Caesium_intermetallic_compound_vapour_pressure_in_liquid_lead": { - "min": 0.0000000000, - "T_at_min": 932.9999772585, - "max": 0.0000000000, - "T_at_max": 708.9086327201708 - }, - "gamma_Po_joy1963_Activity_coefficient_of_Polonium_in_liquid_bismuth": { - "min": 0.0022080953, - "T_at_min": 723.0000193862, - "max": 0.0487669181, - "T_at_max": 1122.9999686325 - }, - "gamma_Po_lbh15_Activity_coefficient_of_Polonium_in_liquid_bismuth": { - "min": 0.0046698529, - "T_at_min": 923.0000236099, - "max": 0.0087518712, - "T_at_max": 1037.9999771945 - }, - "P_BiI3_cubicciotti1959_Vapour_pressure_of_BiI3_Iodide_in_liquid_bismuth": { - "min": 237.64832610980847, - "T_at_min": 544.6000088591823, - "max": 86316731.09536353, - "T_at_max": 1830.9999648121470 - }, - "gamma_Cs_gverdtsiteli1984_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_bismuth": { - "min": 0.0031622777, - "T_at_min": 999.9999791205, - "max": 0.0031622777, - "T_at_max": 999.9999791205 + "T_at_min": 673.0000195100106, + "max": 1e-15, + "T_at_max": 999.9999743570503 }, - "K_Po_ohno2006_Henry_constant_of_Polonium_in_liquid_LBE": { - "min": 0.0975810518, - "T_at_min": 723.0000132379, - "max": 237.3487844736, - "T_at_max": 1022.9999771083 + "gamma_Cd_lbh15_Activity_coefficient_of_Cadmium_in_liquid_LBE": { + "min": 4, + "T_at_min": 849.4499812085684, + "max": 4, + "T_at_max": 849.4499812085684 }, - "K_PbPo_buongiorno2003_Henry_constant_of_Polonium_in_liquid_LBE": { - "min": 0.0177612640, - "T_at_min": 665.0000120712, - "max": 1.6206753711, - "T_at_max": 822.9999799523 + "K_Cd_lbh15_Henry_constant_of_Cadmium_in_liquid_LBE": { + "min": 0.116769555758837, + "T_at_min": 696.5500194006087, + "max": 2.125597851296796, + "T_at_max": 849.4499812085684 }, - "gamma_Po_ohno2006_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { - "min": 0.001139908769775767, - "T_at_min": 723.0000195402, - "max": 0.0057962945, - "T_at_max": 876.9999813914 + "gamma_Cs_lbh15_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { + "min": 0.031622776601684, + "T_at_min": 932.9999772585459, + "max": 0.031622776601684, + "T_at_max": 932.9999772585459 }, - "gamma_Po_lbh15_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { - "min": 0.02486674251805006, - "T_at_min": 913.0000266457, - "max": 0.0589435506, - "T_at_max": 1122.9999735432 + "gamma_Cs_ohno2006_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { + "min": 0.001115249729092, + "T_at_min": 723.0000128017854, + "max": 0.013588973358916, + "T_at_max": 1022.9999771082863 }, - "K_Hg_lbh15_Henry_constant_of_Mercury_in_liquid_LBE": { - "min": 21.3022269849, - "T_at_min": 526.5500115906, - "max": 343.9970060127, - "T_at_max": 679.4499805994 + "K_Cs_lbh15_Henry_constant_of_Caesium_intermettalic_compounds_in_liquid_LBE": { + "min": 0.0, + "T_at_min": 932.9999772585459, + "max": 0.0, + "T_at_max": 708.9085832566972 }, - "gamma_Hg_lbh15_Activity_coefficient_of_Mercury_in_liquid_LBE": { - "min": 2.0000000000, - "T_at_min": 679.4499805994, - "max": 2.0000000000, - "T_at_max": 679.4499805994 + "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 1, + "T_at_min": 1119.9999742661614, + "max": 1, + "T_at_max": 1119.9999742661614 }, - "K_Cd_lbh15_Henry_constant_of_Cadmium_in_liquid_LBE": { - "min": 0.1167695558, - "T_at_min": 696.5500194006, - "max": 2.1255978513, - "T_at_max": 849.4499812086 + "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.0, + "T_at_min": 697.0000149129803, + "max": 0.0, + "T_at_max": 1119.9999668288444 }, - "gamma_Cd_lbh15_Activity_coefficient_of_Cadmium_in_liquid_LBE": { - "min": 4.0000000000, - "T_at_min": 849.4499812086, - "max": 4.0000000000, - "T_at_max": 849.4499812086 + "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.067533228223181, + "T_at_min": 580.0000104113557, + "max": 22.123113129382677, + "T_at_max": 696.9999863177507 }, - "K_Tl_lbh15_Henry_constant_of_Thallium_in_liquid_LBE": { - "min": 0.0000006907, - "T_at_min": 696.5500153335, - "max": 0.0001281377, - "T_at_max": 849.4499812086 + "K_I_neuhausen2005_Henry_constant_of_monoatomic_Iodine_in_liquid_LBE": { + "min": 0.493011867536738, + "T_at_min": 700.0000108606505, + "max": 185368.2888892461, + "T_at_max": 1119.9999670641012 }, - "gamma_Tl_lbh15_Activity_coefficient_of_Thallium_in_liquid_LBE": { - "min": 0.8000000000, - "T_at_min": 849.4499812086, - "max": 0.8000000000, - "T_at_max": 849.4499812086 + "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_LBE": { + "min": 0.0, + "T_at_min": 697.0000149129803, + "max": 0.0, + "T_at_max": 1119.9999668288444 }, "P_PbI2_konings1996_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 0.0675332282, - "T_at_min": 580.0000104114, - "max": 22.1231131294, - "T_at_max": 696.9999863178 + "min": 0.067533228223181, + "T_at_min": 580.0000104113557, + "max": 22.123113129382677, + "T_at_max": 696.9999863177507 }, - "P_PbI2_knacke1991_Vapour_pressure_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 0.0000000000, - "T_at_min": 697.0000149130, - "max": 0.0000000000, - "T_at_max": 1119.9999668288 + "gamma_Hg_lbh15_Activity_coefficient_of_Mercury_in_liquid_LBE": { + "min": 2, + "T_at_min": 679.4499805993913, + "max": 2, + "T_at_max": 679.4499805993913 }, - "gamma_PbI2_lbh15_Activity_coefficient_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 1.0000000000, - "T_at_min": 1119.9999742661614, - "max": 1.0000000000, - "T_at_max": 1119.9999742661614 + "K_Hg_lbh15_Henry_constant_of_Mercury_in_liquid_LBE": { + "min": 21.302226984927948, + "T_at_min": 526.5500115905764, + "max": 343.9970060126639, + "T_at_max": 679.4499805993913 }, - "K_PbI2_konings1996_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 0.0675332282, - "T_at_min": 580.0000104114, - "max": 22.1231131294, - "T_at_max": 696.9999863178 + "gamma_Po_lbh15_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { + "min": 0.02486674251805, + "T_at_min": 913.0000266457018, + "max": 0.058943550578041, + "T_at_max": 1122.9999735431632 }, - "K_PbI2_knacke1991_Henry_constant_of_PbI2_Iodine_compound_in_liquid_LBE": { - "min": 0.0000000000, - "T_at_min": 697.0000149130, - "max": 0.0000000000, - "T_at_max": 1119.9999668288 + "gamma_Po_ohno2006_Activity_coefficient_of_elemental_Polonium_in_liquid_LBE": { + "min": 0.001139908769776, + "T_at_min": 723.0000195401814, + "max": 0.005796294494951, + "T_at_max": 876.9999813913673 }, - "K_I_neuhausen2005_Henry_constant_of_monoatomic_Iodine_in_liquid_LBE": { - "min": 0.4930118675, - "T_at_min": 700.0000108607, - "max": 185368.2888892461, - "T_at_max": 1119.9999670641 + "K_PbPo_buongiorno2003_Henry_constant_of_Polonium_in_liquid_LBE": { + "min": 0.017761263998555, + "T_at_min": 665.00001207123, + "max": 1.620675371058366, + "T_at_max": 822.9999799522814 }, - "K_Cs_lbh15_Henry_constant_of_Caesium_intermettalic_compounds_in_liquid_LBE": { - "min": 2.4848725492608575e-33, - "T_at_min": 932.9999772585, - "max": 3.855017547852056e-33, - "T_at_max":708.9085832567 + "K_Po_ohno2006_Henry_constant_of_Polonium_in_liquid_LBE": { + "min": 0.097581051801276, + "T_at_min": 723.0000132379278, + "max": 237.34878447359293, + "T_at_max": 1022.9999771082863 }, - "gamma_Cs_lbh15_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { - "min": 0.0316227766, - "T_at_min": 932.9999772585, - "max": 0.0316227766, - "T_at_max": 932.9999772585 + "gamma_Rb_lbh15_Activity_coefficient_of_Rubidium_in_liquid_LBE": { + "min": 0.02, + "T_at_min": 949.449982691808, + "max": 0.02, + "T_at_max": 949.449982691808 }, - "gamma_Cs_ohno2006_Activity_coefficient_of_Caesium_intermetallic_compounds_in_liquid_LBE": { - "min": 0.0011152497, - "T_at_min": 723.0000128018, - "max": 0.0135889734, - "T_at_max": 1022.9999771083 + "K_Rb_lbh15_Henry_constant_of_Rubidium_in_liquid_LBE": { + "min": 0.000922083892746, + "T_at_min": 796.5500194006087, + "max": 0.004342386323499, + "T_at_max": 949.449982691808 }, "P_Rb_landolt1960_Vapour_pressure_of_Rubidium_in_liquid_LBE": { - "min": 0.0461041946, - "T_at_min": 796.5500194006, - "max": 0.2171193162, - "T_at_max": 949.4499826918 + "min": 0.04610419463728, + "T_at_min": 796.5500194006087, + "max": 0.217119316174944, + "T_at_max": 949.449982691808 }, - "gamma_Rb_lbh15_Activity_coefficient_of_Rubidium_in_liquid_LBE": { - "min": 0.0200000000, - "T_at_min": 949.4499826918, - "max": 0.0200000000, - "T_at_max": 949.4499826918 + "gamma_Tl_lbh15_Activity_coefficient_of_Thallium_in_liquid_LBE": { + "min": 0.8, + "T_at_min": 849.4499812085684, + "max": 0.8, + "T_at_max": 849.4499812085684 }, - "K_Rb_lbh15_Henry_constant_of_Rubidium_in_liquid_LBE": { - "min": 0.0009220839, - "T_at_min": 796.5500194006, - "max": 0.0043423863, - "T_at_max": 949.4499826918 + "K_Tl_lbh15_Henry_constant_of_Thallium_in_liquid_LBE": { + "min": 6.90740783e-07, + "T_at_min": 696.5500153335043, + "max": 0.000128137664579, + "T_at_max": 849.4499812085684 } } \ No newline at end of file