Dynamic Light Scattering (DLS) is a physics model that sits on top of the Multi-Tau Correlator (CORM) to determine the size distribution profile of small particles in suspension or polymers in solution.
When enabled, the C++ background thread automatically applies Cumulant expansion models to the CORM g²(τ) decay curve, translating the correlation time directly into physical metrics like Hydrodynamic Radius and Polydispersity Index (PDI) based on the provided experimental conditions (temperature, viscosity, scattering angle).
| Function | Parameters (In/Out) | Returns | Description |
|---|---|---|---|
nexatom_tt_enable_dls_analysis |
[In] nexatom_tt_handle device[In] bool enable |
nexatom_error_code_t |
Enables host DLS analysis. An available selected result has analysis_type == 1; enabling alone does not guarantee it. |
nexatom_tt_set_dls_experimental_conditions |
[In] nexatom_tt_handle device[In] double wavelength_nm[In] double angle_deg[In] double temperature_c[In] double viscosity_mPa_s[In] double refractive_index |
nexatom_error_code_t |
Configures the physical constants (laser wavelength, scattering angle, fluid temperature, fluid viscosity, and refractive index) required by the Stokes-Einstein equation. |
nexatom_tt_set_dls_fit_range |
[In] nexatom_tt_handle device[In] uint32_t start_index[In] uint32_t end_index |
nexatom_error_code_t |
Restricts the Cumulant fit to a specific subset of the 80 CORM bins to avoid early-lag afterpulsing artifacts or late-lag baseline noise. |
nexatom_tt_enable_dls_cumulant_analysis |
[In] nexatom_tt_handle device[In] bool enable |
nexatom_error_code_t |
Toggles the 2nd/3rd order Cumulant expansion solver (yielding PDI). |
nexatom_tt_set_dls_fitting_bounds |
[In] nexatom_tt_handle device[In] double gamma_min[In] double gamma_max[In] double baseline_min[In] double baseline_max |
nexatom_error_code_t |
Applies strict numerical constraints to the Levenberg-Marquardt solver to prevent unphysical outputs. gamma_min/gamma_max bound the decay rate, baseline_min/baseline_max bound the correlation baseline. |
nexatom_tt_set_dls_fitting_control |
[In] nexatom_tt_handle device[In] double tolerance[In] int max_iterations[In] double initial_beta[In] double initial_baseline |
nexatom_error_code_t |
Tunes the internal solver: tolerance sets convergence threshold, max_iterations caps the solver loop, initial_beta and initial_baseline seed the starting estimates. |
nexatom_dls_analysis_result_tWhen a DLS result is available and selected (analysis_type == 1), the CORM callback populates analysis_result.dls. Enabling analysis alone does not guarantee a result. Check the main fit_result validity, normalization and finite values; nested reserved quality fields remain zero.
| Field | Type | Description |
|---|---|---|
hydrodynamic_radius_nm |
float |
Estimated particle radius in nanometers via Stokes-Einstein. |
diffusion_coefficient_um2_s |
float |
Translational diffusion coefficient (Dt) in μm²/s. |
z_average_diameter_nm |
float |
Intensity-weighted mean size (2 × Rh). |
polydispersity |
float |
Dimensionless Polydispersity Index (PDI). Values < 0.1 are highly monodisperse. |
mean_decay_rate |
float |
First cumulant (Γ) characterizing the primary decay. |
variance / skewness |
float |
Second (μ₂) and third (μ₃) cumulant terms representing distribution width and asymmetry. |
viscosity_cp |
float |
Sample viscosity in centipoise (echoes input). |
temperature_kelvin |
float |
Sample temperature (echoes input). |
scattering_angle_deg |
float |
Detection angle (echoes input). |
wavelength_nm |
float |
Laser wavelength (echoes input). |
refractive_index |
float |
Sample refractive index (echoes input). |
baseline_stability |
float |
Reserved/currently zero. |
coherence_factor |
float |
Reserved/currently zero; fit_result.beta carries β. |
signal_to_noise |
float |
Reserved/currently zero; fit_result.signal_to_noise carries SNR. |
// Fragment: illustrative sample parameters; measure/validate them for the experiment.
// Check every return in complete code and preserve the acquisition owner's cleanup.
double wavelength = 632.8; // HeNe laser (nm)
double angle = 90.0; // 90-degree scattering
double temp_c = 25.0; // Room temp
double viscosity = 0.89; // Water viscosity (mPa*s)
double ref_index = 1.333; // Water refractive index
nexatom_tt_set_dls_experimental_conditions(
my_device, wavelength, angle, temp_c, viscosity, ref_index
);
// 2. Enable Cumulant Analysis (Standard approach)
nexatom_tt_enable_dls_cumulant_analysis(my_device, true);
// 3. Exclude the first 5 bins to avoid detector afterpulsing
nexatom_tt_set_dls_fit_range(my_device, 5, 80);
// 4. Activate the DLS solver pipeline
nexatom_tt_enable_dls_analysis(my_device, true);
Read the analysis guide for result selection and validity. Fit bounds constrain a model but cannot by themselves establish that an experiment matches it.