auxi.modelling.process.materials.psd module

This module provides psd material and material package classes that can do size distribution calculations.

class auxi.modelling.process.materials.psd.Material(name, file_path, description=None)

Bases: auxi.core.objects.NamedObject

Represents a particulate material consisting of multiple particle size classes.

  • name – The material’s name.
  • file_path – The path of the material definition file.
  • description – the material’s description

The format of the text file is as follows:

  • The lines are space separated. The values in a line are separated by one or more spaces.
  • The first line is a heading line.
  • All subsequent lines contain a particle size, followed by mass fractions.
  • Particle sizes are indicated in [meter].
  • The first column lists the particle sizes in the material. Each class must be interpreted as “mass fraction retained”. In other words if the size class is indicated as 307.2E-3, it means that it is the class of material retained on a 307.2mm screen, and can also be though of as +307.2mm material. The first size class represents the largest particles. The final size class should be zero, as it represents all material that passed through the smallest aperture screen.
  • All subsequent columns describe assays of the material.

The following is an example of a material text file:

Compound   FeedA  MillCharge
307.2E-3   0.20   0.02
108.6E-3   0.18   0.06
38.4E-3    0.17   0.04
13.6E-3    0.07   0.03
4.8E-3     0.13   0.03
1.7E-3     0.07   0.04
600.0E-6   0.06   0.18
210.0E-6   0.02   0.50
75.0E-6    0.10   0.10
0.0E0      0.00   0.00
add_assay(name, assay)

Add an assay to the material.

  • name – The name of the new assay.
  • assay – A numpy array containing the size class mass fractions for the assay. The sequence of the assay’s elements must correspond to the sequence of the material’s size classes.

Create an empty array to store an assay. The array’s length will be equal to the number of size classes in the material.

Returns:A floating point array.
create_package(assay=None, mass=0.0, normalise=True)

Create a MaterialPackage based on the specified parameters.

  • assay – The name of the assay based on which the package must be created.
  • mass – [kg] The mass of the package.
  • normalise – Indicates whether the assay must be normalised before creating the package.

The created MaterialPackage.


Calculate the total of the specified assay.

Parameters:name – The name of the assay.
Returns:The total mass fraction of the specified assay.

Determine the index of the specified size class.

Parameters:size_class – The formula and phase of the specified size class, e.g. ‘Fe2O3[S1]’.
Returns:The index of the specified size class.
class auxi.modelling.process.materials.psd.MaterialPackage(material, size_class_masses)

Bases: auxi.core.objects.Object

A package of a material consisting of multiple particle size classes.

Properties defined here:

  • material – A reference to the Material to which self belongs.
  • size_class_masses – [kg] [kg] The masses of the size classes in the package.

Add another psd material package to this material package.

Parameters:other – The other material package.

Set all the size class masses in the package to zero.


Create a complete copy of self.

Returns:A MaterialPackage that is identical to self.

Extract ‘other’ from self, modifying self and returning the extracted material as a new package.


Can be one of the following:

  • float: A mass equal to other is extracted from self. Self is reduced by other and the extracted package is returned as a new package.
  • tuple (size class, mass): The other tuple specifies the mass of a size class to be extracted. It is extracted from self and the extracted mass is returned as a new package.
  • string: The ‘other’ string specifies the size class to be extracted. All of the mass of that size class will be removed from self and a new package created with it.
Returns:A new material package containing the material that was extracted from self.

Determine the assay of self.

Returns:[mass fractions] An array containing the assay of self.

Determine the mass of self.

returns: [kg] The mass of self.


Determine the mass of the specified size class in self.

Parameters:size_class – The formula and phase of the size class, e.g. ‘Fe2O3[S1]’
Returns:[kg] The mass of the size class in self.

Determine the mass fraction of the specified size class in self.

Parameters:size_class – The formula and phase of the size class, e.g. ‘Fe2O3[S1]’
Returns:The mass fraction of the size class in self.