smol

smol: A Python package for cluster expansions and beyond - Published in JOSS (2022)

https://github.com/cedergrouphub/smol

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    4 of 9 committers (44.4%) from academic institutions
  • Institutional organization owner
    Organization cedergrouphub has institutional domain (ceder.berkeley.edu)
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

cluster-expansion ising-model lattice-gas materials-science monte-carlo statistical-mechanics

Keywords from Contributors

mesh hydrology energy-system exoplanet hydraulic-modelling polygon gravitational-lensing geoscience ode
Last synced: 4 months ago · JSON representation ·

Repository

Statistical Mechanics on Lattices

Basic Info
Statistics
  • Stars: 84
  • Watchers: 4
  • Forks: 17
  • Open Issues: 20
  • Releases: 22
Topics
cluster-expansion ising-model lattice-gas materials-science monte-carlo statistical-mechanics
Created about 6 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog License Citation

README.md

Statistical Mechanics on Lattices

![test](https://github.com/CederGroupHub/smol/actions/workflows/test.yml/badge.svg) [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/f6180b5223f346d2ac9dcf9a4bcc62d9)](https://www.codacy.com/gh/CederGroupHub/smol/dashboard?utm_source=github.com&utm_medium=referral&utm_content=CederGroupHub/smol&utm_campaign=Badge_Coverage) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/CederGroupHub/smol/main.svg)](https://results.pre-commit.ci/latest/github/CederGroupHub/smol/main) [![pypi version](https://img.shields.io/pypi/v/smol?color=blue)](https://pypi.org/project/smol) [![Static Badge](https://img.shields.io/badge/python-3.9%2B-blue)](https://www.python.org/downloads/) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/CederGroupHub/smol/HEAD?labpath=docs%2Fsrc%2Fnotebooks%2Findex.ipynb) [![status](https://joss.theoj.org/papers/e96a568ca53ee9d14548d7b8bed69b25/status.svg)](https://joss.theoj.org/papers/e96a568ca53ee9d14548d7b8bed69b25)

Lightweight but caffeinated Python implementation of computational methods for statistical mechanical calculations of configurational states in crystalline materials.


smol is a minimal implementation of computational methods to calculate statistical mechanical and thermodynamic properties of crystalline material systems based on the cluster expansion method from alloy theory and related methods. Although smol is intentionally lightweight---in terms of dependencies and built-in functionality---it has a modular design that closely follows underlying mathematical formalism and provides useful abstractions to easily extend existing methods or implement and test new ones.

Functionality

smol currently includes the following functionality:

  • Defining cluster expansion functions for a given disordered structure using a variety of available site basis functions with and without explicit redundancy.

  • Option to include explicit electrostatics in expansions using the Ewald summation method.

  • Computing correlation vectors for a set of training structures with a variety of functionality to inspect the resulting feature matrix.

  • Defining fitted cluster expansions for subsequent property prediction.

  • Fast evaluation of correlation vectors and differences in correlation vectors from local updates in order to quickly compute properties and changes in properties for specified supercell sizes.

  • Flexible toolset to sample cluster expansions using Monte Carlo with canonical, semigrand canonical, and charge neutral semigrand canonical ensembles using a Metropolis or a Wang-Landau sampler.

  • Special quasi-random structure generation based on either correlation vectors or cluster interaction vectors.

  • Solving for periodic ground-states of any given cluster expansion with or without electrostatics over a given supercell.

smol is built on top of pymatgen so any pre/post structure analysis can be done seamlessly using the various functionality supported there.

Installation

From pypi:

pip install smol

From source:

Clone the repository. The latest tag in the main branch is the stable version of the code. The main branch has the newest tested features, but may have more lingering bugs. From the top level directory

pip install .

Although smol is not tested on Windows platforms, it should still run on Windows since there aren't any platform specific dependencies. The only known installation issue is building pymatgen dependencies. If simply running pip install smol fails, try installing pymatgen with conda first:

conda install -c conda-forge pymatgen
pip install smol

You can also simply use the environment.yml file in the repository to install smol:

conda env create -f environment.yml
source activate smol-env

Usage

Refer to the documentation for details on using smol. Going through the example notebooks will also help you get started. You can run the example notebooks interactively in binder.

Citing

If you use smol in your research, please give the repo a star :star: and refer to the citing page in the documentation for formal citation information.

Contributing

We welcome all your contributions with open arms! Please fork and pull request any contributions. See the developing page in the documentation for how to contribute.

Changes

The most recent changes are detailed in the change log.

Copyright Notice

Statistical Mechanics on Lattices (smol) Copyright (c) 2022, The Regents
of the University of California, through Lawrence Berkeley National
Laboratory (subject to receipt of any required approvals from the U.S.
Dept. of Energy) and the University of California, Berkeley. All rights reserved.

If you have questions about your rights to use or distribute this software,
please contact Berkeley Lab's Intellectual Property Office at
IPO@lbl.gov.

NOTICE.  This Software was developed under funding from the U.S. Department
of Energy and the U.S. Government consequently retains certain rights.  As
such, the U.S. Government has been granted for itself and others acting on
its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the
Software to reproduce, distribute copies to the public, prepare derivative
works, and perform publicly and display publicly, and to permit others to do so.

Owner

  • Name: Ceder Group
  • Login: CederGroupHub
  • Kind: organization

JOSS Publication

smol: A Python package for cluster expansions and beyond
Published
September 29, 2022
Volume 7, Issue 77, Page 4504
Authors
Luis Barroso-Luque ORCID
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Julia H. Yang ORCID
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Fengyu Xie ORCID
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Tina Chen ORCID
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Ronald L. Kam
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Zinab Jadidi
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Peichen Zhong ORCID
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Gerbrand Ceder ORCID
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Editor
Jarvist Moore Frost ORCID
Tags
computational materials science lattice models cluster expansion method Monte Carlo

Citation (CITATION.cff)

cff-version: 1.2.0
title: smol - Statistical Mechanics on Lattices
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Luis
    family-names: Barroso-Luque
    email: lbluque@berkeley.edu
    orcid: 'https://orcid.org/0000-0002-6453-9545'
  - given-names: Julia
    name-particle: H.
    family-names: Yang
    orcid: 'https://orcid.org/0000-0002-5713-2288'
  - given-names: Fengyu
    family-names: Xie
    orcid: 'https://orcid.org/0000-0002-1169-1690'
  - given-names: Tina
    family-names: Chen
    orcid: 'https://orcid.org/0000-0003-0254-8339'
  - given-names: Ronald
    name-particle: L.
    family-names: Kam
  - given-names: Zinab
    family-names: Yadidi
  - given-names: Peichen
    family-names: Zhong
    orcid: 'https://orcid.org/0000-0003-1921-1628'
identifiers:
  - type: doi
    value: 10.21105/joss.04504
    description: JOSS publication for this package
  - type: doi
    value: 10.5281/zenodo.7115050
    description: Zenodo archive of version v0.0.7
repository-code: 'https://github.com/CederGroupHub/smol'
url: 'https://cedergrouphub.github.io/smol/'
license: BSD-3-Clause-LBNL
preferred-citation:
  type: article
  authors:
  - given-names: Luis
    family-names: Barroso-Luque
    email: lbluque@berkeley.edu
    orcid: 'https://orcid.org/0000-0002-6453-9545'
  - given-names: Julia
    name-particle: H.
    family-names: Yang
    orcid: 'https://orcid.org/0000-0002-5713-2288'
  - given-names: Fengyu
    family-names: Xie
    orcid: 'https://orcid.org/0000-0002-1169-1690'
  - given-names: Tina
    family-names: Chen
    orcid: 'https://orcid.org/0000-0003-0254-8339'
  - given-names: Ronald
    name-particle: L.
    family-names: Kam
  - given-names: Zinab
    family-names: Yadidi
  - given-names: Peichen
    family-names: Zhong
    orcid: 'https://orcid.org/0000-0003-1921-1628'
  - given-names: Gerbrand
    family-names: Ceder
    orcid: 'https://orcid.org/0000-0001-9275-3605'
  doi: "10.21105/joss.04504"
  journal: "Journal of Open Source Software"
  month: 9
  start: 4504 # First page number
  end: 4504 # Last page number
  title: "smol: A Python package for cluster expansions and beyond"
  volume: 7
  number: 77
  year: 2022

GitHub Events

Total
  • Create event: 33
  • Release event: 4
  • Issues event: 16
  • Watch event: 18
  • Delete event: 37
  • Issue comment event: 33
  • Push event: 45
  • Pull request review comment event: 2
  • Pull request review event: 7
  • Pull request event: 73
  • Fork event: 4
Last Year
  • Create event: 33
  • Release event: 4
  • Issues event: 16
  • Watch event: 18
  • Delete event: 37
  • Issue comment event: 33
  • Push event: 45
  • Pull request review comment event: 2
  • Pull request review event: 7
  • Pull request event: 73
  • Fork event: 4

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 2,063
  • Total Committers: 9
  • Avg Commits per committer: 229.222
  • Development Distribution Score (DDS): 0.247
Past Year
  • Commits: 89
  • Committers: 5
  • Avg Commits per committer: 17.8
  • Development Distribution Score (DDS): 0.629
Top Committers
Name Email Commits
lbluque l****e@b****u 1,554
qchempku2017 6****6@q****m 200
dependabot[bot] 4****] 143
Ronald Kam k****d@b****u 80
pre-commit-ci[bot] 6****] 53
tchen0965 t****5@g****m 13
juliayang j****g@b****u 8
Peichen Zhong z****c@b****u 8
zinab jadidi z****i@g****m 4
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 43
  • Total pull requests: 266
  • Average time to close issues: 4 months
  • Average time to close pull requests: 11 days
  • Total issue authors: 13
  • Total pull request authors: 6
  • Average comments per issue: 2.7
  • Average comments per pull request: 0.34
  • Merged pull requests: 205
  • Bot issues: 0
  • Bot pull requests: 208
