Ejemplo n.º 1
0
def test_cstr_PE():
    sitelist, specieslist, reactionlist = In_data.load_mkm('./WGSdata/')
    conditionlist = In_data.load_condition('./WGSdata/')
    dEa_index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    dBE_index = [4, 5, 6, 7, 8, 9, 10, 11]
    a = CSTR(specieslist=specieslist,
             reactionlist=reactionlist,
             dEa_index=dEa_index,
             dBE_index=dBE_index)
    a.initialize()
    dE_start = np.random.uniform(-20, 20, 20)
    dE_start = a.CorrThermoConsis(dE_start)
    #    print(dE_start)
    #    print(a.CheckThermoConsis(dE_start))
    #    for condi in conditionlist:
    #        print(a.parameter_estimation(dE_start, conditionlist, print_screen=True))
    dE, obj = a.parameter_estimation(dE_start,
                                     conditionlist,
                                     print_screen=True)
    print(dE, obj)
    # parity Plot
    expr = []
    mkm = []
    for kk, condi in enumerate(conditionlist):
        mkm.append(a.fwd_simulation(dE, condi)['CO(g)'])
        expr.append(condi.TurnOverFrequency['CO(g)'])


#        mkm.append(-condi.SimulatedTOF['H2(g)'])

    parity_plot(expr, mkm, 'Experimental TOF', 'Microkinetic TOF')
Ejemplo n.º 2
0
def test_cstr():
    sitelist, specieslist, reactionlist = In_data.load_mkm('./WGSdata/')
    conditionlist = In_data.load_condition('./WGSdata/')
    dEa_index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    dBE_index = [4, 5, 6, 7, 8, 9, 10, 11]
    a = CSTR(specieslist=specieslist,
             reactionlist=reactionlist,
             dEa_index=dEa_index,
             dBE_index=dBE_index)
    a.initialize()
    dE_start = np.zeros(20)
    for condi in conditionlist:
        print(a.fwd_simulation(dE_start, condi))
    expr = []
    mkm = []
    tem = []
    for kk, condi in enumerate(conditionlist):
        mkm.append(a.fwd_simulation(dE_start, condi)['CO(g)'])
        expr.append(condi.TurnOverFrequency['CO(g)'])
        #        mkm.append(-condi.SimulatedTOF['H2(g)'])
        tem.append(condi.Temperature)

    parity_plot(expr, mkm, 'Experimental TOF', 'Microkinetic TOF')
    import matplotlib.pyplot as plt
    plt.figure()
    plt.plot(tem, np.log10(mkm), 'k^')
    plt.plot(tem, np.log10(expr), 'ro')
Ejemplo n.º 3
0
def test_new_pe():
    sitelist, specieslist, reactionlist = In_data.load_mkm('./WGSdata/')
    conditionlist = In_data.load_condition('./WGSdata/')
    dEa_index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    dBE_index = [4, 5, 6, 7, 8, 9, 10, 11]
    a = CSTR(specieslist=specieslist,
             reactionlist=reactionlist,
             dEa_index=dEa_index,
             dBE_index=dBE_index)
    a.initialize()
    dE_start = np.random.uniform(-20, 20, 20)
    dE_start = a.CorrThermoConsis(dE_start)

    evidence = {}
    evidence['type'] = 'rel'
    evidence['err'] = 1

    prior = {}
    prior['type'] = 'Ridge'
    prior['L2'] = 1e-5
    prior['lbound'] = [-20] * 20
    prior['ubound'] = [20] * 20

    dE, obj = a.mle_estimation(dE_start, conditionlist, evidence, prior)
    expr = []
    mkm = []
    for kk, condi in enumerate(conditionlist):
        mkm.append(a.fwd_simulation(dE, condi)[0]['CO(g)'])
        expr.append(condi.TurnOverFrequency['CO(g)'])


#        mkm.append(-condi.SimulatedTOF['H2(g)'])

    parity_plot(expr, mkm, 'Experimental TOF', 'Microkinetic TOF')
Ejemplo n.º 4
0
def test_read_species(species, site):
    sitelist = In_data.read_site(site)
    specieslist = In_data.read_species(species, sitelist)
    assert len(specieslist) == 2
    assert specieslist[0].name == 'carbonmonoxide'
    assert str(specieslist[0]) == 'CO(g)'
    assert specieslist[0].phase == 'gaseous'

    assert specieslist[1].name == '*'
    assert str(specieslist[1]) == '*'
    assert specieslist[1].phase == 'surface'
Ejemplo n.º 5
0
def test_read_site(site):
    sitelist = In_data.read_site(site)
    print(str(sitelist[0]))
    assert len(sitelist) == 1
    assert sitelist[0].name == 'Cu'
    assert sitelist[0].metal == 'Cu'
    assert sitelist[0].struct == 'FCC'
    assert sitelist[0].facet == '111'
