All Projects → bjmorgan → lattice_mc

bjmorgan / lattice_mc

Licence: MIT license
Lattice gas Monte Carlo simulation code

Programming Languages

python
139335 projects - #7 most used programming language
TeX
3793 projects

Projects that are alternatives of or similar to lattice mc

UQpy
UQpy (Uncertainty Quantification with python) is a general purpose Python toolbox for modeling uncertainty in physical and mathematical systems.
Stars: ✭ 117 (+387.5%)
Mutual labels:  monte-carlo, monte-carlo-simulation
GOMC
GOMC - GPU Optimized Monte Carlo is a parallel molecular simulation code designed for high-performance simulation of large systems
Stars: ✭ 41 (+70.83%)
Mutual labels:  monte-carlo, monte-carlo-simulation
mcrt
Monte Carlo Raytracer from Scratch in C++11/14
Stars: ✭ 22 (-8.33%)
Mutual labels:  monte-carlo
pylj
Teaching Utility for Classical Atomistic Simulation.
Stars: ✭ 23 (-4.17%)
Mutual labels:  monte-carlo
SpinMonteCarlo.jl
Markov chain Monte Carlo solver for lattice spin systems implemented by Julialang
Stars: ✭ 35 (+45.83%)
Mutual labels:  monte-carlo
Cassandra
Cassandra is a Monte Carlo package to conduct atomistic simulations.
Stars: ✭ 26 (+8.33%)
Mutual labels:  monte-carlo-simulation
LatticeQCD.jl
A native Julia code for lattice QCD with dynamical fermions in 4 dimension.
Stars: ✭ 85 (+254.17%)
Mutual labels:  monte-carlo
Bioindustrial-Park
BioSTEAM's Premier Repository for Biorefinery Models and Results
Stars: ✭ 23 (-4.17%)
Mutual labels:  monte-carlo
evoplex
Evoplex is a fast, robust and extensible platform for developing agent-based models and multi-agent systems on networks. It's available for Windows, Linux and macOS.
Stars: ✭ 98 (+308.33%)
Mutual labels:  monte-carlo-simulation
ml
machine learning
Stars: ✭ 29 (+20.83%)
Mutual labels:  monte-carlo
rough bergomi
A Python implementation of the rough Bergomi model.
Stars: ✭ 63 (+162.5%)
Mutual labels:  monte-carlo
OpenCossan
OpenCossan is an open and free toolbox for uncertainty quantification and management.
Stars: ✭ 40 (+66.67%)
Mutual labels:  monte-carlo-simulation
ising-model
Python implementation of the Ising model
Stars: ✭ 37 (+54.17%)
Mutual labels:  monte-carlo
cmna-pkg
Computational Methods for Numerical Analysis
Stars: ✭ 13 (-45.83%)
Mutual labels:  monte-carlo
optionmatrix
Financial Derivatives Calculator with 168+ Models (Options Calculator)
Stars: ✭ 121 (+404.17%)
Mutual labels:  monte-carlo
ProjectReward
A software to shortlist and find the best options spread available for a given stock and help it visualise using payoff graphs.
Stars: ✭ 57 (+137.5%)
Mutual labels:  monte-carlo
antaresViz
ANTARES Visualizations
Stars: ✭ 19 (-20.83%)
Mutual labels:  monte-carlo-simulation
DISCOTRESS
🦜 DISCOTRESS 🦜 is a software package to simulate and analyse the dynamics on arbitrary Markov chains
Stars: ✭ 20 (-16.67%)
Mutual labels:  kinetic-monte-carlo
PROJ Option Pricing Matlab
Quant Option Pricing - Exotic/Vanilla: Barrier, Asian, European, American, Parisian, Lookback, Cliquet, Variance Swap, Swing, Forward Starting, Step, Fader
Stars: ✭ 85 (+254.17%)
Mutual labels:  monte-carlo
l2hmc-qcd
Application of the L2HMC algorithm to simulations in lattice QCD.
Stars: ✭ 33 (+37.5%)
Mutual labels:  monte-carlo

lattice_mc: A Python Lattice-Gas Monte Carlo Module

