# Particle Size Distributions (fluids.particle_size_distribution)

This module contains particle distribution characterization, fitting, interpolating, and manipulation functions. It may be used with discrete particle size distributions, or with statistical ones with parameters specified.

For reporting bugs, adding feature requests, or submitting pull requests, please use the GitHub issue tracker or contact the author at Caleb.Andrew.Bell@gmail.com.

- Particle Size Distribution Base Class

- Discrete Particle Size Distributions

- Statistical Particle Size Distributions

- Helper functions: Lognormal Distribution

- Helper functions: Gates Gaudin Schuhman Distribution

- Helper functions: Rosin Rammler Distribution

- Sieves

- Point Spacing

## Particle Size Distribution Base Class

class `fluids.particle_size_distribution.``ParticleSizeDistributionContinuous`

  Base class representing a continuous particle size distribution specified by a mathematical/statistical function. This class holds the common methods only.

  Notes

  Although the stated units of input are in meters, this class is actually independent of the units provided; all results will be consistent with the provided unit.

  References

  1

    ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

  Examples

  Example problem from [1].

      >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6)

  Attributes
    `vssa`

      The volume-specific surface area of a particle size distribution.

  Methods

  `cdf`(d[, n]) | Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `cdf_discrete`(ds[, n]) | Computes the cumulative distribution functions for a list of specified particle diameters.
  `delta_cdf`(d_min, d_max[, n]) | Computes the difference in cumulative distribution function between two particle size diameters.
  `dn`(fraction[, n]) | Computes the diameter at which a specified fraction of the distribution falls under.
  `ds_discrete`([d_min, d_max, pts, limit, method]) | Create a particle spacing mesh to perform calculations with, according to one of several ways.
  `fractions_discrete`(ds[, n]) | Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters.
  `mean_size`(p, q) | Calculates the mean particle size according to moment-ratio notation.
  `mean_size_ISO`(k, r) | Calculates the mean particle size according to moment notation (ISO).
  `pdf`(d[, n]) | Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `plot_cdf`([n, d_min, d_max, pts, method]) | Plot the cumulative distribution function of the particle size distribution.
  `plot_pdf`([n, d_min, d_max, pts, normalized, …]) | Plot the probability density function of the particle size distribution.

  `cdf`(d, n=None)

    Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis. The evaluation function varies with the distribution chosen.

    \[Q_n(d) = \int_0^d q_n(d)\]
    Parameters
      d float

        Particle size diameter, [m]

      n int, optional

        None (for the order specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-]

    Returns
      cdf float

        The cumulative distribution function at the specified diameter and order, [-]

    Notes

    Analytical integrals can be found for most distributions even when order conversions are necessary.

    Examples

        >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3)
        >>> for n in (0, 1, 2, 3):
        ...     print(psd.cdf(5e-6, n))
        0.933192798731
        0.841344746069
        0.691462461274
        0.5

  `cdf_discrete`(ds, n=None)

    Computes the cumulative distribution functions for a list of specified particle diameters.

    Parameters
      ds list[float]

        Particle size diameters, [m]

      n int, optional

        None (for the order specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-]

    Returns
      cdfs float

        The cumulative distribution functions at the specified diameters and order, [-]

    Examples

        >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3)
        >>> psd.cdf_discrete([1e-6, 1e-5, 1e-4, 1e-3])
        [0.0006434710129138987, 0.9171714809983015, 0.9999999989602018, 1.0]

  `delta_cdf`(d_min, d_max, n=None)

    Computes the difference in cumulative distribution function between two particle size diameters.

    \[\Delta Q_n = Q_n(d_{max}) - Q_n(d_{min}) \]
    Parameters
      d_min float

        Lower particle size diameter, [m]

      d_max float

        Upper particle size diameter, [m]

      n int, optional

        None (for the order specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-]

    Returns
      delta_cdf float

        The difference in the cumulative distribution function for the two diameters specified, [-]

    Examples

        >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3)
        >>> psd.delta_cdf(1e-6, 1e-5)
        0.9165280099853876

  `dn`(fraction, n=None)

    Computes the diameter at which a specified fraction of the distribution falls under. Utilizes a bounded solver to search for the desired diameter.

    Parameters
      fraction float

        Fraction of the distribution which should be under the calculated diameter, [-]

      n int, optional

        None (for the order specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-]

    Returns
      d float

        Particle size diameter, [m]

    Examples

        >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3)
        >>> psd.dn(.5)
        5e-06
        >>> psd.dn(1)
        0.0002947436533523378
        >>> psd.dn(0)
        0.0

  `ds_discrete`(d_min=None, d_max=None, pts=20, limit=1e-09, method='logarithmic')

    Create a particle spacing mesh to perform calculations with, according to one of several ways. The allowable meshes are ‘linear’, ‘logarithmic’, a geometric series specified by a Renard number such as ‘R10’, or the meshes available in one of several sieve standards.

    Parameters
      d_min float, optional

        The minimum diameter at which the mesh starts, [m]

      d_max float, optional

        The maximum diameter at which the mesh ends, [m]

      pts int, optional

        The number of points to return for the mesh (note this is not respected by sieve meshes), [-]

      limit float

        If d_min or d_max is not specified, it will be calculated as the dn at which this limit or 1-limit exists (this is ignored for Renard numbers), [-]

      method str, optional

        Either ‘linear’, ‘logarithmic’, a Renard number like ‘R10’ or ‘R5’ or’R2.5’, or one of the sieve standards ‘ISO 3310-1 R40/3’, ‘ISO 3310-1 R20’, ‘ISO 3310-1 R20/3’, ‘ISO 3310-1’, ‘ISO 3310-1 R10’, ‘ASTM E11’, [-]

    Returns
      ds list[float]

        The generated mesh diameters, [m]

    Notes

    Note that when specifying a Renard series, only one of d_min or d_max can be respected! Provide only one of those numbers.

    Note that when specifying a sieve standard the number of points is not respected!

    References

    1

      ASTM E11 - 17 - Standard Specification for Woven Wire Test Sieve Cloth and Test Sieves.

    2

      ISO 3310-1:2016 - Test Sieves – Technical Requirements and Testing – Part 1: Test Sieves of Metal Wire Cloth.

  `fractions_discrete`(ds, n=None)

    Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters. The first diameter contains the cdf from 0 to it.

    Parameters
      ds list[float]

        Particle size diameters, [m]

      n int, optional

        None (for the order specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-]

    Returns
      fractions float

        The differences in the cumulative distribution functions at the specified diameters and order, [-]

    Examples

        >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3)
        >>> psd.fractions_discrete([1e-6, 1e-5, 1e-4, 1e-3])
        [0.0006434710129138987, 0.9165280099853876, 0.08282851796190027, 1.039798247504109e-09]

  `mean_size`(p, q)

    Calculates the mean particle size according to moment-ratio notation. This is the more common and often convenient definition.

    \[ \begin{align}\begin{aligned}\left[\bar D_{p,q} \right]^{(p-q)} = \frac{\sum_i n_i D_i^p } {\sum_i n_i D_i^q}\\\left[\bar D_{p,p} \right] = \exp\left[\frac{\sum_i n_i D_i^p\ln D_i }{\sum_i n_i D_i^p}\right] \text{, if p = q}\end{aligned}\end{align} \]

    Note that \(n_i\) in the above equation is replaceable with the fraction of particles in that bin.

    Parameters
      p int

        Power and/or subscript of D moment in the above equations, [-]

      q int

        Power and/or subscript of D moment in the above equations, [-]

    Returns
      d_pq float

        Mean particle size according to the specified p and q, [m]

    Notes

    The following is a list of common names for specific mean diameters.

    - D[-3, 0]: arithmetic harmonic mean volume diameter

    - D[-2, 1]: size-weighted harmonic mean volume diameter

    - D[-1, 2]: area-weighted harmonic mean volume diameter

    - D[-2, 0]: arithmetic harmonic mean area diameter

    - D[-1, 1]: size-weighted harmonic mean area diameter

    - D[-1, 0]: arithmetic harmonic mean diameter

    - D[0, 0]: arithmetic geometric mean diameter

    - D[1, 1]: size-weighted geometric mean diameter

    - D[2, 2]: area-weighted geometric mean diameter

    - D[3, 3]: volume-weighted geometric mean diameter

    - D[1, 0]: arithmetic mean diameter

    - D[2, 1]: size-weighted mean diameter

    - D[3, 2]: area-weighted mean diameter, Sauter mean diameter

    - D[4, 3]: volume-weighted mean diameter, De Brouckere diameter

    - D[2, 0]: arithmetic mean area diameter

    - D[3, 1]: size-weighted mean area diameter

    - D[4, 2]: area-weighted mean area diameter

    - D[5, 3]: volume-weighted mean area diameter

    - D[3, 0]: arithmetic mean volume diameter

    - D[4, 1]: size-weighted mean volume diameter

    - D[5, 2]: area-weighted mean volume diameter

    - D[6, 3]: volume-weighted mean volume diameter

    This notation was first introduced in [1].

    The sum of p and q is called the order of the mean size [3].

    \[\bar D_{p,q} \equiv \bar D_{q, p} \]

    References

    1

      Mugele, R. A., and H. D. Evans. “Droplet Size Distribution in Sprays.” Industrial & Engineering Chemistry 43, no. 6 (June 1951): 1317-24. https://doi.org/10.1021/ie50498a023.

    2

      ASTM E799 - 03(2015) - Standard Practice for Determining Data Criteria and Processing for Liquid Drop Size Analysis.

    3

      ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

    Examples

        >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6)
        >>> psd.mean_size(3, 2)
        4.412484512922977e-06

    Note that for the case where p == q, a different set of formulas are required - which do not have analytical results for many distributions. Therefore, a close numerical approximation is used instead, to perturb the values of p and q so they are 1E-9 away from each other. This leads only to slight errors, as in the example below where the correct answer is 5E-6.

        >>> psd.mean_size(3, 3)
        4.9999999304923345e-06

  `mean_size_ISO`(k, r)

    Calculates the mean particle size according to moment notation (ISO). This system is related to the moment-ratio notation as follows; see the mean_size method for the full formulas.

    \[\bar x_{p-q, q} \equiv \bar x_{k+r, r} \equiv \bar D_{p,q} \]
    Parameters
      k int

        Power and/or subscript of D moment in the above equations, [-]

      r int

        Power and/or subscript of D moment in the above equations, [-]

    Returns
      x_kr float

        Mean particle size according to the specified k and r in the ISO series, [m]

    Notes

    The following is a list of common names for specific mean diameters in the ISO naming convention.

    - x[-3, 0]: arithmetic harmonic mean volume diameter

    - x[-3, 1]: size-weighted harmonic mean volume diameter

    - x[-3, 2]: area-weighted harmonic mean volume diameter

    - x[-2, 0]: arithmetic harmonic mean area diameter

    - x[-2, 1]: size-weighted harmonic mean area diameter

    - x[-1, 0]: arithmetic harmonic mean diameter

    - x[0, 0]: arithmetic geometric mean diameter

    - x[0, 1]: size-weighted geometric mean diameter

    - x[0, 2]: area-weighted geometric mean diameter

    - x[0, 3]: volume-weighted geometric mean diameter

    - x[1, 0]: arithmetic mean diameter

    - x[1, 1]: size-weighted mean diameter

    - x[1, 2]: area-weighted mean diameter, Sauter mean diameter

    - x[1, 3]: volume-weighted mean diameter, De Brouckere diameter

    - x[2, 0]: arithmetic mean area diameter

    - x[1, 1]: size-weighted mean area diameter

    - x[2, 2]: area-weighted mean area diameter

    - x[2, 3]: volume-weighted mean area diameter

    - x[3, 0]: arithmetic mean volume diameter

    - x[3, 1]: size-weighted mean volume diameter

    - x[3, 2]: area-weighted mean volume diameter

    - x[3, 3]: volume-weighted mean volume diameter

    When working with continuous distributions, the ISO series must be used to perform the actual calculations.

    References

    1

      ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

    Examples

        >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6)
        >>> psd.mean_size_ISO(1, 2)
        4.412484512922977e-06

  `pdf`(d, n=None)

    Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis. The evaluation function varies with the distribution chosen. The interconversion between distribution orders is performed using the following formula [1]:

    \[q_s(d) = \frac{x^{(s-r)} q_r(d) dd} { \int_0^\infty d^{(s-r)} q_r(d) dd}\]
    Parameters
      d float

        Particle size diameter, [m]

      n int, optional

        None (for the order specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-]

    Returns
      pdf float

        The probability density function at the specified diameter and order, [-]

    Notes

    The pdf order conversions are typically available analytically after some work. They have been verified numerically. See the various functions with names ending with ‘basis_integral’ for the formulations. The distributions normally do not have analytical limits for diameters of 0 or infinity, but large values suffice to capture the area of the integral.

    References

    1

      Masuda, Hiroaki, Ko Higashitani, and Hideto Yoshida. Powder Technology: Fundamentals of Particles, Powder Beds, and Particle Generation. CRC Press, 2006.

    Examples

        >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3)
        >>> psd.pdf(1e-5)
        30522.765209509154
        >>> psd.pdf(1e-5, n=3)
        30522.765209509154
        >>> psd.pdf(1e-5, n=0)
        1238.661379483343

  `plot_cdf`(n=(0, 1, 2, 3), d_min=None, d_max=None, pts=500, method='logarithmic')

    Plot the cumulative distribution function of the particle size distribution. The plotted range can be specified using d_min and d_max, or estimated automatically. One or more order can be plotted, by providing an iterable of ints as the value of n or just one int.

    Parameters
      n tuple(int) or int, optional

        None (for the order specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer; as many as desired may be specified, [-]

      d_min float, optional

        Lower particle size diameter, [m]

      d_max float, optional

        Upper particle size diameter, [m]

      pts int, optional

        The number of points for values to be calculated, [-]

      method str, optional

        Either ‘linear’, ‘logarithmic’, a Renard number like ‘R10’ or ‘R5’ or’R2.5’, or one of the sieve standards ‘ISO 3310-1 R40/3’, ‘ISO 3310-1 R20’, ‘ISO 3310-1 R20/3’, ‘ISO 3310-1’, ‘ISO 3310-1 R10’, ‘ASTM E11’, [-]

  `plot_pdf`(n=(0, 1, 2, 3), d_min=None, d_max=None, pts=500, normalized=False, method='linear')

    Plot the probability density function of the particle size distribution. The plotted range can be specified using d_min and d_max, or estimated automatically. One or more order can be plotted, by providing an iterable of ints as the value of n or just one int.

    Parameters
      n tuple(int) or int, optional

        None (for the order specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer; as many as desired may be specified, [-]

      d_min float, optional

        Lower particle size diameter, [m]

      d_max float, optional

        Upper particle size diameter, [m]

      pts int, optional

        The number of points for values to be calculated, [-]

      normalized bool, optional

        Whether to display the actual probability density function, which may have a huge magnitude - or to divide each point by the sum of all the points. Doing this is a common practice, but the values at each point are dependent on the number of points being plotted, and the distribution of the points; [-]

      method str, optional

        Either ‘linear’, ‘logarithmic’, a Renard number like ‘R10’ or ‘R5’ or’R2.5’, or one of the sieve standards ‘ISO 3310-1 R40/3’, ‘ISO 3310-1 R20’, ‘ISO 3310-1 R20/3’, ‘ISO 3310-1’, ‘ISO 3310-1 R10’, ‘ASTM E11’, [-]

  property `vssa`

    The volume-specific surface area of a particle size distribution.

    \[\text{VSSA} = \frac{6}{\bar x_{1,2}}\]
    Returns
      VSSA float

        The volume-specific surface area of the distribution, [m^2/m^3]

    References

    1

      ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

    Examples

        >>> PSDLognormal(s=0.5, d_characteristic=5E-6).vssa
        1359778.1436801916

## Discrete Particle Size Distributions

class `fluids.particle_size_distribution.``ParticleSizeDistribution`(ds, fractions, cdf=False, order=3, monotonic=True)

  Class representing a discrete particle size distribution specified by a series of diameter bins, and the quantity of particles in each bin. The quantities may be specified as either the fraction of particles in each bin, or as cumulative distributions. The input fractions can be specified to be in a mass basis (order=3), number basis (order=0), or the orders in between for length basis or area basis. If the fractions do not sum to 1, and cdf is False, then the fractions are normalized. This allows flow rates or counts of size bins to be given as well.

  Parameters
    ds list[float]

      Diameter bins; length of the specified quantities, optionally +1 that length to specify a cutoff diameter for the smallest diameter bin, [m]

    fractions list[float], optional

      The mass/mole/volume/length/area/count fractions or cumulative distributions or counts of each particle size in each diameter bin (the type is specified by order), [-]

    order int, optional

      0 for a number distribution as input; 1 for length distribution; 2 for area distribution; 3 for mass, mole, or volume distribution, [-]

    cdf bool, optional

      If the distribution is given as increasing fractions with 1 as the last result, cdf must be set to True, [-]

    monotonic bool, optional

      If True, for interpolated quanties, monotonic splines will be used instead of the standard splines, [-]

  Notes

  Although the stated units of input are in meters, this class is actually independent of the units provided; all results will be consistent with the provided unit.

  References

  1

    ASTM E799 - 03(2015) - Standard Practice for Determining Data Criteria and Processing for Liquid Drop Size Analysis.

  2

    ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

  Examples

  Example problem from [1], calculating several diameters and the cumulative distribution.

      >>> ds = 1E-6*np.array([240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532])
      >>> numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1]
      >>> psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0)
      >>> psd
      <Particle Size Distribution, points=14, D[3, 3]=0.002451 m>

  Attributes
    fractions list[float]

      The mass/mole/volume basis fractions of particles in each bin, [-]

    area_fractions list[float]

      The area fractions of particles in each bin, [-]

    length_fractions list[float]

      The length fractions of particles in each bin, [-]

    number_fractions list[float]

      The number fractions of particles in each bin, [-]

    fraction_cdf list[float]

      The cumulative mass/mole/volume basis fractions of particles in each bin, [-]

    area_cdf list[float]

      The cumulative area fractions of particles in each bin, [-]

    length_cdf list[float]

      The cumulative length fractions of particles in each bin, [-]

    number_cdf list[float]

      The cumulative number fractions of particles in each bin, [-]

    size_classes bool

      Whether or not the diameter bins were set as size classes (as length of fractions + 1), [-]

    N int

      The number of provided points, [-]

  Methods

  `cdf`(d[, n]) | Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `cdf_discrete`(ds[, n]) | Computes the cumulative distribution functions for a list of specified particle diameters.
  `delta_cdf`(d_min, d_max[, n]) | Computes the difference in cumulative distribution function between two particle size diameters.
  `di_power`(i[, power]) | Method to calculate a power of a particle class/bin in a generic way so as to support when there are as many ds as fractions, or one more diameter spec than fractions.
  `dn`(fraction[, n]) | Computes the diameter at which a specified fraction of the distribution falls under.
  `ds_discrete`([d_min, d_max, pts, limit, method]) | Create a particle spacing mesh to perform calculations with, according to one of several ways.
  `fit`([x0, distribution, n]) | Incomplete method to fit experimental values to a curve.
  `fractions_discrete`(ds[, n]) | Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters.
  `mean_size`(p, q) | Calculates the mean particle size according to moment-ratio notation.
  `mean_size_ISO`(k, r) | Calculates the mean particle size according to moment notation (ISO).
  `pdf`(d[, n]) | Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `plot_cdf`([n, d_min, d_max, pts, method]) | Plot the cumulative distribution function of the particle size distribution.
  `plot_pdf`([n, d_min, d_max, pts, normalized, …]) | Plot the probability density function of the particle size distribution.

  property `Dis`

    Representative diameters of each bin.

  `di_power`(i, power=1)

    Method to calculate a power of a particle class/bin in a generic way so as to support when there are as many ds as fractions, or one more diameter spec than fractions.

    When each bin has a lower and upper bound, the formula is as follows [1].

    \[D_i^r = \frac{D_{i, ub}^{(r+1)} - D_{i, lb}^{(r+1)}} {(D_{i, ub} - D_{i, lb})(r+1)}\]

    Where ub represents the upper bound, and lb represents the lower bound. Otherwise, the standard definition is used:

    \[D_i^r = D_i^r\]
    Parameters
      i int

        The index of the diameter for the calculation, [-]

      power int

        The exponent, [-]

    Returns
      di_power float

        The representative bin diameter raised to power, [m^power]

    References

    1

      ASTM E799 - 03(2015) - Standard Practice for Determining Data Criteria and Processing for Liquid Drop Size Analysis.

  `fit`(x0=None, distribution='lognormal', n=None, **kwargs)

    Incomplete method to fit experimental values to a curve. It is very hard to get good initial guesses, which are really required for this. Differential evolution is promissing. This API is likely to change in the future.

  `mean_size`(p, q)

    Calculates the mean particle size according to moment-ratio notation. This is the more common and often convenient definition.

    \[ \begin{align}\begin{aligned}\left[\bar D_{p,q} \right]^{(p-q)} = \frac{\sum_i n_i D_i^p } {\sum_i n_i D_i^q}\\\left[\bar D_{p,p} \right] = \exp\left[\frac{\sum_i n_i D_i^p\ln D_i }{\sum_i n_i D_i^p}\right] \text{, if p = q}\end{aligned}\end{align} \]

    Note that \(n_i\) in the above equation is replaceable with the fraction of particles in that bin.

    Parameters
      p int

        Power and/or subscript of D moment in the above equations, [-]

      q int

        Power and/or subscript of D moment in the above equations, [-]

    Returns
      d_pq float

        Mean particle size according to the specified p and q, [m]

    Notes

    The following is a list of common names for specific mean diameters.

    - D[-3, 0]: arithmetic harmonic mean volume diameter

    - D[-2, 1]: size-weighted harmonic mean volume diameter

    - D[-1, 2]: area-weighted harmonic mean volume diameter

    - D[-2, 0]: arithmetic harmonic mean area diameter

    - D[-1, 1]: size-weighted harmonic mean area diameter

    - D[-1, 0]: arithmetic harmonic mean diameter

    - D[0, 0]: arithmetic geometric mean diameter

    - D[1, 1]: size-weighted geometric mean diameter

    - D[2, 2]: area-weighted geometric mean diameter

    - D[3, 3]: volume-weighted geometric mean diameter

    - D[1, 0]: arithmetic mean diameter

    - D[2, 1]: size-weighted mean diameter

    - D[3, 2]: area-weighted mean diameter, Sauter mean diameter

    - D[4, 3]: volume-weighted mean diameter, De Brouckere diameter

    - D[2, 0]: arithmetic mean area diameter

    - D[3, 1]: size-weighted mean area diameter

    - D[4, 2]: area-weighted mean area diameter

    - D[5, 3]: volume-weighted mean area diameter

    - D[3, 0]: arithmetic mean volume diameter

    - D[4, 1]: size-weighted mean volume diameter

    - D[5, 2]: area-weighted mean volume diameter

    - D[6, 3]: volume-weighted mean volume diameter

    This notation was first introduced in [1].

    The sum of p and q is called the order of the mean size [3].

    \[\bar D_{p,q} \equiv \bar D_{q, p} \]

    References

    1

      Mugele, R. A., and H. D. Evans. “Droplet Size Distribution in Sprays.” Industrial & Engineering Chemistry 43, no. 6 (June 1951): 1317-24. https://doi.org/10.1021/ie50498a023.

    2

      ASTM E799 - 03(2015) - Standard Practice for Determining Data Criteria and Processing for Liquid Drop Size Analysis.

    3

      ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

    Examples

        >>> ds = 1E-6*np.array([240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532])
        >>> numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1]
        >>> psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0)
        >>> psd.mean_size(3, 2)
        0.002269321031745045

  `mean_size_ISO`(k, r)

    Calculates the mean particle size according to moment notation (ISO). This system is related to the moment-ratio notation as follows; see the mean_size method for the full formulas.

    \[\bar x_{p-q, q} \equiv \bar x_{k+r, r} \equiv \bar D_{p,q} \]
    Parameters
      k int

        Power and/or subscript of D moment in the above equations, [-]

      r int

        Power and/or subscript of D moment in the above equations, [-]

    Returns
      x_kr float

        Mean particle size according to the specified k and r in the ISO series, [m]

    Notes

    The following is a list of common names for specific mean diameters in the ISO naming convention.

    - x[-3, 0]: arithmetic harmonic mean volume diameter

    - x[-3, 1]: size-weighted harmonic mean volume diameter

    - x[-3, 2]: area-weighted harmonic mean volume diameter

    - x[-2, 0]: arithmetic harmonic mean area diameter

    - x[-2, 1]: size-weighted harmonic mean area diameter

    - x[-1, 0]: arithmetic harmonic mean diameter

    - x[0, 0]: arithmetic geometric mean diameter

    - x[0, 1]: size-weighted geometric mean diameter

    - x[0, 2]: area-weighted geometric mean diameter

    - x[0, 3]: volume-weighted geometric mean diameter

    - x[1, 0]: arithmetic mean diameter

    - x[1, 1]: size-weighted mean diameter

    - x[1, 2]: area-weighted mean diameter, Sauter mean diameter

    - x[1, 3]: volume-weighted mean diameter, De Brouckere diameter

    - x[2, 0]: arithmetic mean area diameter

    - x[1, 1]: size-weighted mean area diameter

    - x[2, 2]: area-weighted mean area diameter

    - x[2, 3]: volume-weighted mean area diameter

    - x[3, 0]: arithmetic mean volume diameter

    - x[3, 1]: size-weighted mean volume diameter

    - x[3, 2]: area-weighted mean volume diameter

    - x[3, 3]: volume-weighted mean volume diameter

    When working with continuous distributions, the ISO series must be used to perform the actual calculations.

    References

    1

      ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

    Examples

        >>> ds = 1E-6*np.array([240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532])
        >>> numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1]
        >>> psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0)
        >>> psd.mean_size_ISO(1, 2)
        0.002269321031745045

  property `vssa`

    The volume-specific surface area of a particle size distribution. Note this uses the diameters provided by the method Dis.

    \[\text{VSSA} = \sum_i \text{fraction}_i \frac{SA_i}{V_i}\]
    VSSAfloat

      The volume-specific surface area of the distribution, [m^2/m^3]

    References

    1

      ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

