class Species(*args, **kwargs)[source]#

A special Phase object that represents a single species in a mixture

This class provides a mixture attribute which allows one to lookup which mixture the species is associated with.

  • network (GenericNetwork) – The network to which this phase object will be attached.

  • species (str, optional) – If provided, this is used to lookup tabulated constants from the chemicals package, which attempts to find a match. For instance, ‘water’, ‘Water’, and ‘H2O’ all work. The contants are stored in species.params like species.params['molecular_weight']. They can also be accessed using species['param.molecular_weight'] using some behind the scenes python magic.

  • name (str, optional) – The name of the phase. This is useful to keep track of the objects throughout the simulation. The name must be unique to the project. If no name is given, one is generated.


Shortcut to retrieve the number of pores in the domain


Shortcut to retrieve the number of throats in the domain


Shortcut to retrieve the indices of all pores


Shortcut to retrieve the indices of all throats


Shortcut to retrieve a handle to the network object associated with the


This attribute stores ‘scalar’ data that can be used by pore-scale models.



add_model(propname, model[, domain, regen_mode])

Add a pore-scale model to the object, along with the desired arguments

add_model_collection(models[, domain, ...])

Add a collection of several models at once

filter_by_label([pores, throats, labels, mode])

Returns which of the supplied pores (or throats) has the specified label(s)


Fetches an Nt-by-3 array of the requested property

interpolate_data(propname[, mode])

Generates an array of the requested pore/throat data by interpolating the neighboring throat/pore data.

labels([pores, throats, element, mode])

Returns a list of labels present on the object

num_pores([labels, mode])

Returns the number of pores of the specified labels

num_throats([labels, mode])

Return the number of throats of the specified labels

pores([labels, mode, asmask])

Returns pore indicies where given labels exist, according to the logic specified by the mode argument.


Retrieves a list of keys that contain numerical data (i.e. "properties").

regenerate_models([propnames, exclude])

Runs all the models stored in the object's models attribute

run_model(propname[, domain])

Runs the requested model and places the result into the correct locations

set_label(label[, pores, throats, mode])

Creates or updates a label array

throats([labels, mode, asmask])

Returns throat locations where given labels exist, according to the logic specified by the mode argument.


Converts a boolean mask to pore or throat indices

to_mask([pores, throats])

Generates a boolean mask with True values in the given locations