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 # we will do our computation and comparison at the following depth values: depths = np.linspace(700e3, 2800e3, number_of_points) #alternatively, we could use the values where prem is defined: #depths = seismic_model.internal_depth_list() seis_p, seis_rho, seis_vp, seis_vs, seis_vphi = seismic_model.evaluate_all_at(depths)
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() # (see burnman/seismic.py) number_of_points = 20 # set on how many depth slices the computations should be done # we will do our computation and comparison at the following depth values: depths = np.linspace(700e3, 2800e3, number_of_points)
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 # we will do our computation and comparison at the following depth values: depths = np.linspace(700e3, 2800e3, number_of_points) #alternatively, we could use the values where prem is defined: #depths = seismic_model.internal_depth_list() seis_p, seis_rho, seis_vp, seis_vs, seis_vphi = seismic_model.evaluate_all_at(
phases = [minerals.Murakami_fe_perovskite(), minerals.Murakami_fe_periclase_LS()] amount_perovskite = 0.95 molar_abundances = [amount_perovskite, 1.0-amount_perovskite] #Example 2: specify fixed iron content if False: phases = [minerals.mg_fe_perovskite(0.8), minerals.ferropericlase(0.8)] amount_perovskite = 0.95 molar_abundances = [amount_perovskite, 1.0-amount_perovskite] #Example 3: input weight percentages #See comments in burnman/composition.py for references to partition coefficent calculation if False: 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) iron_content = lambda p,t: burnman.calculate_partition_coefficient(p,t,relative_molar_percent) phases = [minerals.mg_fe_perovskite_pt_dependent(iron_content,0), \ minerals.ferropericlase_pt_dependent(iron_content,1)] molar_abundances = [phase_fractions['pv'],phase_fractions['fp']] #Example 4: three materials if False: phases = [minerals.Murakami_fe_perovskite(), minerals.ferropericlase(0.5), minerals.stishovite()] molar_abundances = [0.7, 0.2, 0.1] #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 # we will do our computation and comparison at the following depth values: depths = np.linspace(700, 2800, number_of_points)