class `fluids.particle_size_distribution.``PSDInterpolated`(ds, fractions, order=3, monotonic=True)
  Attributes
    `vssa`

      The volume-specific surface area of a particle size distribution.

  Methods

  `cdf`(d[, n]) | Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `cdf_discrete`(ds[, n]) | Computes the cumulative distribution functions for a list of specified particle diameters.
  `delta_cdf`(d_min, d_max[, n]) | Computes the difference in cumulative distribution function between two particle size diameters.
  `dn`(fraction[, n]) | Computes the diameter at which a specified fraction of the distribution falls under.
  `ds_discrete`([d_min, d_max, pts, limit, method]) | Create a particle spacing mesh to perform calculations with, according to one of several ways.
  `fractions_discrete`(ds[, n]) | Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters.
  `mean_size`(p, q) | Calculates the mean particle size according to moment-ratio notation.
  `mean_size_ISO`(k, r) | Calculates the mean particle size according to moment notation (ISO).
  `pdf`(d[, n]) | Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `plot_cdf`([n, d_min, d_max, pts, method]) | Plot the cumulative distribution function of the particle size distribution.
  `plot_pdf`([n, d_min, d_max, pts, normalized, …]) | Plot the probability density function of the particle size distribution.

## Statistical Particle Size Distributions

class `fluids.particle_size_distribution.``PSDLognormal`(d_characteristic, s, order=3, d_min=None, d_max=None)
  Attributes
    `vssa`

      The volume-specific surface area of a particle size distribution.

  Methods

  `cdf`(d[, n]) | Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `cdf_discrete`(ds[, n]) | Computes the cumulative distribution functions for a list of specified particle diameters.
  `delta_cdf`(d_min, d_max[, n]) | Computes the difference in cumulative distribution function between two particle size diameters.
  `dn`(fraction[, n]) | Computes the diameter at which a specified fraction of the distribution falls under.
  `ds_discrete`([d_min, d_max, pts, limit, method]) | Create a particle spacing mesh to perform calculations with, according to one of several ways.
  `fractions_discrete`(ds[, n]) | Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters.
  `mean_size`(p, q) | Calculates the mean particle size according to moment-ratio notation.
  `mean_size_ISO`(k, r) | Calculates the mean particle size according to moment notation (ISO).
  `pdf`(d[, n]) | Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `plot_cdf`([n, d_min, d_max, pts, method]) | Plot the cumulative distribution function of the particle size distribution.
  `plot_pdf`([n, d_min, d_max, pts, normalized, …]) | Plot the probability density function of the particle size distribution.

