def __init__(self, name, atoms, formula, sites, comp, H, S, V, Cp, a, k, flag, od): if flag != -1 and flag != -2 and k[0] > 0: formula = dictionarize_formula(formula) self.params = OrderedDict([('name', name), ('formula', formula), ('equation_of_state', 'hp_tmt'), ('H_0', round(H * 1e3, 10)), ('S_0', round(S * 1e3, 10)), ('V_0', round(V * 1e-5, 15)), ('Cp', [ round(Cp[0] * 1e3, 10), round(Cp[1] * 1e3, 10), round(Cp[2] * 1e3, 10), round(Cp[3] * 1e3, 10) ]), ('a_0', a), ('K_0', round(k[0] * 1e8, 10)), ('Kprime_0', k[1]), ('Kdprime_0', round(k[2] * 1e-8, 15)), ('n', sum(formula.values())), ('molar_mass', round(formula_mass(formula), 10))]) if flag == 1: self.landau_hp = OrderedDict([('P_0', 1e5), ('T_0', 298.15), ('Tc_0', od[0]), ('S_D', round(od[1] * 1e3, 10)), ('V_D', round(od[2] * 1e-5, 10))]) if flag == 2: self.bragg_williams = OrderedDict([ ('deltaH', round(od[0] * 1e3, 10)), ('deltaV', round(od[1] * 1e-5, 15)), ('Wh', round(od[2] * 1e3, 10)), ('Wv', round(od[3] * 1e-5, 15)), ('n', od[4]), ('factor', od[5]) ]) if flag == -2: formula = dictionarize_formula(formula) self.params = OrderedDict([('name', name), ('formula', formula), ('equation_of_state', 'hp_tmtL'), ('H_0', round(H * 1e3, 10)), ('S_0', round(S * 1e3, 10)), ('V_0', round(V * 1e-5, 15)), ('Cp', [ round(Cp[0] * 1e3, 10), round(Cp[1] * 1e3, 10), round(Cp[2] * 1e3, 10), round(Cp[3] * 1e3, 10) ]), ('a_0', a), ('K_0', round(k[0] * 1e8, 10)), ('Kprime_0', k[1]), ('Kdprime_0', round(k[2] * 1e-8, 15)), ('dKdT_0', round(k[3] * 1e8, 15)), ('n', sum(formula.values())), ('molar_mass', round(formula_mass(formula), 10))])
def __init__(self): formula = 'Re1.0O2.0' formula = dictionarize_formula(formula) self.params = { 'name': 'ReO2', 'formula': formula, 'equation_of_state': 'hp_tmt', 'H_0': -445140.0, 'S_0': 47.82, 'V_0': 1.8779e-05, 'Cp': [76.89, 0.00993, -1207130.0, -208.0], 'a_0': 4.4e-05, 'K_0': 1.8e+11, 'Kprime_0': 4.05, 'Kdprime_0': -2.25e-11, 'n': sum(formula.values()), 'molar_mass': formula_mass(formula) } burnman.Mineral.__init__(self)
def __init__(self): formula = 'Re1.0' formula = dictionarize_formula(formula) self.params = { 'name': 'Re', 'formula': formula, 'equation_of_state': 'hp_tmt', 'H_0': 0.0, 'S_0': 36.53, 'V_0': 8.862e-06, 'Cp': [23.7, 0.005448, 68.0, 0.0], 'a_0': 1.9e-05, 'K_0': 3.6e+11, 'Kprime_0': 4.05, 'Kdprime_0': -1.1e-11, 'n': sum(formula.values()), 'molar_mass': formula_mass(formula) } burnman.Mineral.__init__(self)
fa = minerals.HP_2011_ds62.fa() mt = minerals.HP_2011_ds62.mt() qtz = minerals.HP_2011_ds62.q() FMQ = Composite([fa, mt, qtz]) FMQ.set_state(P, T) ''' Here we find chemical potentials of FeO, SiO2 and O2 for an assemblage containing fayalite, magnetite and quartz, and a second assemblage of magnetite and wustite at 1 GPa, 1000 K ''' component_formulae = ['FeO', 'SiO2', 'O2'] component_formulae_dict = [ chemistry.dictionarize_formula(f) for f in component_formulae ] chem_potentials = FMQ.chemical_potential(component_formulae_dict) oxygen = minerals.HP_2011_fluids.O2() oxygen.set_state(P, T) hem = minerals.HP_2011_ds62.hem() MH = Composite([mt, hem]) MH.set_state(P, T) print('log10(fO2) at the FMQ buffer:', np.log10(chemistry.fugacity(oxygen, FMQ))) print('log10(fO2) at the mt-hem buffer:', np.log10(chemistry.fugacity(oxygen, MH)))