Components of KIMMDY

Author

Kai Riedmiller

Here is an overview of the most important components of KIMMDY, and how they interact with each other:

Attributes have a gray, the user-supplied input an orange backdrop.

A KIMMDY run is orchestrated from a central class called RunManager. After the user input from the command line interface is handled in the cmd module, a RunManager is instantiated with a config built from the input yaml file. During the initialization, the topology is loaded, and the plugins for reactions and parametrizing are instantiated. The run then starts with a call to RunManager.run. This triggers building of the initial task queue, which then gets processed. In addition to this main task queue, there is also a priority queue available, for tasks to submit other tasks to. These get executed as soon as the current task has finished, but before any eventual other tasks in the main queue. During the task queue building process, reactions are expanded into three tasks. The first one calls the plugin itself to obtain reaction recipes. Then, one recipe must be chosen from all possible ones in a kMC step. Finally, the recipe must be applied at the correct time of the last simulation.

Back to top