class `fluids.particle_size_distribution.``PSDGatesGaudinSchuhman`(d_characteristic, m, order=3, d_min=None, d_max=None)
  Attributes
    `vssa`

      The volume-specific surface area of a particle size distribution.

  Methods

  `cdf`(d[, n]) | Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `cdf_discrete`(ds[, n]) | Computes the cumulative distribution functions for a list of specified particle diameters.
  `delta_cdf`(d_min, d_max[, n]) | Computes the difference in cumulative distribution function between two particle size diameters.
  `dn`(fraction[, n]) | Computes the diameter at which a specified fraction of the distribution falls under.
  `ds_discrete`([d_min, d_max, pts, limit, method]) | Create a particle spacing mesh to perform calculations with, according to one of several ways.
  `fractions_discrete`(ds[, n]) | Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters.
  `mean_size`(p, q) | Calculates the mean particle size according to moment-ratio notation.
  `mean_size_ISO`(k, r) | Calculates the mean particle size according to moment notation (ISO).
  `pdf`(d[, n]) | Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `plot_cdf`([n, d_min, d_max, pts, method]) | Plot the cumulative distribution function of the particle size distribution.
  `plot_pdf`([n, d_min, d_max, pts, normalized, …]) | Plot the probability density function of the particle size distribution.

class `fluids.particle_size_distribution.``PSDRosinRammler`(k, m, order=3, d_min=None, d_max=None)
  Attributes
    `vssa`

      The volume-specific surface area of a particle size distribution.

  Methods

  `cdf`(d[, n]) | Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `cdf_discrete`(ds[, n]) | Computes the cumulative distribution functions for a list of specified particle diameters.
  `delta_cdf`(d_min, d_max[, n]) | Computes the difference in cumulative distribution function between two particle size diameters.
  `dn`(fraction[, n]) | Computes the diameter at which a specified fraction of the distribution falls under.
  `ds_discrete`([d_min, d_max, pts, limit, method]) | Create a particle spacing mesh to perform calculations with, according to one of several ways.
  `fractions_discrete`(ds[, n]) | Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters.
  `mean_size`(p, q) | Calculates the mean particle size according to moment-ratio notation.
  `mean_size_ISO`(k, r) | Calculates the mean particle size according to moment notation (ISO).
  `pdf`(d[, n]) | Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `plot_cdf`([n, d_min, d_max, pts, method]) | Plot the cumulative distribution function of the particle size distribution.
  `plot_pdf`([n, d_min, d_max, pts, normalized, …]) | Plot the probability density function of the particle size distribution.