Ejemplo n.º 6
0
def test_cstr_MS_PE():
    sitelist, specieslist, reactionlist = In_data.load_mkm('./WGSdata/')
    conditionlist = In_data.load_condition('./WGSdata/')
    dEa_index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    dBE_index = [4, 5, 6, 7, 8, 9, 10, 11]
    a = CSTR(specieslist=specieslist,
             reactionlist=reactionlist,
             dEa_index=dEa_index,
             dBE_index=dBE_index)
    a.initialize(scale=1e-4)
    #    dE_start = np.zeros(20)
    #    a.parameter_estimation(dE_start, conditionlist, print_screen=True, report='%d.txt'%0)

    for i in range(200):
        dE_start = np.random.uniform(-20, 20, 20)
        dE_start = a.CorrThermoConsis(dE_start)
        a.parameter_estimation(dE_start,
                               conditionlist,
                               print_screen=True,
                               report='./multi-start/%d.txt' % i)
Ejemplo n.º 7
0
def test_load():
    sitelist, specieslist, reactionlist = In_data.load_mkm('./WGSdata/')
    assert str(sitelist[0]) == 'Cu-FCC-111-all'
    spenamelist = [
        'H2(g)', 'CO(g)', 'CO2(g)', 'H2O(g)', 'H*', 'O*', 'OH*', 'H2O*', 'CO*',
        'CO2*', 'HCOO*', 'COOH*', '*'
    ]
    for spe, spename in zip(specieslist, spenamelist):
        assert str(spe) == spename

    reactionnamelist = [
        'CO(g)+*>>CO*', 'H2(g)+2*>>2H*', 'H2O(g)+*>>H2O*', 'CO2(g)+*>>CO2*',
        'H2O*+*>>H*+OH*', 'OH*+*>>H*+O*', 'CO*+O*>>CO2*+*', '2OH*>>O*+H2O*',
        'CO2*+H*>>HCOO*+*', 'CO*+OH*>>COOH*+*', 'COOH*+*>>CO2*+H*',
        'COOH*+OH*>>CO2*+H2O*'
    ]

    for rxn, rxnname in zip(reactionlist, reactionnamelist):
        assert str(rxn) == rxnname
Ejemplo n.º 8
0
import pytest
import tempfile
from AbCD.io_data import In_data
import json

In_data.load_mkm('./testing/WGSdata/')
Ejemplo n.º 9
0
# test tpd evidence

from AbCD.model import VacuumTPD
from AbCD.io_data import In_data
from AbCD.visual import tpd_profile
sitelist, specieslist, reactionlist = In_data.load_mkm('./testing/TPDdata/')
conditionlist = In_data.load_condition('./testing/TPDdata/')

dEa_index = []
dBE_index = [1]
tpd = VacuumTPD(specieslist=specieslist,
              reactionlist=reactionlist,
              dEa_index=dEa_index,
              dBE_index=dBE_index)
tpd.initialize(pump_level=1)

dP = [-25]
out = tpd.fwd_simulation(dP, conditionlist[0], reltol=1e-12, abstol=1e-12)

_, nd = out.shape
des = [2 * (-out[1, i+1] + out[1, i]) for i in range(nd - 1)]

# tpd_profile(conditionlist[0].TemGrid[:-1], des, r_=[100, 500])

print(conditionlist[0].TemGrid)


prior_info = {}
prior_info['type'] = 'Ridge'
prior_info['L2'] = 1e-5
Ejemplo n.º 10
0
import pytest
from AbCD.io_data import In_data
from AbCD import CSTR
import numpy as np

sitelist, specieslist, reactionlist = In_data.load_mkm('./WGSdata/')
conditionlist = In_data.load_condition('./WGSdata/')

dBE_index = [4, 5, 6, 7, 8, 9, 10, 11]
dEa_index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]


def test_cstr_build():
    wgs_cstr = CSTR(specieslist=specieslist,
                    reactionlist=reactionlist,
                    dBE_index=dBE_index,
                    dEa_index=dEa_index)
    assert wgs_cstr.Pnlp.shape[0] == len(dEa_index) + len(dBE_index)
    wgs_cstr.initialize()

    E = 0 * np.ones(len(dEa_index) + len(dBE_index))
    E = wgs_cstr.CorrThermoConsis(E)
    assert wgs_cstr.CheckThermoConsis(E)

    for condi in conditionlist:
        tor, _ = wgs_cstr.fwd_simulation(E, condi, reltol=1e-12, abstol=1e-14)
        print(tor)


if __name__ == "__main__":
    test_cstr_build()