PyPI version Build Status DOI JOSS status Documentation Status Test Coverage

lattice_mc is Python module for performing (kinetic) lattice-gas Monte Carlo (LGMC) simulations of ionic transport in solid electrolytes.

In solid electrolytes, ionic motion is typically effected by a series of discrete “jumps” where ions move between adjacent lattice sites [1]. For dilute mobile ions, ionic trajectories are random walks, and simple analytical expressions exits that relate macroscopic transport coefficients, i.e. diffusion coefficients and ionic conductivities, to the microscopic jump frequency of individual ions [2,3]. Practical solid electrolytes have high mobile ion concentrations, with significant interparticle interactions producing deviations from the dilute limit random walk behaviour. In general, the quantitative effect of interparticle interactions cannot be determined analytically. As an alternative, numerical simulations, such as lattice-gas Monte Carlo methods, can be used to directly calculate these relationships. Lattice-gas Monte Carlo methods are particularly suited to studying how varying properties across broad classes of materials give quantitative differences in macroscopic ionic transport, and can be used to understand the different transport properties of materials with, for example, different crystal structures or mobile ion stoichiometries.

lattice_mc has been written to allow materials scientists and solid-state chemists model how the microscopic physics of solid electrolytes (crystal structure, stoichiometry, interaction models) determine macroscopic transport behaviour (diffusion and ionic conduction), with the goal of understand the factors that make different materials more or less useful for specific applications (e.g. Li-ion batteries or fuel cells).

The code allows the programmatic construction of simple lattices (presently implemented are square, honeycomb, and cubic lattices). Lattices with arbitrary geometries can be constructed from a file format that defines the lattice sites and their connectivity, allowing models based on crystallographic data. The algorithms used and interaction models are described in more detail in Ref. [4]. Calculated properties include tracer and “jump” diffusion coefficients; where the latter is proportional to the mobility (and hence the conductivity for charged particles) [5]; and tracer (single particle) and collective correlation factors, f and fI [6]. The simplest interaction model is for “non-interacting” particles, where the only restriction is volume exclusion (two particles cannot simultaneously occupy a single site) [7]. Additional interaction models include nearest-neighbour repulsion and on-site energies for inequivalent sites. Simulations are performed using an efficient rejection-free Monte Carlo scheme [8].

Installation

pip install lattice_mc

Or download the latest release from GitHub

https://github.com/bjmorgan/lattice_mc/archive/1.0.0.tar.gz

Then install

cd lattice_mc
python setup.py install

Or you can clone the latest development version:

git clone [email protected]:bjmorgan/lattice_mc.git

and install the same way.

cd lattice_mc
python setup.py install

Alternatively, you can install the latest build using pip, direct from GitHub, e.g.

pip3 install git+https://github.com/bjmorgan/lattice_mc.git

Documentation

Full documentation and examples are contained in a Jupyter notebook at examples/lattice_mc_example.ipynb. The example notebook is also hosted on GitHub.

Tests

Automated testing of the latest build happens here.

Manual tests can be run using

python3 -m unittest discover

The code has been tested with Python versions 3.5 and above.

References

  1. C. R. A. Catlow, Sol. Stat. Ionics 8, 89 (1983).
  2. R. E. Howard and A. B. Lidiard, Rep. Prog. Phys. 27, 161 (1964).
  3. J. H. Harding, Defects and Transport in Ionic Solids, in Ionic Solids at High Temperatures ed. A. M. Stoneham, World Scientific (1989).
  4. B. J. Morgan, R. Soc. Open Sci. 4, 170824 (2017).
  5. A. Van der Ven et al. Acc. Chem. Res. 46, 1216 (2013).
  6. G. E. Murch Sol. Stat. Ionics 7, 177 (1982).
  7. R. Kutner Phys. Lett. 81A, 239 (1981).
  8. A. F. Voter, Introduction to the Kinetic Monte Carlo Method, in Radiation Effects in Solids, ed. K. E. Sicafus et al., Springer (2007).
  9. Morgan and Madden, J. Phys. Condens. Matter 24, 275303 (2012).
  10. G. E. Murch & R. J. Thorn, Phil. Mag. 36 529 (1977).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].