class `fluids.particle_size_distribution.``PSDCustom`(distribution, order=3.0, d_excessive=1.0, name=None, d_min=None, d_max=None)
  Attributes
    `vssa`

      The volume-specific surface area of a particle size distribution.

  Methods

  `cdf`(d[, n]) | Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `cdf_discrete`(ds[, n]) | Computes the cumulative distribution functions for a list of specified particle diameters.
  `delta_cdf`(d_min, d_max[, n]) | Computes the difference in cumulative distribution function between two particle size diameters.
  `dn`(fraction[, n]) | Computes the diameter at which a specified fraction of the distribution falls under.
  `ds_discrete`([d_min, d_max, pts, limit, method]) | Create a particle spacing mesh to perform calculations with, according to one of several ways.
  `fractions_discrete`(ds[, n]) | Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters.
  `mean_size`(p, q) | Calculates the mean particle size according to moment-ratio notation.
  `mean_size_ISO`(k, r) | Calculates the mean particle size according to moment notation (ISO).
  `pdf`(d[, n]) | Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis.
  `plot_cdf`([n, d_min, d_max, pts, method]) | Plot the cumulative distribution function of the particle size distribution.
  `plot_pdf`([n, d_min, d_max, pts, normalized, …]) | Plot the probability density function of the particle size distribution.

## Helper functions: Lognormal Distribution

`fluids.particle_size_distribution.``pdf_lognormal`(d, d_characteristic, s)

  Calculates the probability density function of a lognormal particle distribution given a particle diameter d, characteristic particle diameter d_characteristic, and distribution standard deviation s.

  \[q(d) = \frac{1}{ds\sqrt{2\pi}} \exp\left[-0.5\left(\frac{ \ln(d/d_{characteristic})}{s}\right)^2\right]\]
  Parameters
    d float

      Specified particle diameter, [m]

    d_characteristic float

      Characteristic particle diameter; often D[3, 3] is used for this purpose but not always, [m]

    s float

      Distribution standard deviation, [-]

  Returns
    pdf float

      Lognormal probability density function, [-]

  Notes

  The characteristic diameter can be in terns of number density (denoted \(q_0(d)\)), length density (\(q_1(d)\)), surface area density (\(q_2(d)\)), or volume density (\(q_3(d)\)). Volume density is most often used. Interconversions among the distributions is possible but tricky.

  The standard distribution (i.e. the one used in Scipy) can perform the same computation with d_characteristic as the value of scale.

      >>> import scipy.stats
      >>> scipy.stats.lognorm.pdf(x=1E-4, s=1.1, scale=1E-5)
      405.5420921156425

  Scipy’s calculation is over 300 times slower however, and this expression is numerically integrated so speed is required.

  References

  1

    ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

  Examples

      >>> pdf_lognormal(d=1E-4, d_characteristic=1E-5, s=1.1)
      405.5420921156425

`fluids.particle_size_distribution.``cdf_lognormal`(d, d_characteristic, s)

  Calculates the cumulative distribution function of a lognormal particle distribution given a particle diameter d, characteristic particle diameter d_characteristic, and distribution standard deviation s.

  \[Q(d) = 0.5\left(1 + \text{err}\left[\left(\frac{\ln(d/d_c)}{s\sqrt{2}} \right)\right]\right)\]
  Parameters
    d float

      Specified particle diameter, [m]

    d_characteristic float

      Characteristic particle diameter; often D[3, 3] is used for this purpose but not always, [m]

    s float

      Distribution standard deviation, [-]

  Returns
    cdf float

      Lognormal cumulative density function, [-]

  Notes

  The characteristic diameter can be in terns of number density (denoted \(q_0(d)\)), length density (\(q_1(d)\)), surface area density (\(q_2(d)\)), or volume density (\(q_3(d)\)). Volume density is most often used. Interconversions among the distributions is possible but tricky.

  The standard distribution (i.e. the one used in Scipy) can perform the same computation with d_characteristic as the value of scale.

      >>> import scipy.stats
      >>> scipy.stats.lognorm.cdf(x=1E-4, s=1.1, scale=1E-5)
      0.9818369875798177

  Scipy’s calculation is over 100 times slower however.

  References

  1

    ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions.

  Examples

      >>> cdf_lognormal(d=1E-4, d_characteristic=1E-5, s=1.1)
      0.9818369875798176

