pengWann

pengWann: Descriptors of chemical bonding from Wannier functions - Published in JOSS (2025)

https://github.com/patrickjtaylor/pengwann

Science Score: 98.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

chemical-bonding python wannier-functions
Last synced: 4 months ago · JSON representation ·

Repository

A lightweight Python package for calculating descriptors of chemical bonding and local electronic structure from Wannier functions.

Basic Info
Statistics
  • Stars: 10
  • Watchers: 2
  • Forks: 1
  • Open Issues: 4
  • Releases: 10
Topics
chemical-bonding python wannier-functions
Created over 1 year ago · Last pushed 4 months ago
Metadata Files
Readme Contributing License Citation

README.md

The pengWann logo: a purple penguin.

(technically pronounced peng-van, but some pronounce numpy as num-pee rather than num-pie, so who really knows?)

JOSS status License: GPL v3 Docs Test coverage Requires Python 3.10+ Requires Rust 1.82.0+ PyPI version Conda version

A lightweight Python package for computing descriptors of chemical bonding and local electronic structure from Wannier functions.

A handful of example outputs from pengWann as applied to rutile.

A handful of example outputs from pengwann as applied to rutile. The colour-coded numbers next to the crystal structure are Löwdin-style charges computed for Ti (blue) and O (red).

Core features:

  • 📖 Read Wannier90 output files
  • 🔎 Identify interatomic and on-site interactions in terms of atom-assigned Wannier functions
  • 💻 Compute in parallel:
    • The Wannier orbital Hamilton population (WOHP)
    • The Wannier orbital bond index (WOBI)
    • The Wannier-projected density of states (pDOS)
    • Orbital and k-resolved implementations of all of the above
  • 📈 Integrate descriptors to derive:
    • Löwdin-style populations and charges
    • Measures of bond strength and bond order

pengwann replicates the core functionality of LOBSTER but uses Wannier functions rather than pre-defined atomic or pseudo-atomic orbitals as a local basis in which to express the Hamiltonian and the density matrix. A Wannier basis is advantageous in that, when derived from energetically isolated bands, the spilling factor is strictly 0.

For further details regarding detailed methodology, functionality and examples, see the documentation.

Getting started 🚀

Installation 🐧

The latest tagged release of pengwann is pip-installable as:

shell pip install pengwann

Similarly, if you are using a conda environment, the latest tagged release is conda-installable as:

shell conda install -c conda-forge pengwann

Alternatively, to install the current development build, you can build from source with:

shell pip install git+https://github.com/PatrickJTaylor/pengwann.git

Note that building pengwann from source entails compiling a small Rust extension, meaning that a suitable version of the Rust compiler must be available on the host machine. For more details regarding installation and platform support, see the full installation guide in the docs.

Basic usage 📝

For a quick run through of the basics, see the first example in the docs on computing bonding descriptors in diamond.

All of the example notebooks discussed in the documentation are also available for local execution under docs/examples should you wish to play around with some sample workflows and their associated data.

Support 🤝

Getting help 👋

If you're having problems using pengwann and the docs do not provide a solution, feel free to open a discussion and we will endeavour to get back to you as soon as possible.

Bugs 🐛

If you think you have found a bug in pengwann, please create an issue and let us know!

Contributing 🛠

Contributions to pengwann via pull request are very welcome, whether the changes are big or small! See the contributing guide for more details.

Acknowledgements 📣

The development of pengwann was initially inspired by WOBSTER, which in turn drew inspiration from previous work on using Wannier functions for population analysis[^1].

[^1]: S. Kundu et al., Population analysis with Wannier orbitals, In: J. Chem. Phys. 154 (10 2021), p. 104111

Owner

  • Name: Patrick Taylor
  • Login: PatrickJTaylor
  • Kind: user

PhD student modelling next-generation Li-ion cathode materials at the University of Bath.

JOSS Publication

pengWann: Descriptors of chemical bonding from Wannier functions
Published
April 28, 2025
Volume 10, Issue 108, Page 7890
Authors
Patrick J. Taylor ORCID
Department of Chemistry, University of Bath, Claverton Down, Bath, BA2 7AY, United Kingdom, The Faraday Institution, Quad One, Harwell Science and Innovation Campus, Didcot, OX11 0RA, United Kingdom
Benjamin J. Morgan ORCID
Department of Chemistry, University of Bath, Claverton Down, Bath, BA2 7AY, United Kingdom, The Faraday Institution, Quad One, Harwell Science and Innovation Campus, Didcot, OX11 0RA, United Kingdom
Editor
Rachel Kurchin ORCID
Tags
chemical bonding Wannier functions

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Taylor
  given-names: Patrick J.
  orcid: "https://orcid.org/0009-0003-6511-6442"
- family-names: Morgan
  given-names: Benjamin J.
  orcid: "https://orcid.org/0000-0002-3056-8233"
doi: 10.5281/zenodo.15238442
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Taylor
    given-names: Patrick J.
    orcid: "https://orcid.org/0009-0003-6511-6442"
  - family-names: Morgan
    given-names: Benjamin J.
    orcid: "https://orcid.org/0000-0002-3056-8233"
  date-published: 2025-04-28
  doi: 10.21105/joss.07890
  issn: 2475-9066
  issue: 108
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 7890
  title: "pengWann: Descriptors of chemical bonding from Wannier
    functions"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.07890"
  volume: 10
title: "pengWann: Descriptors of chemical bonding from Wannier
  functions"

GitHub Events

Total
  • Create event: 56
  • Release event: 9
  • Issues event: 17
  • Watch event: 6
  • Delete event: 33
  • Issue comment event: 9
  • Push event: 294
  • Pull request event: 82
  • Fork event: 1
Last Year
  • Create event: 56
  • Release event: 9
  • Issues event: 17
  • Watch event: 6
  • Delete event: 33
  • Issue comment event: 9
  • Push event: 294
  • Pull request event: 82
  • Fork event: 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 10
  • Total pull requests: 49
  • Average time to close issues: about 8 hours
  • Average time to close pull requests: 2 days
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.14
  • Merged pull requests: 38
  • Bot issues: 1
  • Bot pull requests: 25
Past Year
  • Issues: 10
  • Pull requests: 49
  • Average time to close issues: about 8 hours
  • Average time to close pull requests: 2 days
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.14
  • Merged pull requests: 38
  • Bot issues: 1
  • Bot pull requests: 25
Top Authors
Issue Authors
  • PatrickJTaylor (9)
  • renovate[bot] (1)
Pull Request Authors
  • renovate[bot] (25)
  • PatrickJTaylor (22)
  • bjmorgan (2)
Top Labels
Issue Labels
enhancement (6)
Pull Request Labels
enhancement (6) documentation (5) bug (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 730 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 10
  • Total maintainers: 1
pypi.org: pengwann

Computation of chemical bonding descriptors from Wannier functions

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 730 Last month
Rankings
Dependent packages count: 9.9%
Average: 32.7%
Dependent repos count: 55.5%
Maintainers (1)
Last synced: 4 months ago