🚀 New features
- Two new Network classes have been added that support _Dual_ networks
- `CubicDual` creates an normal cubic network of size [x, y, z] called the 'primary' network, then adds 'secondary' cubic network of size [x-1, y-1, z-1] at the interstices of the 'primary' lattice. These two networks are then interconnected to each other. The point of this class it to enable both pore phase and solid phase transport simultaneously, through primary and secondary networks, as well as allowing exchange between them via the interconnections.
- `DelaunayVoronoiDual` is motivated by the same idea as the `CubicDual`, but uses a Delaunay tessellation of random points as the 'primary' network and the Voronoi tessellation as the 'secondary' network.
- Two new plotting functions were added to `Network.tools`: `plot_coordinates` and `plot_connections`. These are meant for quickly verifying the topology of a network without having to spin-up Paraview
- Several function have been added to `Network.tools`
- `template_disc_ring` creates a circular template for use in `Cubic`
- `generate_base_points` generates random points for use in `Delaunay` and `DelaunayVoronoiDual`
- A new _pore-scale model_ called `largest_sphere` was added to `Geometry.models` that calculates the largest possible pore diameter to put in each location without overlapping the neighboring pores. This model is particularly useful for random networks where the spacing between pore centers is unknown.
- A method for finding the pores on the surface of a network was added to `Network.tools` called `find_surface_pores`.
⚠️ API changes
- `add_boundaries` now accepts a list of which face to add boundaries to, rather than doing all sides (which is still the default).
- Support for Python 3.3 has been dropped, and support for 3.6 has been added. OpenPNM is also compatible with the latest version of Numpy, which made a few significant changes in indexing rules.
- The `save` and `load` methods of the `Workspace` class are now called `save_workspace` and `load_workspace` to more clearly indicate their job.