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'.", )