Пример #1
0
def generate_model():
    import kmos
    from kmos.types import \
        ConditionAction, \
        Coord, \
        Layer, \
        Parameter, \
        Process,\
        Project,\
        Site, \
        Species

    project = Project()

    # set meta information
    model_name = 'test_cli_generated_model'
    project.meta.author = 'Max J. Hoffmann'
    project.meta.email = '*****@*****.**'
    project.meta.model_dimension = '2'
    project.meta.debug = 0
    project.meta.model_name = model_name

    # add layer
    project.add_layer(Layer(name='default', sites=[
        Site(name='cus', pos='0 0.5 0.5')]))

    project.layer_list.default_layer = 'default'

    # add species
    project.add_species(Species(name='oxygen', color='#ff0000'))
    project.add_species(Species(name='CO', color='#000000'))
    project.add_species(Species(name='empty', color='#ffffff'))
    project.species_list.default_species = 'empty'

    # add parameters
    project.add_parameter(Parameter(name='p_CO', value=0.2, scale='log'))
    project.add_parameter(Parameter(name='T', value=500, adjustable=True))
    project.add_parameter(Parameter(name='p_O2', value=1.0, adjustable=True))

    # add processes
    cus = Coord(name='cus', layer='default')
    p = Process(name='CO_adsorption', rate_constant='1000.')
    p.add_condition(ConditionAction(species='empty', coord=cus))
    p.add_action(ConditionAction(species='CO', coord=cus))
    project.add_process(p)

    p = Process(name='CO_desorption', rate_constant='1000.')
    p.add_condition(ConditionAction(species='CO', coord=cus))
    p.add_action(ConditionAction(species='empty', coord=cus))
    project.add_process(p)
    return project
Пример #2
0
def generate_model():
    import kmos
    from kmos.types import \
        ConditionAction, \
        Coord, \
        Layer, \
        Parameter, \
        Process,\
        Project,\
        Site, \
        Species

    project = Project()

    # set meta information
    model_name = 'test_cli_generated_model'
    project.meta.author = 'Max J. Hoffmann'
    project.meta.email = '*****@*****.**'
    project.meta.model_dimension = '2'
    project.meta.debug = 0
    project.meta.model_name = model_name

    # add layer
    project.add_layer(
        Layer(name='default', sites=[Site(name='cus', pos='0 0.5 0.5')]))

    project.layer_list.default_layer = 'default'

    # add species
    project.add_species(Species(name='oxygen', color='#ff0000'))
    project.add_species(Species(name='CO', color='#000000'))
    project.add_species(Species(name='empty', color='#ffffff'))
    project.species_list.default_species = 'empty'

    # add parameters
    project.add_parameter(Parameter(name='p_CO', value=0.2, scale='log'))
    project.add_parameter(Parameter(name='T', value=500, adjustable=True))
    project.add_parameter(Parameter(name='p_O2', value=1.0, adjustable=True))

    # add processes
    cus = Coord(name='cus', layer='default')
    p = Process(name='CO_adsorption', rate_constant='1000.')
    p.add_condition(ConditionAction(species='empty', coord=cus))
    p.add_action(ConditionAction(species='CO', coord=cus))
    project.add_process(p)

    p = Process(name='CO_desorption', rate_constant='1000.')
    p.add_condition(ConditionAction(species='CO', coord=cus))
    p.add_action(ConditionAction(species='empty', coord=cus))
    project.add_process(p)
    return project
Пример #3
0


pt.set_meta(author='StangenMensch',
            email='*****@*****.**',
            model_dimension=1,
            model_name='hopping_model')
pt.add_species(name='empty',
               color='#ffffff',
               )
pt.add_species(name='C',
               representation="Atoms('C',[[0,0,0]])",
               color='#000000')

pt.layer_list.cell = np.diag([1., 1., 1.])
pt.add_layer(name='default',
                     color='#ffffff')
pt.add_site(layer='default',
            pos='0 0 0',
            name='a')

coord = pt.layer_list.generate_coord

pt.add_process(name='ads',
               rate_constant='10**6',
               conditions=[Condition(species='empty', coord=coord('a'))],
               actions=[Action(species='C', coord=coord('a'))],
               tof_count={'adsorption': 1})

pt.add_process(name='des',
               rate_constant='10**6',
               conditions=[Condition(species='C', coord=coord('a'))],
Пример #4
0
pt = Project()

pt.set_meta(author='StangenMensch',
            email='*****@*****.**',
            model_dimension=1,
            model_name='hopping_model')
pt.add_species(
    name='empty',
    color='#ffffff',
)
pt.add_species(name='C',
               representation="Atoms('C',[[0,0,0]])",
               color='#000000')

pt.layer_list.cell = np.diag([1., 1., 1.])
pt.add_layer(name='default', color='#ffffff')
pt.add_site(layer='default', pos='0 0 0', name='a')

coord = pt.layer_list.generate_coord

pt.add_process(name='ads',
               rate_constant='10**6',
               conditions=[Condition(species='empty', coord=coord('a'))],
               actions=[Action(species='C', coord=coord('a'))],
               tof_count={'adsorption': 1})

pt.add_process(name='des',
               rate_constant='10**6',
               conditions=[Condition(species='C', coord=coord('a'))],
               actions=[Action(species='empty', coord=coord('a'))],
               tof_count={'desorption': 1})
    model_dimension=2
)

