Ejemplo n.º 1
0
cov_labels = model.get_occupation_header().split(' ')

#Number of kmc steps taken in each sample
sample_step = 1e5

#Number of samples
N = 100

#prepare arrays for TOFs, coverages and kmc steps
tofs = np.zeros((N, len(tof_labels)))
covs = np.zeros((N, len(cov_labels)))
steps = np.zeros((N, 1))

#run model and save data
for i in range(N):
    atoms = model.get_atoms(geometry=False)
    tof = atoms.tof_integ
    tofs[i, :] = tof
    cov = atoms.occupation
    covs[i, :] = cov.flatten()
    step = atoms.kmc_step
    steps[i] = step
    model.do_steps(sample_step)

#prepare figure and plot colors
fig = pylab.figure()
colors = [
    "#0065bd", "#a2ad00", "#e37222", "#B452CD", "#dad7cb", "#000000", "r"
]

#plot TOFs
Ejemplo n.º 2
0
"""Visualize the growth of a run of the SOS model"""
import sys, os
from kmos.run import KMC_Model
from ase.visualize import view

config = os.path.splitext(sys.argv[1])[0]

size = (30, 30, 30)
model = KMC_Model(banner=False, size=size)

model.load_config(config)
at = model.get_atoms()

view(at)
Ejemplo n.º 3
0
"""Visualize the growth of a run of the SOS model"""
import sys, os
from kmos.run import KMC_Model
from ase.visualize import view

config = os.path.splitext(sys.argv[1])[0]

size = (30, 30, 30)
model = KMC_Model(banner = False, size = size)

model.load_config(config)
at = model.get_atoms()

view(at)
Ejemplo n.º 4
0
Ts = [350, 450]
kads = 3e-3
size = (30, 30, 30)
targetML = 4.

nsteps = 100

for i,T in enumerate(Ts):
    random_seed = random.random()*1e12
    model = KMC_Model(banner=False,
                      size = size,
                      random_seed = random_seed)
    model.parameters.T = T
    model.parameters.kads = kads
    tsim = 0.0
    ML = 0.0
    while ML < targetML:
        model.do_steps(nsteps)
        at = model.get_atoms(geometry=False)
        # Convert TOF into ML growth
        ML += at.tof_data[model.tofs.index('Growth')]*at.delta_t*size[2]
    outname = '_'.join(['config', 'T{}'.format(T)] +
                       ['{}'.format(d) for d in model.size])
    model.dump_config(outname)
    print('Finished with T={}K'.format(T))
    print('Deposited {}ML in {} s'.format(
        ML,
        model.base.get_kmc_time()))

    model.deallocate()