Cubic#
- class Cubic(*args, **kwargs)[source]#
Simple cubic lattice with connectivity from 6 to 26
Though simple, the Cubic network offers many advantages such as easy visualization and accurate determination of domain area and length in transport calculations.
- Parameters:
shape (array_like) – The [Nx, Ny, Nz] size of the network in terms of the number of pores in each direction. For a 2D network
spacing (array_like, optional) – The spacing between pore centers in each direction. If not given, then [1, 1, 1] is assumed.
connectivity (int, optional) –
The number of connections to neighboring pores. Connections are made symmetrically to any combination of face, edge, or corners neighbors. The default is 6 to create a simple cubic structure, but options are:
Value
Result
6
Faces only
14
Faces and Corners
18
Faces and Edges
20
Edges and Corners
26
Faces, Edges and Corners
For a more random distribution of connectivity, use a high
connectivity
(i.e. 26) and then delete a fraction of the throats usingopenpnm.topotools.reduce_coordination
. Also note that corners-only and edges-only are not permitted since they create disconnected networks. If you require one of these topologies you can specify 14 or 18, then useopenpnm.topotools.trim
to remove the face-to-face connections, which can be identified by looking for throats with a length equal to the network spacing.settings (dataclass-like or dict, optional) – User defined settings for the object to override defaults. Can be a dataclass-type object with settings stored as attributes or a python dicionary of key-value pairs. Settings are stored in the
settings
attribute of the object.name (str, optional) – A unique name to assign to the object for easier identification. If not given one will be generated.
- Attributes:
Np
Shortcut to retrieve the number of pores in the domain
Nt
Shortcut to retrieve the number of throats in the domain
Ps
Shortcut to retrieve the indices of all pores
Ts
Shortcut to retrieve the indices of all throats
am
Adjacency matrix in the specified sparse format, with throat IDs indicating the non-zero values.
conns
Returns the connectivity matrix of the network.
coords
Returns the list of pore coordinates of the network.
im
Incidence matrix in the specified sparse format, with pore IDs indicating the non-zero values.
- info
- name
network
Shortcut to retrieve a handle to the network object associated with the
params
This attribute stores ‘scalar’ data that can be used by pore-scale models.
- project
- settings
Methods
add_boundary_pores
([labels, spacing])Add pores to the faces of the network for use as boundary pores.
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 oncecreate_adjacency_matrix
([weights, fmt, ...])Generates a weighted adjacency matrix in the desired sparse format
create_incidence_matrix
([weights, fmt, ...])Creates a weighted incidence matrix in the desired sparse format
filter_by_label
([pores, throats, labels, mode])Returns which of the supplied pores (or throats) has the specified label(s)
find_connected_pores
([throats, flatten, mode])Return a list of pores connected to the given list of throats
find_connecting_throat
(P1, P2)Return the throat index connecting pairs of pores.
find_nearby_pores
(pores, r[, flatten, ...])Find all pores within a given radial distance of the input pore(s) regardless of whether or not they are toplogically connected.
find_neighbor_pores
(pores[, mode, flatten, ...])Returns a list of pores that are direct neighbors to the given pore(s)
find_neighbor_throats
(pores[, mode, ...])Returns a list of throats neighboring the given pore(s)
get_adjacency_matrix
([fmt])Adjacency matrix in the specified sparse format, with throat IDs indicating the non-zero values.
get_conduit_data
(propname)Fetches an Nt-by-3 array of the requested property
get_incidence_matrix
([fmt])Incidence matrix in the specified sparse format, with pore IDs indicating the non-zero values.
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_neighbors
(pores[, mode, flatten])Returns the number of neigbhoring pores for each given input pore
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.props
([element])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
attributerun_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.to_indices
(mask)Converts a boolean mask to pore or throat indices
to_mask
([pores, throats])Generates a boolean mask with True values in the given locations