`fluids.particle_size_distribution.``pdf_lognormal_basis_integral`(d, d_characteristic, s, n)

  Calculates the integral of the multiplication of d^n by the lognormal pdf, given a particle diameter d, characteristic particle diameter d_characteristic, distribution standard deviation s, and exponent n.

  \[\int d^n\cdot q(d)\; dd = -\frac{1}{2} \exp\left(\frac{s^2 n^2}{2} \right)d^n \left(\frac{d}{d_{characteristic}}\right)^{-n} \text{erf}\left[\frac{s^2 n - \log(d/d_{characteristic})} {\sqrt{2} s} \right]\]

  This is the crucial integral required for interconversion between different bases such as number density (denoted \(q_0(d)\)), length density (\(q_1(d)\)), surface area density (\(q_2(d)\)), or volume density (\(q_3(d)\)).

  Parameters
    d float

      Specified particle diameter, [m]

    d_characteristic float

      Characteristic particle diameter; often D[3, 3] is used for this purpose but not always, [m]

    s float

      Distribution standard deviation, [-]

    n int

      Exponent of the multiplied n

  Returns
    pdf_basis_integral float

      Integral of lognormal pdf multiplied by d^n, [-]

  Notes

  This integral has been verified numerically. This integral is itself integrated, so it is crucial to obtain an analytical form for at least this integral.

  Note overflow or zero division issues may occur for very large values of s, larger than 10. No mathematical limit was able to be obtained with a CAS.

  Examples

      >>> pdf_lognormal_basis_integral(d=1E-4, d_characteristic=1E-5, s=1.1, n=-2)
      56228306549.26362

## Helper functions: Gates Gaudin Schuhman Distribution

`fluids.particle_size_distribution.``pdf_Gates_Gaudin_Schuhman`(d, d_characteristic, m)

  Calculates the probability density of a particle distribution following the Gates, Gaudin and Schuhman (GGS) model given a particle diameter d, characteristic (maximum) particle diameter d_characteristic, and exponent m.

  \[q(d) = \frac{n}{d}\left(\frac{d}{d_{characteristic}}\right)^m \text{ if } d < d_{characteristic} \text{ else } 0\]
  Parameters
    d float

      Specified particle diameter, [m]

    d_characteristic float

      Characteristic particle diameter; in this model, it is the largest particle size diameter in the distribution, [m]

    m float

      Particle size distribution exponent, [-]

  Returns
    pdf float

      GGS probability density function, [-]

  Notes

  The characteristic diameter can be in terns of number density (denoted \(q_0(d)\)), length density (\(q_1(d)\)), surface area density (\(q_2(d)\)), or volume density (\(q_3(d)\)). Volume density is most often used. Interconversions among the distributions is possible but tricky.

  References

  1

    Schuhmann, R., 1940. Principles of Comminution, I-Size Distribution and Surface Calculations. American Institute of Mining, Metallurgical and Petroleum Engineers Technical Publication 1189. Mining Technology, volume 4, p. 1-11.

  2

    Bayat, Hossein, Mostafa Rastgo, Moharram Mansouri Zadeh, and Harry Vereecken. “Particle Size Distribution Models, Their Characteristics and Fitting Capability.” Journal of Hydrology 529 (October 1, 2015): 872-89.

  Examples

      >>> pdf_Gates_Gaudin_Schuhman(d=2E-4, d_characteristic=1E-3, m=2.3)
      283.8355768512045

`fluids.particle_size_distribution.``cdf_Gates_Gaudin_Schuhman`(d, d_characteristic, m)

  Calculates the cumulative distribution function of a particle distribution following the Gates, Gaudin and Schuhman (GGS) model given a particle diameter d, characteristic (maximum) particle diameter d_characteristic, and exponent m.

  \[Q(d) = \left(\frac{d}{d_{characteristic}}\right)^m \text{ if } d < d_{characteristic} \text{ else } 1\]
  Parameters
    d float

      Specified particle diameter, [m]

    d_characteristic float

      Characteristic particle diameter; in this model, it is the largest particle size diameter in the distribution, [m]

    m float

      Particle size distribution exponent, [-]

  Returns
    cdf float

      GGS cumulative density function, [-]

  Notes

  The characteristic diameter can be in terns of number density (denoted \(q_0(d)\)), length density (\(q_1(d)\)), surface area density (\(q_2(d)\)), or volume density (\(q_3(d)\)). Volume density is most often used. Interconversions among the distributions is possible but tricky.

  References

  1

    Schuhmann, R., 1940. Principles of Comminution, I-Size Distribution and Surface Calculations. American Institute of Mining, Metallurgical and Petroleum Engineers Technical Publication 1189. Mining Technology, volume 4, p. 1-11.

  2

    Bayat, Hossein, Mostafa Rastgo, Moharram Mansouri Zadeh, and Harry Vereecken. “Particle Size Distribution Models, Their Characteristics and Fitting Capability.” Journal of Hydrology 529 (October 1, 2015): 872-89.

  Examples

      >>> cdf_Gates_Gaudin_Schuhman(d=2E-4, d_characteristic=1E-3, m=2.3)
      0.024681354508800397

`fluids.particle_size_distribution.``pdf_Gates_Gaudin_Schuhman_basis_integral`(d, d_characteristic, m, n)

  Calculates the integral of the multiplication of d^n by the Gates, Gaudin and Schuhman (GGS) model given a particle diameter d, characteristic (maximum) particle diameter d_characteristic, and exponent m.

  \[\int d^n\cdot q(d)\; dd =\frac{m}{m+n} d^n \left(\frac{d} {d_{characteristic}}\right)^m\]
  Parameters
    d float

      Specified particle diameter, [m]

    d_characteristic float

      Characteristic particle diameter; in this model, it is the largest particle size diameter in the distribution, [m]

    m float

      Particle size distribution exponent, [-]

    n int

      Exponent of the multiplied n, [-]

  Returns
    pdf_basis_integral float

      Integral of Rosin Rammler pdf multiplied by d^n, [-]

  Notes

  This integral does not have any numerical issues as d approaches 0.

  Examples

      >>> pdf_Gates_Gaudin_Schuhman_basis_integral(d=2E-4, d_characteristic=1E-3, m=2.3, n=-3)
      -10136984887.543015

## Helper functions: Rosin Rammler Distribution

`fluids.particle_size_distribution.``pdf_Rosin_Rammler`(d, k, m)

  Calculates the probability density of a particle distribution following the Rosin-Rammler (RR) model given a particle diameter d, and the two parameters k and m.

  \[q(d) = k m d^{(m-1)} \exp(- k d^{m})\]
  Parameters
    d float

      Specified particle diameter, [m]

    k float

      Parameter in the model, [(1/m)^m]

    m float

      Parameter in the model, [-]

  Returns
    pdf float

      RR probability density function, [-]

  References

  1

    Rosin, P. “The Laws Governing the Fineness of Powdered Coal.” J. Inst. Fuel. 7 (1933): 29-36.

  2

    Bayat, Hossein, Mostafa Rastgo, Moharram Mansouri Zadeh, and Harry Vereecken. “Particle Size Distribution Models, Their Characteristics and Fitting Capability.” Journal of Hydrology 529 (October 1, 2015): 872-89.

  Examples

      >>> pdf_Rosin_Rammler(1E-3, 200, 2)
      0.3999200079994667

`fluids.particle_size_distribution.``cdf_Rosin_Rammler`(d, k, m)

  Calculates the cumulative distribution function of a particle distribution following the Rosin-Rammler (RR) model given a particle diameter d, and the two parameters k and m.

  \[Q(d) = 1 - \exp\left(-k d^m\right)\]
  Parameters
    d float

      Specified particle diameter, [m]

    k float

      Parameter in the model, [(1/m)^m]

    m float

      Parameter in the model, [-]

  Returns
    cdf float

      RR cumulative density function, [-]

  Notes

  The characteristic diameter can be in terns of number density (denoted \(q_0(d)\)), length density (\(q_1(d)\)), surface area density (\(q_2(d)\)), or volume density (\(q_3(d)\)). Volume density is most often used. Interconversions among the distributions is possible but tricky.

  References

  1

    Rosin, P. “The Laws Governing the Fineness of Powdered Coal.” J. Inst. Fuel. 7 (1933): 29-36.

  2

    Bayat, Hossein, Mostafa Rastgo, Moharram Mansouri Zadeh, and Harry Vereecken. “Particle Size Distribution Models, Their Characteristics and Fitting Capability.” Journal of Hydrology 529 (October 1, 2015): 872-89.

  Examples

      >>> cdf_Rosin_Rammler(5E-2, 200, 2)
      0.3934693402873667

`fluids.particle_size_distribution.``pdf_Rosin_Rammler_basis_integral`(d, k, m, n)

  Calculates the integral of the multiplication of d^n by the Rosin Rammler (RR) pdf, given a particle diameter d, and the two parameters k and m.

  \[\int d^n\cdot q(d)\; dd =-d^{m+n} k(d^mk)^{-\frac{m+n}{m}}\Gamma \left(\frac{m+n}{m}\right)\text{gammaincc}\left[\left(\frac{m+n}{m} \right), kd^m\right]\]
  Parameters
    d float

      Specified particle diameter, [m]

    k float

      Parameter in the model, [(1/m)^m]

    m float

      Parameter in the model, [-]

    n int

      Exponent of the multiplied n, [-]

  Returns
    pdf_basis_integral float

      Integral of Rosin Rammler pdf multiplied by d^n, [-]

  Notes

  This integral was derived using a CAS, and verified numerically. The gammaincc function is that from scipy.special, and gamma from the same.

  For very high powers of n or m when the diameter is very low, exceptions may occur.

  Examples

      >>> "{:g}".format(pdf_Rosin_Rammler_basis_integral(5E-2, 200, 2, 3))
      '-0.000452399'

