Version 1.6 Released

On February 16th, we released version 1.6 of OpenPNM. The list of changes can be found on the Github Releases page.  The main upgrades are some new plotting functions for quickly visualizing networks without having to power-up Paraview, and 2 new network generation classes that create “dual” networks that interpenetrate each other.  The point of this dual-network approach is to simultaneously model diffusion through the pore space, and heat transfer or electron conduction through the solid.  The two networks are also interconnected so that heat can be exchanged between the solid and phases in the void.  Below shows a nice image of the CubicDual object, that is also created using the new plotting tool. The other dual-network is a very nice VoronoiDelaunayDual class to create random structures, as described in the OpenPNM-Examples repository.

As usual, the newest version of OpenPNM is available on the Python Package Index (PyPI) and can be installed with pip install openpnm –upgrade.

We’ve also decided to shut down the Gitter account and just field user questions through the Github Issues page.  This makes it quite a bit easier to encapsulate questions and answers for other users to search through.


The OpenPNM design paper is now In-Press

The Authors of OpenPNM have spent the last year working on a paper that outlines the underlying design and principles of OpenPNM, and it is now finally “in-press” in Computing in Science and Engineering.  This is a peer-reviewed journal that focuses on research software, published by IEEE.  A DOI has been assigned and the paper can be viewed here.  The final polished version should be available very soon.

New publication using OpenPNM

Some of the OpenPNM developers from McGill and Juelich have recently published a new paper using OpenPNM in the Journal of the Electrochemical Society, which is available open-access.  This paper is an important milestone for several reasons.  Firstly, it couples multiple transport processes into a single ‘multiphysics’ simulation of a fuel cell electrode.  Specifically, it includes diffusion of O2 and H2, conduction of electrons, conduction of protons, and reaction kinetics via the Bulter-Volmer model.  The paper outlines the algorithm we developed to couple these equations and iteratively solve the resulting non-linear system.  Second, this model treats the membrane and catalyst layers as continua, while modeling the diffusion layers as pore networks.  Combining pore network and continua representations into a single framework opens up many possibilities for modeling multi-scale domains with minimal computational cost.

Version 1.4 Released

The OpenPNM Team is pleased to announce the release of Version 1.4.  The main features of this release are (a) an improved drainage algorithm that is easier to work with, and allows late pore filling, trapping and residual wetting phase; as well as (b) an expanded set of import/export tools including the ability to import networks from NetworkX and Statoil formats.  There are a number of other useful features and improvement as well, which are listed in the release notes.

This release is available on the Python Package Index so can be installed into your Python environment with pip install openpnm.  Be sure to add –upgrade if you’ve installed an earlier version.  Visit the documentation for more information on installation and getting started.

Version 1.3 Released

This release follows fast on the heels of v1.2. Some valuable changes that were in-progress at during the v1.2 release are now complete. The main upgrades have been in the Delaunay Network generation class, and the related Voronoi Geometry class and related models. These changes center around the use of image analysis to determine pore and throat sizes, and creating a voxelized representation of the solid structure for visualization. A detailed example has been created on the use of the Delaunay-Voronoi class and will be posted to Additionally, this version now has much more extensive test coverage exceeding 80%.

Special thanks to Tom Tranter for his huge efforts on this one, and the rest of the team of course.

Bazylak team at UofT publishes work using OpenPNM

Aimy Bazylak’s group at UofT has published the first official article using OpenPNM.  The title is “Investigating Inlet Condition Effects on PEMFC GDL Liquid Water Transport through Pore Network Modeling”, and as the name suggests they look at the different water invasion patterns arising from different boundary conditions for the IP process.  The article’s bibliograhic info and a link can be found on the Publications page.

Version 1.2 Released

The OpenPNM PNM Team are happy to announce the release of version 1.2.0.  The details of this release are listed below.  A large amount of work went on behind the scenes regarding testing and ensuring good coverage.  This release also introduced a few new Network query methods and a very useful topological manipulation tool called `subdivide`.  In general we expect new releases to be a bit more regular, with minor versions appearing more often.
* Major Reorganization of the Network topology manipulations methods. There is now a topology class in the Utilities submodule, which houses all manipulation methods such as extend, trim, stitch and so on. Helper/wrapper methods are present on Network objects to maintain backwards compatibility.
* Added a `subdivide` method to the suite of topology manipulation tools, which allows single pores to be divided into many pores to produce hierarchical networks.
* New Network methods: `find_nearby_pores` and `find_clusters2`
* Vastly improved test coverage in the form of adding a unit test framework, TravisCI integration, Coveralls coverage checking, PEP8 compatibility
* Numerous bug fixes

Contributors to this release are:

Jeff Gostick, Mahmoudreza Aghighi, Brennan Spellacy, Harold Day, Tom Tranter, Michael Hoeh, Andreas Putz, James Hinebaugh and Mostafa Elsharqawy

Version 1.1 Released

The OpenPNM Team is pleased to announce the release of OpenPNM-v1.1.  This updated package can be downloaded from the Python Package Index (PyPI) using pip install openpnm –upgrade (drop the –upgrade for first time installs).

This new release adds several key functionalities to the code:

  • The ability to effortlessly save and load simulations using the new Controller object
  • The ability to clone Networks
  • The ability nonlinear add source/sink/reaction terms to any transport calculation
  • Improved interaction with the pore scale models that are stored each object.  They are no longer hidden in a private dictionary, and are now easily accessed, viewed, changed, etc using a customized dictionary.  The documentation on the website as been fully updated to reflect all these changes.
  • Refined object interaction and data exchange, meaning that the geometric properties of ALL pores can be accessed directly from the Network object, and Physics properties from the Phase object.
  • And of course, many new methods and tweaks to make working with the data and objects more friendly and efficient.