예제 #1
0
    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)
예제 #4
0
    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)))