matas et al. 2007) or 'bm2' (birch-murnaghan 2nd order, if you choose to ignore temperature (your choice in geotherm will not matter in this case)) or 'bm3' (birch-murnaghan 3rd order, if you choose to ignore temperature (your choice in geotherm will not matter in this case))""" method = 'slb3' #input weight percentages and distribution coefficient #See comments in burnman/composition.py for references to #partition coefficent calculation weight_percents = {'Mg':0.213, 'Fe': 0.08, 'Si':0.27, 'Ca':0., 'Al':0.} phase_fractions,relative_molar_percent = \ burnman.calculate_phase_percents(weight_percents) Kd_0 = .5 #Fig 5 Nakajima et al 2012 iron_content = lambda p,t: \ burnman.calculate_partition_coefficient(p,t,relative_molar_percent,Kd_0) rock = burnman.composite ( [ (minerals.SLB_2005.mg_fe_perovskite_pt_dependent(iron_content,1),\ phase_fractions['pv'] ), (minerals.SLB_2005.ferropericlase_pt_dependent(iron_content,0),\ phase_fractions['fp'] ) ] ) #seismic model for comparison: seismic_model = burnman.seismic.prem() # pick from .prem() .slow() .fast() #(see burnman/seismic.py) number_of_points = 20 #set on how many depth slices the computations should be done
# hack to allow scripts to be placed in subdirectories next to burnman: if not os.path.exists("burnman") and os.path.exists("../burnman"): sys.path.insert(1, os.path.abspath("..")) import burnman from burnman import minerals if __name__ == "__main__": # input weight percentages and distribution coefficient # See comments in burnman/composition.py for references to # partition coefficent calculation weight_percents = {"Mg": 0.213, "Fe": 0.08, "Si": 0.27, "Ca": 0.0, "Al": 0.0} phase_fractions, relative_molar_percent = burnman.calculate_phase_percents(weight_percents) Kd_0 = 0.1 # Fig 5 Nakajima et al 2012, although you can define this yourself! iron_content = lambda p, t: burnman.calculate_partition_coefficient(p, t, relative_molar_percent, Kd_0) rock = burnman.Composite( [phase_fractions["pv"], phase_fractions["fp"]], [ minerals.SLB_2005.mg_fe_perovskite_pt_dependent(iron_content, 1), minerals.SLB_2005.ferropericlase_pt_dependent(iron_content, 0), ], ) # seismic model for comparison: seismic_model = burnman.seismic.PREM() # pick from .prem() .slow() .fast()
or 'bm2' (birch-murnaghan 2nd order, if you choose to ignore temperature (your choice in geotherm will not matter in this case)) or 'bm3' (birch-murnaghan 3rd order, if you choose to ignore temperature (your choice in geotherm will not matter in this case))""" method = 'slb3' #Carbonaceous chondrites From Mcdonough 2003 weight_percents_pyro = { 'Mg': 0.228, 'Fe': 0.0626, 'Si': 0.21, 'Ca': 0., 'Al': 0. } phase_fractions_pyro,relative_molar_percent_pyro = \ burnman.calculate_phase_percents(weight_percents_pyro) #input initial distribution coefficent. See example_partition_coefficient.py #for explanation Kd_0 = .5 iron_content = lambda p,t: burnman.calculate_partition_coefficient\ (p,t,relative_molar_percent_pyro, Kd_0) pyrolite = burnman.composite( [ (minerals.SLB_2005.mg_fe_perovskite_pt_dependent(iron_content,0),\ phase_fractions_pyro['pv'] ), (minerals.SLB_2005.ferropericlase_pt_dependent(iron_content,1), \ phase_fractions_pyro['fp'] ) ] ) #input pressure range for first model. seis_p_1 = np.arange(25e9, 125e9, 5e9) #input your geotherm.
if __name__ == "__main__": ###Input Model 1 #INPUT for method """ choose 'slb' (finite-strain 2nd order sheer modulus, stixrude and lithgow-bertelloni, 2005) or 'mgd' (mie-gruneisen-debeye, matas et al. 2007) or 'bm' (birch-murnaghan, if you choose to ignore temperature (your choice in geotherm will not matter in this case)) or 'slb3 (finite-strain 3rd order shear modulus, stixrude and lithgow-bertelloni, 2005)""" method = 'slb' #Input composition of model 1. See example_composition for potential choices. We'll just choose something simple here weight_percents_pyro = {'Mg':0.228, 'Fe': 0.0626, 'Si':0.21, 'Ca':0., 'Al':0.} #From Mcdonough 2003 phase_fractions_pyro,relative_molar_percent_pyro = burnman.calculate_phase_percents(weight_percents_pyro) iron_content = lambda p,t: burnman.calculate_partition_coefficient(p,t,relative_molar_percent_pyro) phases_pyro = [minerals.mg_fe_perovskite_pt_dependent(iron_content,0), \ minerals.ferropericlase_pt_dependent(iron_content,1)] molar_abundances_pyro = [phase_fractions_pyro['pv'], phase_fractions_pyro['fp']] #input pressure range for first model. This could be from a seismic model or something you create. For this example we will create an array seis_p_1 = np.arange(25e9, 125e9, 5e9) #input your geotherm. Either choose one (See example_geotherms.py) or create one.We'll use Brown and Shankland. geotherm = burnman.geotherm.brown_shankland temperature_1 = [geotherm(p) for p in seis_p_1] ##Now onto the second model parameters