This project aims to learn stochastic dynamics from KMC data using a GAN approach. Some methods/functions may also be found in the CRANE project. However, the latter is not required for this project to run.
The following code dependencies are required. Simple installation through pip (possibly with virtualenvs) should work just fine
- numpy
- pytorch
- torchvision
- matplotlib
- numba (optional)
- torchview
The code is organized in the following folders:
- data/ contains the dataset examples (better to be organized in subfolders)
- train_logs contains output of the training procedure
- models/ you can put trained models here
- out/ this folder is for the ouptut of the prediction/generated evolutions
- src/ this foldet contains the source code, distributed into the classes, convolutions, dataloaders, parser and utils modules
The train.py script can be used to train a model; use python3 train.py --help to see all available options for the parser. Some features are implemented (e.g. LSGAN, WGAN) but have not been fully experimented yet. If you are interested in using those, or would like to collaborate in possible implementations, please don't hesitate to contact us.
A dataset of KMC simulations of monoatomic step dyanmics on a simple cubic 100 surface is available at MaterialsCloud. In the same repository, some GAN-generated trajectories are also available.
The present code has been used in the paper "Learning Kinetic Monte Carlo stochastic dynamics with Deep Generative Adversarial Networks" (preprint). The dataset and generated trajectories are available here.