Source code for openpnm.models.geometry.throat_size._funcs

import numpy as _np
from openpnm.models import misc as _misc
from openpnm.models.geometry import _geodocs


__all__ = ["weibull",
           "normal",
           "generic_distribution",
           "random",
           "from_neighbor_pores",
           "equivalent_diameter"]


[docs] def weibull(network, shape, scale, loc, seeds='throat.seed'): return _misc.weibull(network, shape=shape, scale=scale, loc=loc, seeds=seeds)
weibull.__doc__ = _misc.weibull.__doc__
[docs] def normal(network, scale, loc, seeds='throat.seed'): return _misc.normal(network, scale=scale, loc=loc, seeds=seeds)
normal.__doc__ = _misc.normal.__doc__
[docs] def generic_distribution(network, func, seeds='throat.seed'): return _misc.generic_distribution(network, func=func, seeds=seeds)
generic_distribution.__doc__ = _misc.generic_distribution.__doc__
[docs] def random(network, seed=None, num_range=[0, 1]): return _misc.random(network, element='throat', seed=seed, num_range=num_range)
random.__doc__ = _misc.random.__doc__
[docs] def from_neighbor_pores(network, prop='pore.diameter', mode='min'): return _misc.from_neighbor_pores(network, prop=prop, mode=mode)
from_neighbor_pores.__doc__ = _misc.from_neighbor_pores.__doc__
[docs] @_geodocs def equivalent_diameter( network, throat_area='throat.cross_sectional_area', throat_shape='circle', ): r""" Calculates the diameter of a cirlce or edge-length of a sqaure with same area as the throat. Parameters ---------- %(network)s %(At)s throat_shape : str The shape cross-sectional shape of the throat to assume when back-calculating from the area. Options are 'circle' (default) or 'square'. Returns ------- diameters : ndarray A numpy ndarray containing throat diameter values """ area = network[throat_area] if throat_shape.startswith('circ'): value = 2*_np.sqrt(area/_np.pi) elif throat_shape.startswith('square'): value = _np.sqrt(area) return value