Object model for storing topological information of the network

This module contains the GenericNetwork class, whose main purpose is to manage the topological representation of the Network. It also houses a collection of Network generators.

Available Network Generators

OpenPNM includes a variety of Network generators. The basically include two families of topology: periodic lattices and tessellations of random points.

The GenericNetwork Class

All of the above Network classes derive from the GenericNetwork class. It is a subclass of Base so contains methods for retrieving sets of pores based on labels and so forth, but also contains the following additional methods that are used soley for topological queries.

Pore networks require two essential pieces of information:

  • the spatial location of pores

  • the connectivity of which throats connect which pores

The GenericNetwork class and it’s subclasses are responsible for storing, managing, and utilizing this information.

Network topology is stored using adjacency matrices. Moreover, this is stored using a sparse matrix format known as COO. All netowrk objects store the COO matrix as 'throat.conns'.

The spatial location of each pore is stored in Cartesian coordinates [x, y, z], under 'pore.coords'. All networks must be 3D, so even a 2D network must have a z-component (but set to 0).



Crystal lattice types including fcc, bcc, sc, and hcp


Simple cubic lattice with connectivity from 6 to 26


Body centered cubic lattice plus face centered nodes on the surfaces


Simple cubic lattice with arbitrary domain shape specified by a template image


Random network formed by Delaunay tessellation of arbitrary base points


Combined and interconnected Voronoi and Delaunay tessellations


Random network formed by Gabriel tessellation of arbitrary base points


This generic class contains the main functionality used by all networks.


Random network formed by Voronoi tessellation of arbitrary base points