Coder Social home page Coder Social logo

zqhuang2014 / kmclib Goto Github PK

View Code? Open in Web Editor NEW

This project forked from leetmaa/kmclib

0.0 2.0 0.0 2.53 MB

A kinetic Monte Carlo Python/C++ library.

License: GNU General Public License v3.0

CMake 0.59% C++ 37.73% Makefile 0.48% C 0.10% CSS 1.00% JavaScript 2.52% HTML 16.75% Python 40.84%

kmclib's Introduction

KMCLib - a general framework for lattice kinetic Monte Carlo (KMC) simulations

License and copying

Developed by Mikael Leetmaa at the Royal Institute of Technology (KTH), Sweden.
Copyright (c)  2012-2016  Mikael Leetmaa
Released under the GPLv3 license, see 'LICENSE.txt' for details.

When you use KMCLib in your research please cite the paper describing the code:

Mikael Leetmaa and Natalia V. Skorodumova
“KMCLib: A general framework for lattice kinetic Monte Carlo (KMC) simulations”
Comput. Phys. Commun. 185 (2014) 2340
DOI: 10.1016/j.cpc.2014.04.017

If you use version 1.1 or later I would also ask you to include this reference:

Mikael Leetmaa and Natalia V. Skorodumova
“KMCLib 1.1: Extended random number support and technical updates to the KMCLib general framework for kinetic Monte-Carlo simulations“
Comput. Phys. Commun.
DOI: 10.1016/j.cpc.2015.06.016

The mean square displacement algorithm is described here:

Mikael Leetmaa and Natalia V. Skorodumova
“Mean square displacements with error estimates from non-equidistant time-step kinetic Monte Carlo simulations“
Comput. Phys. Commun.
DOI: 10.1016/j.cpc.2015.02.006

KMCLib is now in version 2.0 alpha

KMCLib is a general framework for lattice kinetic Monte Carlo (KMC) simulations, to simulate the time evolution of systems of up to millions of particles in one, two or three dimensions. KMCLib is organized as a collection of Python frontend functions, classes and interfaces for performing efficient lattice KMC simulations, with all computationally heavy backend functionality implemented in C++.

Version 2.0 introduces support for having more than one particle per lattice site in the simulations. This was implemented to enable simulations of gas through porous solids as described in this paper:

Amber Mace, Mikael Leetmaa and Aatto Laaksonen
“Temporal Coarse Graining of CO2 and N2 Diffusion in Zeolite NaKA: From the Quantum Scale to the Macroscopic“
Journal of chemical theory and computation 11 (10), 4850-4860

Version 2.0 also comes with improved performance. A framework for writing custom rate calculators in C++ has been added for performance sensitive applications. Once your custom rate calculator is prototyped and tested in Python you can port it to C++ for increased performance. A caching mechanism for custom rates is now also in place, that can significantly reduce computational time for time consuming custom rates calculations.

The combination of features makes KMCLib unique

  • Python user interface - well documented, easily extended.
  • C++ backend library for maximizing efficiency.
  • Easy to prototype KMC models - no need to recompile source to run new models.
  • Arbitrarily complex elementary processes can be used.
  • On-the-fly evaluation of custom rate expressions written in Python.
  • Built in on-the-fly mean square displacement (MSD) analysis to facilitate diffusion studies.
  • MPI parallelism without loss of accuracy.

Well documented with usage examples and install instructions

The code manual (http://leetmaa.github.io/KMCLib/manual-v1.1/) includes full documentation of the Python interface and several usage examples, as well as installation instructions for both Linux and Mac.

There is at the time of writing no manual for version 2.0. All features in version 1.1 should be unchanged however. If ever in doubt please check the source code for details.

Known issues

Version 2.0 is still in an alpha stage. The set of features might change before the full version 2.0, and bugs may be found and fixed, however the quality of the code at this stage should meet the same standards with respect to quality as the previous full version 1.1. There are at the time of writing no known major bugs or issues, but as always, if you happen to find any bugs or issues, or if you have suggestions for improvements, please let me know.

Obtain a copy

The program is distributed under the GPLv3 license and can be obtained from the KMCLib git repository https://github.com/leetmaa/KMCLib/releases/tag/v2.0-a1

Use KMCLib in your own research

If you would be interested to use this code in your research and need any assistance, or if you are interested in collaborations, please don't hesitate to send me an e-mail: [email protected]

Mikael Leetmaa, Mars 28 2016

kmclib's People

Contributors

leetmaa avatar pytlab avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.