Openpnm

Latest version: v3.5.0

Safety actively analyzes 714860 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 7

2.6.0

:rocket: New features
- Added source term models for Butler-Volmer kinetics
- Added ``set_outflow_BC`` to NernstPlanck algorithm
- Added a web-based dependency map using D3-tree javascript library
- Added ``stitch_pores`` function to topotools for joining disconnected pores within an existing network
- New robust version-agnostic PNM file format, see PR1621 for details
- ``set_rate_BC`` now optionally accepts ``total_rate``, which is equally distributed among pores
- Added ``name`` to ``settings``
- Added uuid to all objects (stored as a hidden setting ``_uuid``)
- Added a new grid class called Tableist to better handle the project grid

:cake: Enhancements
- Add ``_validate_data_health`` to the run method of algorithms
- Vastly improved the default formatting of ``show_hist``'s grid layout
- Storing the transient solution times in the ``settings`` to make indexing into quantityi arrays easier
- Revamped the documentation, also it's now hosted on GitHub Pages (numba breaks readthedocs)
- Exposed the ability to set/change/remove locations where physics and geometries are applied
- Speed up neighbour throat lookups by ~100X
- Enhanced ``extend`` function to work with phases present
- Removing exception in ``stitch`` if phases are present
- Allow merging of networks when geometry is present
- Improved behavior when physics objects are instantiated without an associated phase
- Improved grid functionality on the project class
- Fixed PNM ``load_project`` method to deal with class attrs
- Fixed scaling in ``plot_conns`` and ``plot_coords``

:wrench: Maintenence
- Improved the boundary condition setters to prevent invalid combinations
- Changed ``_get_solver`` behavior to fall back to ``spsolve`` if pardiso missing
- Refactored ``MultiPhase`` and fixed the global partition coefficient model's dependency handling bug
- Extended checks for invalid ``'t_schemes'`` setting on transient algs
- Added examples and tests for the ``Salome`` export class
- Changed PARDISO solver backend from haasad/pypardiso to conda-forge/pardiso4py

:warning: API changes
- Renamed throat_shape_factor submodule (+ dict keys in method args) to capillary_shape_factor for clarity
- Renamed pore/throat_area submodules (+ dict keys in method args) to cross_sectional_area for clarity
- Changed "_2D" to "2D" in class names and lowercased "_2D" in method names
- Deprecating python 3.6

:bug: Bugfixes
- Fixed bug in charge source term (in Nernst-Planck) that produced all 0s in some cases
- Properly combine BCs and ICs on first time step in ``ReactiveTransientTransport``
- Saving to PNM now skips models with non-serializable args
- Added a check to ensure phase is defined before running alg
- Plot conns/coords methods now pass kwargs on to matplotlib functions
- Workspace load_project now reads file AND returns the project
- ``topotools.dimensionality`` is now more robust with respect to numerical round-off
- Object names are now enforced to be unique within a project
- Updated ``Imported`` geometry class to accept project as well as network
- ``ReactiveTransport`` now checks for convergence when maximum iterations reached and reports if not achieved

:green_book: Documentation
- Fixed a typo in data_and_topology_storage.ipynb example
- adding readme to tutorials folder
- New example discussing domain size calculations
- Improved docstring in add_model to include new explicit mode
- Fixed a typo in adding_boundary_pores.ipynb
- Fixed a typo in docstrings of topotools.reduce_coordinates
- Added a tutorial on using the dev branch of openpnm via git
- Fixed typo in relative permeability calculation notebook
- Significantly revamped the examples directory for improved categorization of material

2.5.0

:cake: Enhancements

- Enhanced RelativePermeability to better support directional simulations
- Enhanced CI workflows; migrated from pip to conda
- Enhanced ball\_and\_stick shape factors to raise Exception if the underlying assumption is violated
- Enhanced merge\_networks to fully handle networks with existing geometries

:warning: API changes

- Changed docrep installation to use 0.2.7
- Changed default solver from Scipy's spsolve to PyPardiso's direct solver

:bug: Bugfixes

- Fixed the incorrect scaling issue of plot\_connections and plot\_networkx
- Fixed deprecation warnings for Scipy, HDF5, and numpy
- Fixed CI testing error due to pep8 incompatibility with the latest pytest
- Fixed use of sp to np to avoid breaking when scipy removes numpy from it's namespace in version 2.0
- Fixed some issues in NernstPlanck algs, changed name of solver class, added tests and scripts
- Fixed typo in usage of map\_pores

2.4.2

:bug: Bugfixes

- Fixed bug in interleave\_data that inferred incorrect datatypes in some instances

2.4.1

:bug: Bugfixes

- Fixed caching/uncaching of A matrix to work with all sub-classed transport algorithms, not just ReactiveTransport

2.4.0

:rocket: New features

- Added conns and coords attributes to GenericNetwork
- Added axes labels for `plot_coordinates` `plot_connections` method
- Added a wrapper for PyPardiso solver, and a pseudo-interface for solvers

:cake: Enhancements

- Optimized find\_neighbor\_sites to run up to 4x and num\_neighbors to run up to 30x faster
- Enhanced algorithm sanity check to include topology health check
- Enhanced error/exception messages in several spots
- Enhanced stitch method with new mode and ability to specify labels for new stitch throats
- Enhanced io.PoreSpy.load to accept dict handle

:warning: API changes

- Changed \_check\_for\_nans to \_validate\_data\_health
- Changed Cubic class to reject connectivity = 8 or 12 as they generate disconnected networks

:bug: Bugfixes

- Fixed handling of Nt by 2 conductance arrrays (i.e. diff\_cond in ad\_dif\_conductance)
- Fixed \_get\_iterative\_props to now include "variable\_props" in the returned list of props
- Fixed scaling in plot\_coordinates, and changed size\_by and color\_by to ONLY accept ND-arrays
- Fixed OpenPNM IO load method to properly return project
- Fixed plot\_networkx scaling issue when plotting consecutively
- Bugfix: variable conductance now triggers A rebuild
- Fixed bug in bond\_percolation that allowed early invasion into throats connected to invading cluster
- Fixed TransientReactiveTransport to run repeatedly + optimized unit tests
- Fixed bug in set\_rate\_BC: multiple values are now accepted

2.3.3

:rocket: New features

- Added automatic generation of release notes when deploying to PyPI
- Added automatic deployment to PyPI using GitHub Actions

:bug: Bugfixes

- Fixed bug in find\_connected\_pores/sites to enforce upper triangular adjacency matrix \patch

Page 3 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.