## Sieves

class `fluids.particle_size_distribution.``Sieve`(designation, old_designation=None, opening=None, opening_inch=None, Y_variation_avg=None, X_variation_max=None, max_opening=None, compliance_samples=None, compliance_sd=None, inspection_samples=None, inspection_sd=None, calibration_samples=None, calibration_sd=None, d_wire=None, d_wire_min=None, d_wire_max=None)

  Class for storing data on sieves. If a property is not available, it is set to None.

  Attributes
    designation str

      The standard name of the sieve - its opening’s length in units of millimeters

    old_designation str

      The older, imperial-esque name of the sieve; in Numbers, or inches for large sieves

    opening float

      The opening length of the sieve holes, [m]

    opening_inch float

      The opening length of the sieve holes in the rounded inches as stated in common tables (not exactly equal to the opening), [inch]

    Y_variation_avg float

      The allowable average variation in the Y direction of the sieve openings, [m]

    X_variation_max float

      The allowable maximum variation in the X direction of the sieve openings, [m]

    max_opening float

      The maximum allowable opening of the sieve, [m]

    calibration_samples float

      The number of opening sample inspections required for calibration- type sieve openings (per 100 ft^2 of sieve material), [1/(ft^2)]

    compliance_sd float

      The maximum standard deviation of compliance-type sieve openings, [-]

    inspection_samples float

      The number of opening sample inspections required for inspection- type sieve openings (based on an 8-inch sieve), [-]

    inspection_sd float

      The maximum standard deviation of inspection-type sieve openings, [-]

    calibration_samples float

      The number of opening sample inspections required for calibration- type sieve openings (based on an 8-inch sieve), [-]

    calibration_sd float

      The maximum standard deviation of calibration-type sieve openings, [-]

    d_wire float

      Typical wire diameter of the specified sieve size, [m]

    d_wire_min float

      Permissible minimum wire diameter of specified sieve size, [m]

    d_wire_max float

      Permissible maximum wire diameter of specified sieve size, [m]

`fluids.particle_size_distribution.``ASTM_E11_sieves` = {'0.02': <Sieve, designation 0.02 mm, opening 2e-05 m>, '0.025': <Sieve, designation 0.025 mm, opening 2.5e-05 m>, '0.032': <Sieve, designation 0.032 mm, opening 3.2e-05 m>, '0.038': <Sieve, designation 0.038 mm, opening 3.8e-05 m>, '0.045': <Sieve, designation 0.045 mm, opening 4.5e-05 m>, '0.053': <Sieve, designation 0.053 mm, opening 5.3e-05 m>, '0.063': <Sieve, designation 0.063 mm, opening 6.3e-05 m>, '0.075': <Sieve, designation 0.075 mm, opening 7.5e-05 m>, '0.09': <Sieve, designation 0.09 mm, opening 9e-05 m>, '0.106': <Sieve, designation 0.106 mm, opening 0.000106 m>, '0.125': <Sieve, designation 0.125 mm, opening 0.000125 m>, '0.15': <Sieve, designation 0.15 mm, opening 0.00015 m>, '0.18': <Sieve, designation 0.18 mm, opening 0.00018 m>, '0.212': <Sieve, designation 0.212 mm, opening 0.000212 m>, '0.25': <Sieve, designation 0.25 mm, opening 0.00025 m>, '0.3': <Sieve, designation 0.3 mm, opening 0.0003 m>, '0.355': <Sieve, designation 0.355 mm, opening 0.000355 m>, '0.425': <Sieve, designation 0.425 mm, opening 0.000425 m>, '0.5': <Sieve, designation 0.5 mm, opening 0.0005 m>, '0.6': <Sieve, designation 0.6 mm, opening 0.0006 m>, '0.71': <Sieve, designation 0.71 mm, opening 0.00071 m>, '0.85': <Sieve, designation 0.85 mm, opening 0.00085 m>, '1': <Sieve, designation 1 mm, opening 0.001 m>, '1.18': <Sieve, designation 1.18 mm, opening 0.00118 m>, '1.4': <Sieve, designation 1.4 mm, opening 0.0014 m>, '1.7': <Sieve, designation 1.7 mm, opening 0.0017 m>, '100': <Sieve, designation 100 mm, opening 0.1 m>, '106': <Sieve, designation 106 mm, opening 0.106 m>, '11.2': <Sieve, designation 11.2 mm, opening 0.0112 m>, '12.5': <Sieve, designation 12.5 mm, opening 0.0125 m>, '125': <Sieve, designation 125 mm, opening 0.125 m>, '13.2': <Sieve, designation 13.2 mm, opening 0.0132 m>, '16': <Sieve, designation 16 mm, opening 0.016 m>, '19': <Sieve, designation 19 mm, opening 0.019 m>, '2': <Sieve, designation 2 mm, opening 0.002 m>, '2.36': <Sieve, designation 2.36 mm, opening 0.00236 m>, '2.8': <Sieve, designation 2.8 mm, opening 0.0028 m>, '22.4': <Sieve, designation 22.4 mm, opening 0.0224 m>, '25': <Sieve, designation 25 mm, opening 0.025 m>, '26.5': <Sieve, designation 26.5 mm, opening 0.0265 m>, '3.35': <Sieve, designation 3.35 mm, opening 0.00335 m>, '31.5': <Sieve, designation 31.5 mm, opening 0.0315 m>, '37.5': <Sieve, designation 37.5 mm, opening 0.0375 m>, '4': <Sieve, designation 4 mm, opening 0.004 m>, '4.75': <Sieve, designation 4.75 mm, opening 0.00475 m>, '45': <Sieve, designation 45 mm, opening 0.045 m>, '5.6': <Sieve, designation 5.6 mm, opening 0.0056 m>, '50': <Sieve, designation 50 mm, opening 0.05 m>, '53': <Sieve, designation 53 mm, opening 0.053 m>, '6.3': <Sieve, designation 6.3 mm, opening 0.0063 m>, '6.7': <Sieve, designation 6.7 mm, opening 0.0067 m>, '63': <Sieve, designation 63 mm, opening 0.063 m>, '75': <Sieve, designation 75 mm, opening 0.075 m>, '8': <Sieve, designation 8 mm, opening 0.008 m>, '9.5': <Sieve, designation 9.5 mm, opening 0.0095 m>, '90': <Sieve, designation 90 mm, opening 0.09 m>}

  Dictionary containing ASTM E-11 sieve series `Sieve` objects, indexed by their size in mm as a string.

  References

  1

    ASTM E11 - 17 - Standard Specification for Woven Wire Test Sieve Cloth and Test Sieves.