# Species
pt.add_species(
    Species(name='empty', color='#d3d3d3'),
    Species(name='ion', color='#0000ff', representation="Atoms('Si')"),
    Species(name='source', color='#00ff00', representation="Atoms('Au')"),
    Species(name='drain', color='#ff0000', representation="Atoms('Ag')")
)
pt.species_list.default_species = 'empty'

# Layer and Coordinates
layer = Layer(name='simple_cubic')
layer.add_site(Site(name='hollow', pos='0.5 0.5 0.5'))
pt.add_layer(layer)

center = pt.lattice.generate_coord('hollow')
bottom = pt.lattice.generate_coord('hollow.(0,-1,0)')
top = pt.lattice.generate_coord('hollow.(0,+1,0)')
left = pt.lattice.generate_coord('hollow.(-1,0,0)')
right = pt.lattice.generate_coord('hollow.(+1,0,0)')

# Parameters
pt.add_parameter(name='E0', value=0.5)
pt.add_parameter(name='T', value=300)
pt.add_parameter(name='eps_f', value=0.0, adjustable=True, min=-0.05, max=0.05)
pt.add_parameter(name='e_int', value=0.002, adjustable=True, min=0.00, max=0.01)
pt.add_parameter(name='thetaS', value=1.0, adjustable=True, min=0.0, max=1.0)
pt.add_parameter(name='thetaD', value=0.0, adjustable=True, min=0.0, max=1.0)
import numpy as np
from kmos.types import Project, Site, Condition, Action

pt = Project()

pt.set_meta(author="LotkaVolterra",
            email='*****@*****.**',
            model_name='lotka_volterra_model',
            model_dimension=2)

pt.add_species(name='empty')
pt.add_species(name='A', representation="Atoms('O')")
pt.add_species(name='B', representation="Atoms('C')")

layer = pt.add_layer(name='sc')

pt.lattice.cell = np.diag([3.5, 3.5, 10])

layer.sites.append(Site(name='site', pos='.5 .5 .5'))


pt.add_parameter(name='k1', value='1000000.', adjustable=True, min=0., max=100.)
pt.add_parameter(name='k2', value=3.65, adjustable=True, min=0., max=100.)
pt.add_parameter(name='k3', value=1.1, adjustable=True, min=0., max=100.)
pt.add_parameter(name='zeta', value='0.06', adjustable=True, min=0., max=1.)



pt.parse_and_add_process('AA_creation1; A@site + empty@site.(1, 0, 0) -> A@site + A@site.(1,0,0); k1')
pt.parse_and_add_process('AA_creation2; A@site + empty@site.(-1, 0, 0) -> A@site + A@site.(-1,0,0); k1')
Пример #7
0
import numpy as np
from kmos.types import Project, Site, Condition, Action

pt = Project()

pt.set_meta(author="Ziff,Gulari,Barshad",
            email='*****@*****.**',
            model_name='zgb_model',
            model_dimension=2)

pt.add_species(name='empty', color='#ffffff')
pt.add_species(name='CO', representation="Atoms('C')", color='#000000')
pt.add_species(name='O', representation="Atoms('O')", color='#ff0000')

layer = pt.add_layer(name='sc')

pt.lattice.cell = np.diag([3.5, 3.5, 10])

layer.sites.append(Site(name='site', pos='.5 .5 .5'))

pt.add_parameter(name='yCO', value='0.45', adjustable=True, min=0., max=1.)

pt.parse_and_add_process('CO_adsorption; empty@site -> CO@site; yCO')

pt.parse_and_add_process(
    'O2_adsorption1; empty@site + empty@site.(1, 0, 0) -> O@site + O@site.(1,0,0); (1 - yCO)/2.'
)
pt.parse_and_add_process(
    'O2_adsorption2; empty@site + empty@site.(0, 1, 0) -> O@site + O@site.(0,1,0); (1 - yCO)/2.'
)
Пример #8
0
            email='*****@*****.**',
            model_name='LGD_lateral',
            model_dimension=2)

# Species
pt.add_species(
    Species(name='empty', color='#d3d3d3'),
    Species(name='ion', color='#0000ff', representation="Atoms('Si')"),
    Species(name='source', color='#00ff00', representation="Atoms('Au')"),
    Species(name='drain', color='#ff0000', representation="Atoms('Ag')"))
pt.species_list.default_species = 'empty'

# Layer and Coordinates
layer = Layer(name='simple_cubic')
layer.add_site(Site(name='hollow', pos='0.5 0.5 0.5'))
pt.add_layer(layer)

center = pt.lattice.generate_coord('hollow')
bottom = pt.lattice.generate_coord('hollow.(0,-1,0)')
top = pt.lattice.generate_coord('hollow.(0,+1,0)')
left = pt.lattice.generate_coord('hollow.(-1,0,0)')
right = pt.lattice.generate_coord('hollow.(+1,0,0)')

# Parameters
pt.add_parameter(name='E0', value=0.5)
pt.add_parameter(name='T', value=300)
pt.add_parameter(name='eps_f', value=0.0, adjustable=True, min=-0.05, max=0.05)
pt.add_parameter(name='e_int',
                 value=0.002,
                 adjustable=True,
                 min=0.00,