GenericMixture#

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

Creates Phase object that represents a multicomponent mixture system consisting of a given list of GenericPhases as components.

Parameters
  • network (OpenPNM network object) – The network to which this object is associated

  • 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.

  • components (list[GenericPhase]s) – A list of all components that constitute this mixture

Notes

All mixtures assume that mole fractions are always stored as 'pore.mole_fraction' and that concentration is always stored as 'pore.concentration'.

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

components
models

List of available models on the objects

name

String representing the name of the object

network

A shortcut to get a handle to the associated network.

phase

A shortcut to get a handle to the associated phase (itself).

physics

A shortcut to query the associated physics(es).

project

A shortcut to get a handle to the associated project.

settings

Dictionary containing object settings.

Methods

add_model(propname, model[, regen_mode])

Adds a new model to the models dictionary.

check_mixture_health()

Checks the "health" of the mixture

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

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

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 its neighboring throats (or pores)

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

params()

Return parameter names and values in a dictionary

pores([labels, mode, asmask, to_global])

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

props([deep])

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

regenerate_models([propnames, exclude, deep])

Re-runs the specified model or models.

remove_model([propname, mode])

Removes model and data from object.

set_component(component[, mode])

Add another component to the mixture

set_concentration(component[, values])

Specify the concentration of a component in each pore

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

Creates or updates a label array

set_mole_fraction(component[, values])

Specify mole fraction of each component in each pore

show_hist([props, bins, fontsize])

Shows a quick plot of key property distributions.

throats([labels, mode, asmask, to_global])

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

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.

update_concentrations([mode])

Updates all unspecified concentrations from mole fractions and molar density.

update_mole_fractions([free_comp])

Updates mole fraction values so the sum of all mole fractions is 1.0 in each pore.