Past Year
  • Issues: 6
  • Pull requests: 79
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 16 days
  • Issue authors: 5
  • Pull request authors: 6
  • Average comments per issue: 2.5
  • Average comments per pull request: 0.43
  • Merged pull requests: 47
  • Bot issues: 0
  • Bot pull requests: 69
Top Authors
Issue Authors
  • qchempku2017 (20)
  • lbluque (6)
  • kamronald (4)
  • Jeff-oakley (3)
  • ghalibalfaza (2)
  • jrjfonseca (1)
  • dmebane (1)
  • txy159 (1)
  • mstapelberg (1)
  • MarDiehl (1)
  • tankylz (1)
  • jic198 (1)
  • juliayang (1)
Pull Request Authors
  • dependabot[bot] (153)
  • github-actions[bot] (44)
  • lbluque (40)
  • pre-commit-ci[bot] (27)
  • kamronald (13)
  • qchempku2017 (9)
Top Labels
Issue Labels
bug (15) enhancement (13) triage (7) documentation (3) good first issue (2) code review (2) question (2) testing (1) wontfix (1) dependencies (1) github_actions (1) python (1)
Pull Request Labels
dependencies (197) github_actions (90) python (66) enhancement (6) documentation (3) testing (3) feature (1) bug (1) breaking (1) fix (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 530 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 21
  • Total maintainers: 1
pypi.org: smol

Lighthweight but caffeinated Python implementation of computational methods for statistical mechanical calculations of configurational states in crystalline material systems.

  • Documentation: https://smol.readthedocs.io/
  • License: :: Statistical Mechanics on Lattices (smol) Copyright (c) 2022, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy) and the University of California, Berkeley. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: (1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. (3) Neither the name of the University of California, Lawrence Berkeley National Laboratory, U.S. Dept. of Energy, University of California, Berkeley nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. You are under no obligation whatsoever to provide any bug fixes, patches, or upgrades to the features, functionality or performance of the source code ("Enhancements") to anyone; however, if you choose to make your Enhancements available either publicly, or directly to Lawrence Berkeley National Laboratory, without imposing a separate written license agreement for such Enhancements, then you hereby grant the following license: a non-exclusive, royalty-free perpetual license to install, use, modify, prepare derivative works, incorporate into other computer software, distribute, and sublicense such enhancements or derivative works thereof, in binary and source code form.
  • Latest release: 0.5.7
    published 11 months ago
  • Versions: 19
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 530 Last month
Rankings
Dependent packages count: 4.8%
Downloads: 7.4%
Average: 11.3%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 4 months ago
pypi.org: statmech-on-lattices

Lighthweight but caffeinated Python implementation of computational methods for statistical mechanical calculations of configurational states in crystalline material systems.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 0
Rankings
Dependent packages count: 4.8%
Dependent repos count: 6.3%
Forks count: 13.4%
Average: 19.0%
Stargazers count: 19.3%
Downloads: 51.4%
Last synced: about 1 year ago