Skip to content

Commit

Permalink
Misc #0000: Bumping version to v2.0-a1.
Browse files Browse the repository at this point in the history
  • Loading branch information
leetmaa committed Mar 28, 2016
1 parent 3f7f5d3 commit 1c4a785
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 15 deletions.
37 changes: 30 additions & 7 deletions README.md
Expand Up @@ -3,21 +3,42 @@
### License and copying

Developed by Mikael Leetmaa at the Royal Institute of Technology (KTH), Sweden.
Copyright (c) 2012-2015 Mikael Leetmaa
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
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 1.1

### *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 *1.1* introduces support for different random number generators, and increased support for different platforms and compiles. Random numbers are now generated using the standard (C++11) library and *KMCLib* from now on supports the use of both the Mersenne-Twister and the RANLUX PRNG:s through the standard C++ library. Additionally the standard minimal PRNG is also available, as well as true random numbers if you have a random device installed. The make system is upgraded to provide support for additional platforms and compilers. We now support the **clang** compiler on Mac OSX, and both the **gcc** and the **Intel C++ compiler** under Linux. Support for the **Intel C++ compiler** was requested for use in particular on large computer clusters with little flexibility to change compilers.
Version *2.0* introduce support for having more than one particle per site. 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.
Expand All @@ -31,16 +52,18 @@ Version *1.1* introduces support for different random number generators, and inc
### 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
At the time of writing there are no known 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.
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/v1.1
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: leetmaa@kth.se


Mikael Leetmaa, May 28 2015
Mikael Leetmaa, Mars 28 2016


7 changes: 3 additions & 4 deletions python/src/KMCLib/Utilities/PrintUtilities.py
@@ -1,7 +1,7 @@
""" Module for holding common printing utility functions. """


# Copyright (c) 2013-2015 Mikael Leetmaa
# Copyright (c) 2013-2016 Mikael Leetmaa
#
# This file is part of the KMCLib project distributed under the terms of the
# GNU General Public License version 3, see <http://www.gnu.org/licenses/>.
Expand Down Expand Up @@ -44,10 +44,9 @@ def printHeader(output=None):

# Write.
prettyPrint("# -----------------------------------------------------------------------------", output)
prettyPrint("# KMCLib version 2.0.a0-devel", output)
prettyPrint("# **WARNING** This is a potentially broken development version of KMCLib.", output)
prettyPrint("# KMCLib version 2.0.a1", output)
prettyPrint("# Distributed under the GPLv3 license", output)
prettyPrint("# Copyright (C) 2012-2015 Mikael Leetmaa", output)
prettyPrint("# Copyright (C) 2012-2016 Mikael Leetmaa", output)
prettyPrint("# Developed by Mikael Leetmaa <leetmaa@kth.se>", output)

prettyPrint("#", output)
Expand Down
7 changes: 3 additions & 4 deletions python/unittest/KMCLibTest/Utilities/PrintUtilitiesTest.py
@@ -1,7 +1,7 @@
""" Module for testing the common print utilities. """


# Copyright (c) 2013 - 2015 Mikael Leetmaa
# Copyright (c) 2013 - 2016 Mikael Leetmaa
#
# This file is part of the KMCLib project distributed under the terms of the
# GNU General Public License version 3, see <http://www.gnu.org/licenses/>.
Expand Down Expand Up @@ -73,10 +73,9 @@ def testPrintHeader(self):
# Check.
if MPICommons.myRank() == 0:
ref_str = """# -----------------------------------------------------------------------------
# KMCLib version 2.0.a0-devel
# **WARNING** This is a potentially broken development version of KMCLib.
# KMCLib version 2.0.a1
# Distributed under the GPLv3 license
# Copyright (C) 2012-2015 Mikael Leetmaa
# Copyright (C) 2012-2016 Mikael Leetmaa
# Developed by Mikael Leetmaa <leetmaa@kth.se>
#
# This program is distributed in the hope that it will be useful
Expand Down

0 comments on commit 1c4a785

Please sign in to comment.