The OpenPNM team has put a huge amount of effort into version 2.6, as can be seen by the very long list of changes below. Head over to https://github.com/PMEAL/OpenPNM to get the latest code, or do
.conda update openpnm
v2.6.0
New features
- Added source term models for Butler-Volmer kinetics
- Added
to NernstPlanck algorithmset_outflow_BC
- Added a web-based dependency map using D3-tree javascript library
- Added
function to topotools for joining disconnected pores within an existing networkstitch_pores
- New robust version-agnostic PNM file format, see PR#1621 for details
, which is equally distributed among poresset_rate_BC
now optionally accepts
total_rate
- 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
Enhancements
- Add
to the run method of algorithms_validate_data_health
- Vastly improved the default formatting of
's grid layoutshow_hist
- Storing the transient solution times in the
to make indexing into [email protected] arrays easiersettings
- 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
function to work with phases presentextend
- Removing exception in
if phases are presentstitch
- 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
method to deal with class attrsload_project
- Fixed scaling in
plot_conns
and
plot_coords
Maintenence
- Improved the boundary condition setters to prevent invalid combinations
- Changed
if pardiso missing_get_solver
behavior to fall back to
spsolve
- Refactored
and fixed the global partition coefficient model's dependency handling bugMultiPhase
- Extended checks for invalid
setting on transient algs't_schemes'
- Added examples and tests for the
export classSalome
- Changed PARDISO solver backend from haasad/pypardiso to conda-forge/pardiso4py
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
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
is now more robust with respect to numerical round-offtopotools.dimensionality
- Object names are now enforced to be unique within a project
- Updated
geometry class to accept project as well as networkImported
now checks for convergence when maximum iterations reached and reports if not achievedReactiveTransport
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