FormationFactor

class openpnm.metrics.FormationFactor(*args, **kwargs)[source]

This class works by applying ‘value’ boundary conditions across the domain to find molar flow, then using Fick’s law to back-calculate the effective diffusivity of the domain. The formation factor is defined as:

\[F = \frac{D_{AB}}{D_{eff}} > 1\]

where

\[D_{eff} = \frac{n_{A} L }{\Delta C_{A} A }\]

and

\[D_{eff} = D_{AB} \frac{\varepsilon}{\tau}\]

The formation factor is a convenient metric to compare diffusion in different pore networks since it does not require knowledge of the network porosity, unlike tortuosity. The porosity of a pore network is difficult to determine, mainly because the bulk volume of a network is not well known.

Examples

>>> import openpnm as op
>>> import numpy as np
>>> np.random.seed(5)
>>> pn = op.network.Cubic(shape=[10, 10, 10], spacing=1e-5)
>>> geo = op.geometry.SpheresAndCylinders(network=pn, pores=pn.Ps, throats=pn.Ts)

Now find the formation factor of the network:

>>> FF = op.metrics.FormationFactor(network=pn)
>>> F = FF.run()
>>> print(np.round(F))
21.0
Attributes
Np

A shortcut to query the total number of pores on the object

Nt

A shortcut to query the total number of throats on the object

Ps

A shortcut to get a list of all pores on the object

Ts

A shortcut to get a list of all throats on the object

name

String representing the name of the object

network

A shortcut to get a handle to the associated network.

project

A shortcut to get a handle to the associated project.

settings

Dictionary containing object settings.

Methods

get_conduit_data(poreprop[, throatprop, mode])

Combines requested data into a single 3-column array.

interleave_data(prop)

Retrieves requested property from associated objects, to produce a full Np or Nt length array.

interpolate_data(propname[, mode])

Determines a pore (or throat) property as the average of it's neighboring throats (or pores)

props([element, mode, deep])

Returns a list containing the names of all defined pore or throat properties.

run()

Execute the diffusion simulations in the principle directions.

show_hist([props, bins, fontsize])

Shows a quick plot of key property distributions.

to_indices(mask)

Converts a boolean mask to a list of pore or throat indices.

to_mask([pores, throats])

Convert a list of pore or throat indices into a boolean mask of the correct length.