Modelling Workflows

At the core of modelling lies the art to capture the most important features of a system and leave all others out. Kmos3 is designed around the fact that modeling is a creative and iterative process.

A typical type of approach for modeling could be:

  1. start with educated guess

  2. calculate outcome

  3. compare various observables and qualitative behavior with reference system

  4. adapt model, go to 2. or publish model

So while this procedure is quite generic, it may help to illustrate that the chances to find and capture the relevant features of a system are enhanced if the trial/learn loop is as short as possible.

KMC Modeling

A good way to define a model is to use a paper and pencil to draw your lattice, choose the species that you will need, draw each process and write down an expression for each rate constant, and finally fix all energy barriers and external parameters that you will need. Putting a model prepared like this into a computer is a simple exercise. You enter a new model by filling in

  • meta information

  • lattice

  • species

  • parameters

  • processes

in roughly this order or adapt an existing one by opening a KMC XML file.

If you want to see the model run kmos3 export <xml-file>. You will get a subfolder with a self-contained Fortran90 code, which represents the model and you can simply run kmos3 view in this export folder as described in detail in the API tutorial.

Kmos3 Workflows

Since kmos3 has several entry points, there are several ways of using it. This section will outline different ways of using kmos3:

  • the render script

    Just write complete scripts as outlined in A First KMC Model. Compile source from there or inspect the XML file with one of the next methods below.

  • the CLI editor

    Open an existing project XML file with

    kmos3 import <project_name>.xml
    

    and edit the project interactively on the ipython console.

  • edit the XML file

    Just open the XML file of your kmos3 project with a text editor of your choice and inspect or edit your model right there. This might only be a last resort to figure out what is going on. XML is often not considered very readable and note that changing variable names in one place might cause inconsistencies in other places.