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
"""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)
"""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)
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()