lattice_mc
lattice_mc: A Python Lattice-Gas Monte Carlo Module - Published in JOSS (2017)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 25 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: iop.org, joss.theoj.org, zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Scientific Fields
Repository
Lattice gas Monte Carlo simulation code
Basic Info
- Host: GitHub
- Owner: bjmorgan
- License: mit
- Language: Python
- Default Branch: master
- Size: 1.12 MB
Statistics
- Stars: 33
- Watchers: 4
- Forks: 7
- Open Issues: 4
- Releases: 3
Topics
Metadata Files
README.md
lattice_mc: A Python Lattice-Gas Monte Carlo Module
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 git@github.com: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/latticemcexample.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
- C. R. A. Catlow, Sol. Stat. Ionics 8, 89 (1983).
- R. E. Howard and A. B. Lidiard, Rep. Prog. Phys. 27, 161 (1964).
- J. H. Harding, Defects and Transport in Ionic Solids, in Ionic Solids at High Temperatures ed. A. M. Stoneham, World Scientific (1989).
- B. J. Morgan, R. Soc. Open Sci. 4, 170824 (2017).
- A. Van der Ven et al. Acc. Chem. Res. 46, 1216 (2013).
- G. E. Murch Sol. Stat. Ionics 7, 177 (1982).
- R. Kutner Phys. Lett. 81A, 239 (1981).
- A. F. Voter, Introduction to the Kinetic Monte Carlo Method, in Radiation Effects in Solids, ed. K. E. Sicafus et al., Springer (2007).
- Morgan and Madden, J. Phys. Condens. Matter 24, 275303 (2012).
- G. E. Murch & R. J. Thorn, Phil. Mag. 36 529 (1977).
Owner
- Name: Benjamin Morgan
- Login: bjmorgan
- Kind: user
- Location: Bath, UK
- Company: University of Bath
- Repositories: 73
- Profile: https://github.com/bjmorgan
Computational Chemistry at the University of Bath, UK.
JOSS Publication
lattice_mc: A Python Lattice-Gas Monte Carlo Module
Authors
Tags
lattice-gas monte-carlo correlation-factorsCodeMeta (codemeta.json)
{
"@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
"@type": "Code",
"author": [
{
"@id": "http://orcid.org/0000-0002-3056-8233",
"@type": "Person",
"email": "b.j.morgan@bath.ac.uk",
"name": "Benjamin Morgan",
"affiliation": "Department of Chemistry, University of Bath, Bath, BA2 7AY, United Kingdom."
}
],
"identifier": "",
"codeRepository": "https://github.com/bjmorgan/lattice_mc",
"datePublished": "2017-04-14",
"dateModified": "2017-04-14",
"dateCreated": "2017-04-14",
"description": "Lattice-gas (kinetic) Monte Carlo implemented in Python",
"keywords": "monte-carlo, lattice-gas, correlation-factors",
"license": "MIT",
"title": "lattice_mc",
"version": "1.0.2"
}
GitHub Events
Total
- Watch event: 4
Last Year
- Watch event: 4
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Benjamin Morgan | b****2@g****m | 148 |
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 4
- Total pull requests: 1
- Average time to close issues: 1 day
- Average time to close pull requests: N/A
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 0.75
- Average comments per pull request: 1.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- bjmorgan (2)
- connorourke (2)
Pull Request Authors
- kitmccoll (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 1,749 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 4
- Total maintainers: 1
pypi.org: lattice-mc
A lattice-gas Monte-Carlo simulation tool
- Homepage: https://github.com/bjmorgan/lattice_mc
- Documentation: https://lattice-mc.readthedocs.io/
- License: MIT
-
Latest release: 1.0.4
published over 7 years ago
Rankings
Maintainers (1)
Dependencies
- Sphinx >=1.6.3
- numpy *
- scipy *
- Sphinx >=1.6.3
- codeclimate-test-reporter *
- coverage ==4.3.4
- matplotlib *
- numpy *
- pandas *
- scipy *
