nexatom-downloads

DLS Analysis

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 Reference

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.

Data Structures: nexatom_dls_analysis_result_t

When 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.

C Example: Configuring a DLS Measurement

// 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.