Source code for ts_ids_components.particle_sizer.shared
"""
Shared method components used across particle sizer techniques (DLS, ELS,
SLS, and Laser Diffraction).
These describe the sample environment and the optical constants needed to
convert a light-scattering measurement into a particle size: the dispersant
(:py:class:`Solvent`), the analyte particle's optical properties
(:py:class:`Particle`), the measurement :py:class:`Temperature`, and the
:py:class:`Plate` for plate-reader instruments.
"""
from ts_ids_core.annotations import NullableString
from ts_ids_core.base.ids_element import IdsElement
from ts_ids_core.base.ids_field import IdsField
from ts_ids_core.schema import RawValueUnit
[docs]
class Temperature(IdsElement):
"""Target (set-point) and actual (measured) temperature for a measurement."""
target: RawValueUnit = IdsField(
description="Target/set-point temperature configured for the measurement."
)
actual: RawValueUnit = IdsField(
description="Actual temperature measured during the measurement."
)
[docs]
class Solvent(IdsElement):
"""
Dispersant / solvent medium the particles are suspended in. Its
refractive index and viscosity are required inputs to the Stokes-Einstein
relation used to convert a measured diffusion coefficient into a
hydrodynamic size, and its dielectric constant is required for ELS/zeta
potential calculations.
"""
id_: NullableString = IdsField(
alias="id",
description="Vendor identifier for the dispersant in the instrument's material database.",
)
name: NullableString = IdsField(description="Name of the dispersant, e.g. 'Water'.")
refractive_index: RawValueUnit = IdsField(
description="Refractive index of the dispersant at the measurement wavelength."
)
viscosity: RawValueUnit = IdsField(
description="Dynamic viscosity of the dispersant at the measurement temperature."
)
dielectric_constant: RawValueUnit = IdsField(
description="Dielectric constant (relative permittivity) of the dispersant, used for ELS/zeta calculations."
)
abundance: RawValueUnit = IdsField(
description="Relative abundance/fraction of this dispersant, when the medium is a mixture."
)
[docs]
class Particle(IdsElement):
"""
Optical properties of the analyte particle (material). The refractive
index and absorption index are the material constants used by the
scattering model (e.g. Mie theory for laser diffraction) to convert a
scattering pattern into a size distribution.
The ``*_blue`` variants carry the constants at a second, shorter (blue)
wavelength, reported by laser diffraction instruments (e.g. Mastersizer)
that use a blue light source in addition to the red laser to improve
resolution of fine particles.
"""
name: NullableString = IdsField(
description="Name of the particle material, e.g. 'Polystyrene latex'."
)
refractive_index: RawValueUnit = IdsField(
description="Real part of the particle's refractive index (at the primary/red wavelength)."
)
absorption_index: RawValueUnit = IdsField(
description="Imaginary part (absorption) of the particle's refractive index (at the primary/red wavelength)."
)
refractive_index_blue: RawValueUnit = IdsField(
description="Real part of the particle's refractive index at the blue wavelength (laser diffraction)."
)
absorption_index_blue: RawValueUnit = IdsField(
description="Imaginary part (absorption) of the particle's refractive index at the blue wavelength (laser diffraction)."
)
density: RawValueUnit = IdsField(
description="Density of the particle material, used to convert between volume- and mass-weighted results."
)
shape_model: NullableString = IdsField(
description="Particle shape model assumed by the analysis, e.g. 'spherical'."
)
[docs]
class Plate(IdsElement):
"""
Well plate used by plate-reader DLS instruments (e.g. DynaPro Plate
Reader), where each well holds a separate sample.
"""
brand: NullableString = IdsField(description="Manufacturer/brand of the plate.")
name: NullableString = IdsField(
description="Name or catalog identifier of the plate."
)
type_: NullableString = IdsField(
alias="type",
description="Plate type/format, e.g. '96-well' or '384-well'.",
)