Recent Releases of pengWann

pengWann - pengWann v0.5.2

Documentation 📖

  • Add installation instructions for conda #32
    • Made possible by the contribution of a conda-forge recipe in conda-forge/staged-recipes#29675
  • Various edits to the JOSS paper #38 + #41

Fixes 🛠️

  • Read cell vectors from seedname.wout rather than seedname.win #37
  • Build 3.10 wheels for MacOS #40
    • Github (relatively recently) stopping shipping MacOS runners with 3.10, so this version must now be specifically installed as part of the workflow.

Dependencies :dependabot:

  • Pin github actions to specific commits #33
  • Update PyO3 to 0.24.1 #34
  • Update setup-uv to latest tagged release #36

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 8 months ago

pengWann - pengWann v0.5.1

Documentation :book:

  • Edits to JOSS paper as part of the ongoing review at openjournals/joss-reviews#7890:
    • Explicitly highlight the possibility of executing example notebooks locally #25
    • Give specific comparison of LOBSTER and pengWann spilling factors #26
    • Minor edits to phrasing and generally improving clarity #27
    • Explicitly link the docs in the paper for further details re: API docs, methodology etc #30

Fixes :hammerandwrench:

  • Add error handling for possibly incomplete Wannier Hamiltonians #23
  • Add proper error handling if # cpu cores cannot be determined by cpu_count() #24
  • Manually include LICENSE file in sdist generated by maturin #31

Static typing :keyboard:

  • Switch from pyright => basedpyright and adapt type hints accordingly #22

General improvements :tada:

  • Restore full support for Python 3.13 and add support for free-threaded 3.13t
  • Start using renovate to maintain dependencies

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 9 months ago

pengWann - pengWann v0.5.0

New features :rocket:

  • Added a small Rust extension #21
    • Dropping pymatgen via #20 required new code to calculate distance and image matrices, this scaled quite poorly in pure Python.
    • The Rust extension is functionally identical to the previous Python, but the compiler is able to unroll the loops and as a result it scales much better.

Documentation :book:

  • Updated docs with respect to new Rust extension
    • The most important addition concerns the fact that building from source now requires the Rust compiler.
  • Fixed the installation guide with respect to building the documentation locally (the previous instructions were incorrect).

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 10 months ago

pengWann - pengWann v0.4.0

Breaking changes :boom:

  • Added a new Geometry dataclass, replacing the build_geometry and assign_wannier_centres functions.
    • As a result of the above, pymatgen has finally been dropped as a hard dependency #20

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 10 months ago

pengWann - pengWann v0.3.1

Fixes :hammerandwrench:

This is a simple hotfix patch to fix the build for PyPI. The sdist for v0.3.0 was fine but the wheel did not ship with the source code due to a silly mistake in pyproject.toml. The PyPI release for v0.3.0 has been yanked and this version has been shipped to solve the problem.

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 11 months ago

pengWann - pengWann v0.3.0

New Features :rocket:

  • Added a read_cell function to the io module to extract the cell vectors from a seedname.win file.
  • Added __str__ methods to all Interaction classes for readability.

Fixes :hammerandwrench:

  • The test suite had become somewhat outdated due to changes in the codebase, it is now up to date and covers almost all code.
  • The AtomicInteractionContainer was missing a with_integrals method, this has now been added.
  • numpy-style indexing was broken for interactions between like atoms, this has now been fixed.
    • More specifically, the same interaction would be returned twice as i <=> j and j <=> i.

Documentation :book:

  • Added example jupyter notebooks that act as basic tutorials.
  • Added a guide for potential contributors detailing guidelines for PRs and a recommended dev workflow.
  • Updated the methodology section to reflect changes and additions to the API reference.

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 11 months ago

pengWann - pengWann v0.2.0

New Features :rocket:

  • Shared memory parallelism #13
  • Simple xyz parser #15
  • New data structures that represent interactions between atoms and Wannier functions.
  • Numpy-style indexing of new data structures #17

Breaking changes :boom:

  • Significant refactoring of the codebase in general:
    • Move further towards a "functional-style" approach, more pure functions, less mutability etc.
    • Break larger chains of logic into smaller functions, remove now-redundant functions as a result of this.
  • Several modules have been renamed:
    • pengwann.dos -> pengwann.descriptors
    • pengwann.occupation_functions -> pengwann.occupations
  • The data structures designed to represent interactions have also been moved into a separate module: pengwann.interactions.
  • In general, the API is structured quite differently to the last release: the magnitude of these changes ought to reduce significantly once we move from alpha->beta development.

Documentation :book:

  • Switched to numpy-style docstrings for all source code
  • Switched to numpydoc for parsing docstrings into sphinx
  • Switched from the furo theme to pydata-sphinx-theme
  • Switched from pure autodoc to autosummary to build the API reference

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 11 months ago

pengWann - pengWann v0.1.0

New features :rocket:

  • Moving towards feature parity (where relevant) with LOBSTER:
    • k-resolved WOHPs and WOBIs #3
    • Wannier populations and charges #7
    • The density of energy (DOE) #6
    • Bond-Weighted Distribution Functions (BWDFs) #5

Breaking changes :boom:

  • The project method of the DOS class now returns a dictionary with keys for each individual atom, rather than whole atomic species.
    • e.g. previous return would have looked like {"Ga" : np.ndarray}, whereas now you get {"Ga1" : np.ndarray, "Ga2" : np.ndarray, "As1" : np.ndarray} etc.

Fixes :hammerandwrench:

  • Minor changes to docs, variable names and miscellaneous items.

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 12 months ago

pengWann - pengWann v0.0.2

Fixes :hammerandwrench:

  • R-vectors now account for the relative orientation of Wannier functions #1
    • The previous logic led to (at best) unphysical deviations in WOHPs and WOBIs

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 12 months ago

pengWann - pengWann v0.0.1

Initial release

Scientific Software - Peer-reviewed - Python
Published by PatrickJTaylor 12 months ago