From 759328fce869300283601c3b4be35555cc3434b8 Mon Sep 17 00:00:00 2001 From: raza Date: Mon, 2 Mar 2026 18:49:58 +0100 Subject: [PATCH 1/3] ice permittivity Cuzzi1980 added --- smrt/permittivity/ice.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/smrt/permittivity/ice.py b/smrt/permittivity/ice.py index b1eb0b08..0035fee4 100644 --- a/smrt/permittivity/ice.py +++ b/smrt/permittivity/ice.py @@ -14,7 +14,7 @@ # local import # from ..core.error import SMRTError -from ..core.globalconstants import DENSITY_OF_ICE, FREEZING_POINT +from ..core.globalconstants import DENSITY_OF_ICE, FREEZING_POINT, C_SPEED from ..core.layer import layer_properties # @@ -76,6 +76,22 @@ def ice_permittivity_maetzler06(frequency, temperature): return Ereal + 1j * Eimag +def ice_permittivity_Cuzzi_et_al_1980(frequency): + ''' + From the theoritical curve at 100 K (Whalley and Labbe (1969)) for water ice + In Table 1 of DOI: 10.1016/0019-1035(80)90137-2 + + Used in Cuzzi et al., 1980 for modeling the thermal emission from C-ring particles at 2.2-cm wavelength. Therefore relevant for Enceladus like temperature + + ''' + wavelength_in_cm = (C_SPEED/frequency)*100 #cm + refractive_index = 1.78+1j*(7.5e-5/wavelength_in_cm) + E_ice=refractive_index**2 + + return E_ice + + + @layer_properties("temperature") def ice_permittivity_maetzler98(frequency, temperature): """ From 2ff4051c7ece5db43ff8910343c35019ce66f1da Mon Sep 17 00:00:00 2001 From: raza Date: Tue, 3 Mar 2026 23:10:56 +0100 Subject: [PATCH 2/3] Cuzzi et al. 1980 ice permittivity pytest passed with temperature as argument --- smrt/permittivity/ice.py | 5 ++++- smrt/permittivity/test_ice.py | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/smrt/permittivity/ice.py b/smrt/permittivity/ice.py index 0035fee4..86d8f1ec 100644 --- a/smrt/permittivity/ice.py +++ b/smrt/permittivity/ice.py @@ -76,7 +76,7 @@ def ice_permittivity_maetzler06(frequency, temperature): return Ereal + 1j * Eimag -def ice_permittivity_Cuzzi_et_al_1980(frequency): +def ice_permittivity_Cuzzi_et_al_1980(frequency,temperature=100): ''' From the theoritical curve at 100 K (Whalley and Labbe (1969)) for water ice In Table 1 of DOI: 10.1016/0019-1035(80)90137-2 @@ -84,6 +84,9 @@ def ice_permittivity_Cuzzi_et_al_1980(frequency): Used in Cuzzi et al., 1980 for modeling the thermal emission from C-ring particles at 2.2-cm wavelength. Therefore relevant for Enceladus like temperature ''' + if abs(temperature - 100) > 10: + raise SMRTError("ice_permittivity_Cuzzi_et_al_1980 valid only near 100 K") + wavelength_in_cm = (C_SPEED/frequency)*100 #cm refractive_index = 1.78+1j*(7.5e-5/wavelength_in_cm) E_ice=refractive_index**2 diff --git a/smrt/permittivity/test_ice.py b/smrt/permittivity/test_ice.py index 50f4fb8b..1376bee4 100644 --- a/smrt/permittivity/test_ice.py +++ b/smrt/permittivity/test_ice.py @@ -9,6 +9,7 @@ ice_permittivity_maetzler06, ice_permittivity_maetzler87, ice_permittivity_tiuri84, + ice_permittivity_Cuzzi_et_al_1980 ) # Input temperature array functionality removed. If ever needed, use numpy instead of math in ice.py, but slower. @@ -41,6 +42,7 @@ (_ice_permittivity_HUT, 10e9, 270, 3.18567, 8.86909246416410e-04, 1e-8, 1e-8), (_ice_permittivity_DMRTML, 10e9, 270, 3.18567, 9.0679820556720323e-04, 1e-8, 1e-8), (ice_permittivity_hufford91_maetzler87, 10e9, 270, 3.18567, 0.0009650945, 1e-8, 1e-8), + (ice_permittivity_Cuzzi_et_al_1980, 10e9, 100,3.1683999993, 8.906161341790659e-05, 1e-8, 1e-8), ], ) def test_ice_permittivity(permittivity_model, frequency, temperature, real, imag, ratol, iatol): From 6ec5e92f8857c793758a1fa50794f8bde49119bf Mon Sep 17 00:00:00 2001 From: raza Date: Tue, 3 Mar 2026 23:29:05 +0100 Subject: [PATCH 3/3] Cuzzi et al. 1980 ice permittivity pytest passed with temperature as argument --- smrt/permittivity/ice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smrt/permittivity/ice.py b/smrt/permittivity/ice.py index 86d8f1ec..5fbc70fc 100644 --- a/smrt/permittivity/ice.py +++ b/smrt/permittivity/ice.py @@ -75,7 +75,7 @@ def ice_permittivity_maetzler06(frequency, temperature): return Ereal + 1j * Eimag - +@layer_properties("temperature") def ice_permittivity_Cuzzi_et_al_1980(frequency,temperature=100): ''' From the theoritical curve at 100 K (Whalley and Labbe (1969)) for water ice