UPDATE | HERMiNe: A neural network for kinetic Mie polarimetry - particle size diagnostics in nanodusty plasmas
HERMiNe is a deep neural network for solving the kinetic Mie problem of light, scattered by nanoparticles. The polarization state (depicted as the ellipsometric angles Ψ, Δ) of the scatterd light is used as in-situ diagnostics for the size and refractive index of the nanoparticles. The present network is intended to be used with a-C:H particles grown from a reactive Argon-Acytelene plasma as discussed in the article cited below. Given a time series input of the ellipsometric angles Ψ and Δ, the network predicts the best fitting refractive index n, from which the particle radii can be calculated via Mie theory. The network accepts a (2 × k) matrix as input, where k is the number of data points of the time series. The first row contains the Ψ values, whereas the second row are the Δ values. The network output is a complex scalar, which is the prediction of the refractive index.
Notice:
A detailed treatise on the theory, network properties and uncertainties can be found in: A neural network approach to kinetic Mie polarimetry for particle size diagnostics in nanodusty plasmas by Schmitz et al. (DOI 10.1088/1361-6463/aceb71).
I) The network itself is provided as: II) Wrapper script for MATLAB For the MATLAB framework, the wrapper script By default, the wrapper script loads the HERMiNe network from the same folder as the script. When making a large number of function calls, it is advantageous to instead pass the net as a function argument. In this case, the network is taken from the workspace and the file loading process is omitet. Example: Detailed documentation is also available via the standard Matlab command The MATLAB script
For the kinetic Mie polarimetry to work, it is necessary for the particles to change in size (eg. via growth or etching process), while the refractive index is assumed to be constant in time. This way, each refractive index gives rise to an unique Δ(Ψ) curve.
When using the network without the recommended wrapper script (see below), be aware that the imaginary part in the raw output is raised by a factor of 10 for numerical reasons.
Repository data:
'predictN.m'
is provided to faciliate the operation of the network. It takes two vectors of polarization data as input and returns the refractive index as vector elements. The vectors must be of equal length. Example:
n = predictN(Psi,Delta);
% n is the complex refractive index a+i*b
% 'net' is the network's variable name in the workspace
n = predictN(Psi,Delta,net);'doc predictN'
III) Particle size estimater'getParticleSize.m'
gives the particle radii of a Psi-Delta curve, given the corresponding complex refractive index and the light's wavelength. The calculation is done as pointwise a best-fit of the input data to the respective reverence curve defined by N. Usage:
A = getParticleSize(Psi,Delta,N,lambda)
Cite
Rights
Use and reproduction:
ODbL 1.0 - Open Database License