`fluids.particle_size_distribution.``ISO_3310_1_sieves` = {'0.02': <Sieve, designation 0.02 mm, opening 2e-05 m>, '0.025': <Sieve, designation 0.025 mm, opening 2.5e-05 m>, '0.032': <Sieve, designation 0.032 mm, opening 3.2e-05 m>, '0.036': <Sieve, designation 0.036 mm, opening 3.6e-05 m>, '0.038': <Sieve, designation 0.038 mm, opening 3.8e-05 m>, '0.04': <Sieve, designation 0.04 mm, opening 4e-05 m>, '0.045': <Sieve, designation 0.045 mm, opening 4.5e-05 m>, '0.05': <Sieve, designation 0.05 mm, opening 5e-05 m>, '0.053': <Sieve, designation 0.053 mm, opening 5.3e-05 m>, '0.056': <Sieve, designation 0.056 mm, opening 5.6e-05 m>, '0.063': <Sieve, designation 0.063 mm, opening 6.3e-05 m>, '0.071': <Sieve, designation 0.071 mm, opening 7.1e-05 m>, '0.075': <Sieve, designation 0.075 mm, opening 7.5e-05 m>, '0.08': <Sieve, designation 0.08 mm, opening 8e-05 m>, '0.09': <Sieve, designation 0.09 mm, opening 9e-05 m>, '0.1': <Sieve, designation 0.1 mm, opening 0.0001 m>, '0.106': <Sieve, designation 0.106 mm, opening 0.000106 m>, '0.112': <Sieve, designation 0.112 mm, opening 0.000112 m>, '0.125': <Sieve, designation 0.125 mm, opening 0.000125 m>, '0.14': <Sieve, designation 0.14 mm, opening 0.00014 m>, '0.15': <Sieve, designation 0.15 mm, opening 0.00015 m>, '0.16': <Sieve, designation 0.16 mm, opening 0.00016 m>, '0.18': <Sieve, designation 0.18 mm, opening 0.00018 m>, '0.2': <Sieve, designation 0.2 mm, opening 0.0002 m>, '0.212': <Sieve, designation 0.212 mm, opening 0.000212 m>, '0.224': <Sieve, designation 0.224 mm, opening 0.000224 m>, '0.25': <Sieve, designation 0.25 mm, opening 0.00025 m>, '0.28': <Sieve, designation 0.28 mm, opening 0.00028 m>, '0.3': <Sieve, designation 0.3 mm, opening 0.0003 m>, '0.315': <Sieve, designation 0.315 mm, opening 0.000315 m>, '0.355': <Sieve, designation 0.355 mm, opening 0.000355 m>, '0.4': <Sieve, designation 0.4 mm, opening 0.0004 m>, '0.425': <Sieve, designation 0.425 mm, opening 0.000425 m>, '0.45': <Sieve, designation 0.45 mm, opening 0.00045 m>, '0.5': <Sieve, designation 0.5 mm, opening 0.0005 m>, '0.56': <Sieve, designation 0.56 mm, opening 0.00056 m>, '0.6': <Sieve, designation 0.6 mm, opening 0.0006 m>, '0.63': <Sieve, designation 0.63 mm, opening 0.00063 m>, '0.71': <Sieve, designation 0.71 mm, opening 0.00071 m>, '0.8': <Sieve, designation 0.8 mm, opening 0.0008 m>, '0.85': <Sieve, designation 0.85 mm, opening 0.00085 m>, '0.9': <Sieve, designation 0.9 mm, opening 0.0009 m>, '1': <Sieve, designation 1 mm, opening 0.001 m>, '1.12': <Sieve, designation 1.12 mm, opening 0.00112 m>, '1.18': <Sieve, designation 1.18 mm, opening 0.00118 m>, '1.25': <Sieve, designation 1.25 mm, opening 0.00125 m>, '1.4': <Sieve, designation 1.4 mm, opening 0.0014 m>, '1.6': <Sieve, designation 1.6 mm, opening 0.0016 m>, '1.7': <Sieve, designation 1.7 mm, opening 0.0017 m>, '1.8': <Sieve, designation 1.8 mm, opening 0.0018 m>, '10': <Sieve, designation 10 mm, opening 0.01 m>, '100': <Sieve, designation 100 mm, opening 0.1 m>, '106': <Sieve, designation 106 mm, opening 0.106 m>, '11.2': <Sieve, designation 11.2 mm, opening 0.0112 m>, '112': <Sieve, designation 112 mm, opening 0.112 m>, '12.5': <Sieve, designation 12.5 mm, opening 0.0125 m>, '125': <Sieve, designation 125 mm, opening 0.125 m>, '13.2': <Sieve, designation 13.2 mm, opening 0.0132 m>, '14': <Sieve, designation 14 mm, opening 0.014 m>, '16': <Sieve, designation 16 mm, opening 0.016 m>, '18': <Sieve, designation 18 mm, opening 0.018 m>, '19': <Sieve, designation 19 mm, opening 0.019 m>, '2': <Sieve, designation 2 mm, opening 0.002 m>, '2.24': <Sieve, designation 2.24 mm, opening 0.00224 m>, '2.36': <Sieve, designation 2.36 mm, opening 0.00236 m>, '2.5': <Sieve, designation 2.5 mm, opening 0.0025 m>, '2.8': <Sieve, designation 2.8 mm, opening 0.0028 m>, '20': <Sieve, designation 20 mm, opening 0.02 m>, '22.4': <Sieve, designation 22.4 mm, opening 0.0224 m>, '25': <Sieve, designation 25 mm, opening 0.025 m>, '26.5': <Sieve, designation 26.5 mm, opening 0.0265 m>, '28': <Sieve, designation 28 mm, opening 0.028 m>, '3.15': <Sieve, designation 3.15 mm, opening 0.00315 m>, '3.35': <Sieve, designation 3.35 mm, opening 0.00335 m>, '3.55': <Sieve, designation 3.55 mm, opening 0.00355 m>, '31.5': <Sieve, designation 31.5 mm, opening 0.0315 m>, '35.5': <Sieve, designation 35.5 mm, opening 0.0355 m>, '37.5': <Sieve, designation 37.5 mm, opening 0.0375 m>, '4': <Sieve, designation 4 mm, opening 0.004 m>, '4.5': <Sieve, designation 4.5 mm, opening 0.0045 m>, '4.75': <Sieve, designation 4.75 mm, opening 0.00475 m>, '40': <Sieve, designation 40 mm, opening 0.04 m>, '45': <Sieve, designation 45 mm, opening 0.045 m>, '5': <Sieve, designation 5 mm, opening 0.005 m>, '5.6': <Sieve, designation 5.6 mm, opening 0.0056 m>, '50': <Sieve, designation 50 mm, opening 0.05 m>, '53': <Sieve, designation 53 mm, opening 0.053 m>, '56': <Sieve, designation 56 mm, opening 0.056 m>, '6.3': <Sieve, designation 6.3 mm, opening 0.0063 m>, '6.7': <Sieve, designation 6.7 mm, opening 0.0067 m>, '63': <Sieve, designation 63 mm, opening 0.063 m>, '7.1': <Sieve, designation 7.1 mm, opening 0.0071 m>, '71': <Sieve, designation 71 mm, opening 0.071 m>, '75': <Sieve, designation 75 mm, opening 0.075 m>, '8': <Sieve, designation 8 mm, opening 0.008 m>, '80': <Sieve, designation 80 mm, opening 0.08 m>, '9': <Sieve, designation 9 mm, opening 0.009 m>, '9.5': <Sieve, designation 9.5 mm, opening 0.0095 m>, '90': <Sieve, designation 90 mm, opening 0.09 m>}

  Dictionary containing all of the individual `Sieve` objects, on the ISO 3310-1:2016 series, indexed by their size in mm as a string.

  References

  1

    ISO 3310-1:2016 - Test Sieves – Technical Requirements and Testing – Part 1: Test Sieves of Metal Wire Cloth.

`fluids.particle_size_distribution.``ISO_3310_1_R20` = [<Sieve, designation 125 mm, opening 0.125 m>, <Sieve, designation 112 mm, opening 0.112 m>, <Sieve, designation 100 mm, opening 0.1 m>, <Sieve, designation 90 mm, opening 0.09 m>, <Sieve, designation 80 mm, opening 0.08 m>, <Sieve, designation 71 mm, opening 0.071 m>, <Sieve, designation 63 mm, opening 0.063 m>, <Sieve, designation 56 mm, opening 0.056 m>, <Sieve, designation 50 mm, opening 0.05 m>, <Sieve, designation 45 mm, opening 0.045 m>, <Sieve, designation 40 mm, opening 0.04 m>, <Sieve, designation 35.5 mm, opening 0.0355 m>, <Sieve, designation 31.5 mm, opening 0.0315 m>, <Sieve, designation 28 mm, opening 0.028 m>, <Sieve, designation 25 mm, opening 0.025 m>, <Sieve, designation 22.4 mm, opening 0.0224 m>, <Sieve, designation 20 mm, opening 0.02 m>, <Sieve, designation 18 mm, opening 0.018 m>, <Sieve, designation 16 mm, opening 0.016 m>, <Sieve, designation 14 mm, opening 0.014 m>, <Sieve, designation 12.5 mm, opening 0.0125 m>, <Sieve, designation 11.2 mm, opening 0.0112 m>, <Sieve, designation 10 mm, opening 0.01 m>, <Sieve, designation 9 mm, opening 0.009 m>, <Sieve, designation 8 mm, opening 0.008 m>, <Sieve, designation 7.1 mm, opening 0.0071 m>, <Sieve, designation 6.3 mm, opening 0.0063 m>, <Sieve, designation 5.6 mm, opening 0.0056 m>, <Sieve, designation 5 mm, opening 0.005 m>, <Sieve, designation 4.5 mm, opening 0.0045 m>, <Sieve, designation 4 mm, opening 0.004 m>, <Sieve, designation 3.55 mm, opening 0.00355 m>, <Sieve, designation 3.15 mm, opening 0.00315 m>, <Sieve, designation 2.8 mm, opening 0.0028 m>, <Sieve, designation 2.5 mm, opening 0.0025 m>, <Sieve, designation 2.24 mm, opening 0.00224 m>, <Sieve, designation 2 mm, opening 0.002 m>, <Sieve, designation 1.8 mm, opening 0.0018 m>, <Sieve, designation 1.6 mm, opening 0.0016 m>, <Sieve, designation 1.4 mm, opening 0.0014 m>, <Sieve, designation 1.25 mm, opening 0.00125 m>, <Sieve, designation 1.12 mm, opening 0.00112 m>, <Sieve, designation 1 mm, opening 0.001 m>, <Sieve, designation 0.9 mm, opening 0.0009 m>, <Sieve, designation 0.8 mm, opening 0.0008 m>, <Sieve, designation 0.71 mm, opening 0.00071 m>, <Sieve, designation 0.63 mm, opening 0.00063 m>, <Sieve, designation 0.56 mm, opening 0.00056 m>, <Sieve, designation 0.5 mm, opening 0.0005 m>, <Sieve, designation 0.45 mm, opening 0.00045 m>, <Sieve, designation 0.4 mm, opening 0.0004 m>, <Sieve, designation 0.355 mm, opening 0.000355 m>, <Sieve, designation 0.315 mm, opening 0.000315 m>, <Sieve, designation 0.28 mm, opening 0.00028 m>, <Sieve, designation 0.25 mm, opening 0.00025 m>, <Sieve, designation 0.224 mm, opening 0.000224 m>, <Sieve, designation 0.2 mm, opening 0.0002 m>, <Sieve, designation 0.18 mm, opening 0.00018 m>, <Sieve, designation 0.16 mm, opening 0.00016 m>, <Sieve, designation 0.14 mm, opening 0.00014 m>, <Sieve, designation 0.125 mm, opening 0.000125 m>, <Sieve, designation 0.112 mm, opening 0.000112 m>, <Sieve, designation 0.1 mm, opening 0.0001 m>, <Sieve, designation 0.09 mm, opening 9e-05 m>, <Sieve, designation 0.08 mm, opening 8e-05 m>, <Sieve, designation 0.071 mm, opening 7.1e-05 m>, <Sieve, designation 0.063 mm, opening 6.3e-05 m>, <Sieve, designation 0.056 mm, opening 5.6e-05 m>, <Sieve, designation 0.05 mm, opening 5e-05 m>, <Sieve, designation 0.045 mm, opening 4.5e-05 m>, <Sieve, designation 0.04 mm, opening 4e-05 m>, <Sieve, designation 0.036 mm, opening 3.6e-05 m>]

  List containing all of the individual `Sieve` objects, on the ISO 3310-1:2016 R20 series only, ordered from largest openings to smallest.

  References

  1

    ISO 3310-1:2016 - Test Sieves – Technical Requirements and Testing – Part 1: Test Sieves of Metal Wire Cloth.

