33
44from burnman import Mineral , Composite
55from burnman .minerals .SLB_2011 import forsterite as forsterite_slb
6+ from burnman .minerals .SLB_2024 import fea as alpha_iron_slb
67from burnman .utils .chemistry import dictionarize_formula , formula_mass
78from burnman .eos .helper import create
89from burnman .tools .eos import check_eos_consistency
@@ -263,7 +264,7 @@ def test_SPOCK_isothermal_contribution(self):
263264 )
264265 self .assertTrue (consistent )
265266
266- def test_SLB_is_same_as_MGD (self ):
267+ def test_SLB_is_same_as_MGD_non_conductive (self ):
267268 fo_slb = forsterite_slb ()
268269 params = fo_slb .params .copy ()
269270 params ["equation_of_state" ] = "modular_mgd"
@@ -278,6 +279,28 @@ def test_SLB_is_same_as_MGD(self):
278279 minerals .set_state (1.0e9 , 2000.0 )
279280 self .assertAlmostEqual (fo_slb .helmholtz , fo_mgd .helmholtz , places = 3 )
280281
282+ def test_SLB_is_same_as_MGD_conductive (self ):
283+ fea_slb = alpha_iron_slb ()
284+ fea_slb .property_modifiers = []
285+ params = fea_slb .params .copy ()
286+ params ["equation_of_state" ] = "modular_mgd"
287+ params ["reference_eos" ] = create ("bm3" )
288+ params ["debye_temperature_model" ] = theta_SLB ()
289+ fea_mgd = Mineral (params )
290+
291+ self .assertTrue (params ["bel_0" ] != 0 )
292+
293+ minerals = Composite ([fea_slb , fea_mgd ])
294+ minerals .set_state (params ["P_0" ], params ["T_0" ])
295+ self .assertAlmostEqual (fea_mgd .helmholtz , params ["F_0" ])
296+ self .assertAlmostEqual (fea_mgd .V , params ["V_0" ], places = 16 )
297+ minerals .set_state (params ["P_0" ], params ["T_0" ])
298+ self .assertAlmostEqual (fea_slb .helmholtz , params ["F_0" ])
299+ self .assertAlmostEqual (fea_slb .V , params ["V_0" ], places = 16 )
300+
301+ minerals .set_state (1.0e9 , 2000.0 )
302+ self .assertAlmostEqual (fea_slb .helmholtz , fea_mgd .helmholtz , places = 3 )
303+
281304
282305if __name__ == "__main__" :
283306 unittest .main ()
0 commit comments