@@ -453,40 +453,35 @@ def check_slb_fig3():
453453 """
454454 Benchmark grueneisen parameter against figure 3 of Stixrude and Lithgow-Bertelloni (2005b)
455455 """
456- perovskite = burnman .Mineral ()
457- perovskite .params = {
458- "name" : "perovksite" ,
459- "V_0" : molar_volume_from_unit_cell_volume (168.27 , 4.0 ),
460- "grueneisen_0" : 1.63 ,
461- "q_0" : 1.7 ,
462- }
463-
464- volume = np .linspace (0.6 , 1.0 , 100 )
465- grueneisen_slb = np .empty_like (volume )
466- grueneisen_mgd = np .empty_like (volume )
467- q_slb = np .empty_like (volume )
468- q_mgd = np .empty_like (volume )
456+ perovskite = burnman .minerals .SLB_2005 .mg_perovskite ()
457+ perovskite .params ["V_0" ] = molar_volume_from_unit_cell_volume (168.27 , 4.0 )
458+ perovskite .params ["grueneisen_0" ] = 1.63
459+ perovskite .params ["q_0" ] = 1.7
460+ perovskite .set_method (slb .SLB2 )
461+
462+ Vrel = np .linspace (0.6 , 1.0 , 100 )
463+ grueneisen_slb = np .empty_like (Vrel )
464+ grueneisen_mgd = np .empty_like (Vrel )
465+ q_slb = np .empty_like (Vrel )
466+ q_mgd = np .empty_like (Vrel )
469467
470- slb_eos = slb .SLB2 ()
471468 mgd_eos = mgd .MGD2 ()
472469
473470 # calculate its thermal properties
474- for i in range (len (volume )):
475- # call with dummy pressure and temperatures, they do not change it
476- grueneisen_slb [i ] = slb_eos .grueneisen_parameter (
477- 0.0 , 0.0 , volume [i ] * perovskite .params ["V_0" ], perovskite .params
478- )
479- grueneisen_mgd [i ] = mgd_eos .grueneisen_parameter (
480- 0.0 , 0.0 , volume [i ] * perovskite .params ["V_0" ], perovskite .params
481- )
482- q_slb [i ] = slb_eos .volume_dependent_q (1.0 / volume [i ], perovskite .params )
471+ for i in range (len (Vrel )):
472+ volume = Vrel [i ] * perovskite .params ["V_0" ]
473+ perovskite .set_state_with_volume (volume , 300.0 )
474+ grueneisen_slb [i ] = perovskite .grueneisen_parameter
475+
476+ grueneisen_mgd [i ] = mgd_eos ._grueneisen_parameter (volume , perovskite .params )
477+ q_slb [i ] = slb .SLB2 ()._volume_dependent_q (1.0 / Vrel [i ], perovskite .params )
483478 q_mgd [i ] = perovskite .params ["q_0" ]
484479
485480 # compare with figure 7
486481 fig1 = mpimg .imread ("../../burnman/data/input_figures/slb_fig3.png" )
487482 plt .imshow (fig1 , extent = [0.6 , 1.0 , 0.35 , 2.0 ], aspect = "auto" )
488- plt .plot (volume , grueneisen_slb , "g+" , volume , grueneisen_mgd , "b+" )
489- plt .plot (volume , q_slb , "g+" , volume , q_mgd , "b+" )
483+ plt .plot (Vrel , grueneisen_slb , "g+" , Vrel , grueneisen_mgd , "b+" )
484+ plt .plot (Vrel , q_slb , "g+" , Vrel , q_mgd , "b+" )
490485 plt .xlim (0.6 , 1.0 )
491486 plt .ylim (0.35 , 2.0 )
492487 plt .ylabel ("Grueneisen parameter" )
@@ -517,37 +512,28 @@ def check_slb_fig7_txt():
517512 }
518513 forsterite .set_method ("slb3" )
519514
520- data = np .loadtxt ("../../burnman/data/input_minphys/slb_fig7.txt" , skiprows = 2 )
515+ data = np .loadtxt (
516+ "../../burnman/data/input_minphys/slb_fig7.txt" , skiprows = 2 , unpack = True
517+ )
521518
522- temperature = np . array ( data [:, 2 ])
523- pressure = np . array ( data [:, 0 ])
524- rho = np . array ( data [:, 3 ])
519+ pressure , _ , temperature = data [:3 ]
520+ temperature [ 0 ] = 1.0e-1
521+ rho , Kt , Ks , G , VB , VS , VP = data [3 : 10 ]
525522 rho_comp = np .empty_like (rho )
526- Kt = np .array (data [:, 4 ])
527523 Kt_comp = np .empty_like (Kt )
528- Ks = np .array (data [:, 5 ])
529524 Ks_comp = np .empty_like (Ks )
530- G = np .array (data [:, 6 ])
531525 G_comp = np .empty_like (G )
532- VB = np .array (data [:, 7 ])
533526 VB_comp = np .empty_like (VB )
534- VS = np .array (data [:, 8 ])
535527 VS_comp = np .empty_like (VS )
536- VP = np .array (data [:, 9 ])
537528 VP_comp = np .empty_like (VP )
538- vol = np .array (data [:, 10 ])
529+
530+ vol , alpha , Cp , gr , gibbs , entropy , enthalpy = data [10 :17 ]
539531 vol_comp = np .empty_like (vol )
540- alpha = np .array (data [:, 11 ])
541532 alpha_comp = np .empty_like (alpha )
542- Cp = np .array (data [:, 12 ])
543533 Cp_comp = np .empty_like (Cp )
544- gr = np .array (data [:, 13 ])
545534 gr_comp = np .empty_like (gr )
546- gibbs = np .array (data [:, 14 ])
547535 gibbs_comp = np .empty_like (gibbs )
548- entropy = np .array (data [:, 15 ])
549- entropy_comp = np .empty_like (gibbs )
550- enthalpy = np .array (data [:, 16 ])
536+ entropy_comp = np .empty_like (entropy )
551537 enthalpy_comp = np .empty_like (gibbs )
552538
553539 for i in range (len (temperature )):
0 commit comments