`fluids.particle_size_distribution.``ISO_3310_1_R20_3` = [<Sieve, designation 125 mm, opening 0.125 m>, <Sieve, designation 90 mm, opening 0.09 m>, <Sieve, designation 63 mm, opening 0.063 m>, <Sieve, designation 45 mm, opening 0.045 m>, <Sieve, designation 31.5 mm, opening 0.0315 m>, <Sieve, designation 22.4 mm, opening 0.0224 m>, <Sieve, designation 16 mm, opening 0.016 m>, <Sieve, designation 11.2 mm, opening 0.0112 m>, <Sieve, designation 8 mm, opening 0.008 m>, <Sieve, designation 5.6 mm, opening 0.0056 m>, <Sieve, designation 4 mm, opening 0.004 m>, <Sieve, designation 2.8 mm, opening 0.0028 m>, <Sieve, designation 2 mm, opening 0.002 m>, <Sieve, designation 1.4 mm, opening 0.0014 m>, <Sieve, designation 1 mm, opening 0.001 m>, <Sieve, designation 0.71 mm, opening 0.00071 m>, <Sieve, designation 0.5 mm, opening 0.0005 m>, <Sieve, designation 0.355 mm, opening 0.000355 m>, <Sieve, designation 0.25 mm, opening 0.00025 m>, <Sieve, designation 0.18 mm, opening 0.00018 m>, <Sieve, designation 0.125 mm, opening 0.000125 m>, <Sieve, designation 0.09 mm, opening 9e-05 m>, <Sieve, designation 0.063 mm, opening 6.3e-05 m>, <Sieve, designation 0.045 mm, opening 4.5e-05 m>]

  List containing all of the individual `Sieve` objects, on the ISO 3310-1:2016 R20/3 series only, ordered from largest openings to smallest.

  References

  1

    ISO 3310-1:2016 - Test Sieves – Technical Requirements and Testing – Part 1: Test Sieves of Metal Wire Cloth.

`fluids.particle_size_distribution.``ISO_3310_1_R40_3` = [<Sieve, designation 125 mm, opening 0.125 m>, <Sieve, designation 106 mm, opening 0.106 m>, <Sieve, designation 90 mm, opening 0.09 m>, <Sieve, designation 75 mm, opening 0.075 m>, <Sieve, designation 63 mm, opening 0.063 m>, <Sieve, designation 53 mm, opening 0.053 m>, <Sieve, designation 45 mm, opening 0.045 m>, <Sieve, designation 37.5 mm, opening 0.0375 m>, <Sieve, designation 31.5 mm, opening 0.0315 m>, <Sieve, designation 26.5 mm, opening 0.0265 m>, <Sieve, designation 22.4 mm, opening 0.0224 m>, <Sieve, designation 19 mm, opening 0.019 m>, <Sieve, designation 16 mm, opening 0.016 m>, <Sieve, designation 13.2 mm, opening 0.0132 m>, <Sieve, designation 11.2 mm, opening 0.0112 m>, <Sieve, designation 9.5 mm, opening 0.0095 m>, <Sieve, designation 8 mm, opening 0.008 m>, <Sieve, designation 6.7 mm, opening 0.0067 m>, <Sieve, designation 5.6 mm, opening 0.0056 m>, <Sieve, designation 4.75 mm, opening 0.00475 m>, <Sieve, designation 4 mm, opening 0.004 m>, <Sieve, designation 3.35 mm, opening 0.00335 m>, <Sieve, designation 2.8 mm, opening 0.0028 m>, <Sieve, designation 2.36 mm, opening 0.00236 m>, <Sieve, designation 2 mm, opening 0.002 m>, <Sieve, designation 1.7 mm, opening 0.0017 m>, <Sieve, designation 1.4 mm, opening 0.0014 m>, <Sieve, designation 1.18 mm, opening 0.00118 m>, <Sieve, designation 1 mm, opening 0.001 m>, <Sieve, designation 0.85 mm, opening 0.00085 m>, <Sieve, designation 0.71 mm, opening 0.00071 m>, <Sieve, designation 0.6 mm, opening 0.0006 m>, <Sieve, designation 0.5 mm, opening 0.0005 m>, <Sieve, designation 0.425 mm, opening 0.000425 m>, <Sieve, designation 0.355 mm, opening 0.000355 m>, <Sieve, designation 0.3 mm, opening 0.0003 m>, <Sieve, designation 0.25 mm, opening 0.00025 m>, <Sieve, designation 0.212 mm, opening 0.000212 m>, <Sieve, designation 0.18 mm, opening 0.00018 m>, <Sieve, designation 0.15 mm, opening 0.00015 m>, <Sieve, designation 0.125 mm, opening 0.000125 m>, <Sieve, designation 0.106 mm, opening 0.000106 m>, <Sieve, designation 0.09 mm, opening 9e-05 m>, <Sieve, designation 0.075 mm, opening 7.5e-05 m>, <Sieve, designation 0.063 mm, opening 6.3e-05 m>, <Sieve, designation 0.053 mm, opening 5.3e-05 m>, <Sieve, designation 0.045 mm, opening 4.5e-05 m>, <Sieve, designation 0.038 mm, opening 3.8e-05 m>]

  List containing all of the individual `Sieve` objects, on the ISO 3310-1:2016 R40/3 series only, ordered from largest openings to smallest.

  References

  1

    ISO 3310-1:2016 - Test Sieves – Technical Requirements and Testing – Part 1: Test Sieves of Metal Wire Cloth.

`fluids.particle_size_distribution.``ISO_3310_1_R10` = [<Sieve, designation 0.036 mm, opening 3.6e-05 m>, <Sieve, designation 0.032 mm, opening 3.2e-05 m>, <Sieve, designation 0.025 mm, opening 2.5e-05 m>, <Sieve, designation 0.02 mm, opening 2e-05 m>]

  List containing all of the individual `Sieve` objects, on the ISO 3310-1:2016 R10 series only, ordered from largest openings to smallest.

  References

  1

    ISO 3310-1:2016 - Test Sieves – Technical Requirements and Testing – Part 1: Test Sieves of Metal Wire Cloth.

## Point Spacing

`fluids.particle_size_distribution.``psd_spacing`(d_min=None, d_max=None, pts=20, method='logarithmic')

  Create a particle spacing mesh in one of several ways for use in modeling discrete particle size distributions. The allowable meshes are ‘linear’, ‘logarithmic’, a geometric series specified by a Renard number such as ‘R10’, or the meshes available in one of several sieve standards.

  Parameters
    d_min float, optional

      The minimum diameter at which the mesh starts, [m]

    d_max float, optional

      The maximum diameter at which the mesh ends, [m]

    pts int, optional

      The number of points to return for the mesh (note this is not respected by sieve meshes), [-]

    method str, optional

      Either ‘linear’, ‘logarithmic’, a Renard number like ‘R10’ or ‘R5’ or ‘R2.5’, or one of the sieve standards ‘ISO 3310-1 R40/3’, ‘ISO 3310-1 R20’, ‘ISO 3310-1 R20/3’, ‘ISO 3310-1’, ‘ISO 3310-1 R10’, ‘ASTM E11’, [-]

  Returns
    ds list[float]

      The generated mesh diameters, [m]

  Notes

  Note that when specifying a Renard series, only one of d_min or d_max can be respected! Provide only one of those numbers.

  Note that when specifying a sieve standard the number of points is not respected!

  References

  1

    ASTM E11 - 17 - Standard Specification for Woven Wire Test Sieve Cloth and Test Sieves.

  2

    ISO 3310-1:2016 - Test Sieves – Technical Requirements and Testing – Part 1: Test Sieves of Metal Wire Cloth.

  Examples

      >>> psd_spacing(d_min=5e-5, d_max=5e-4, method='ISO 3310-1 R20/3')
      [6.3e-05, 9e-05, 0.000125, 0.00018, 0.00025, 0.000355, 0.0005]