Initializing DMAs

Notation

This package is designed to work with chained DMA systems. To isolate individual DMA systems, the instruments are abstracted into the data types DMAconfig and DifferentialMobilityAnalyzer. By convention variables of type DMAconfig are assigned the letter Λ and variables of type DifferentialMobilityAnalyzer the letter δ. Subscripts or superscripts can be used to distinguish DMA1, DMA2, ... That is Λ₁, Λ₂, ... and δ₁, δ₂, ...

DMA Configuration

The DMA is an annular capacitor. The column's properties are defined by the radii $r_1$, $r_2$, the length of the aerosol path, $l$. Operation conditions are defined by the the electric potential $v$ applied across the annulus and the four flow rates: sheath flow, $q_{sh}$, polydisperse aerosol flow $q_a$, excess flow, $q_{ex}$, and monodisperse sample flow, $q_{sa}$. Throughout this work it is assumed that the flows are balanced, i.e. $q_{sh} = q_{ex}$ and $q_{sa} = q_a$. The two flows tracked are $q_{sh}$ and $q_{sa}$.

Here is an example initialization of the DMAconfig

using DifferentialMobilityAnalyzers

qsa,qsh = 1.66e-5, 8.33e-5                       # Qsample [m3 s-1], Qsheath [m3 s-1]
t,p = 295.15, 1e5                                # Temperature [K], Pressure [Pa]
r₁,r₂,l = 9.37e-3,1.961e-2,0.44369               # DMA geometry [m]
leff = 13.0                                      # DMA effective diffusion length [m]
m = 6                                            # Upper number of charges to consider
DMAtype = :cylindrical                           # specify DMA type as cylindrical or radial
polarity = :-                                    # negative :- or positive :+ polartiy

Λ = DMAconfig(t,p,qsa,qsh,r₁,r₂,l,leff,polarity,m,DMAtype)
DMAconfig(295.15, 100000.0, 1.66e-5, 8.33e-5, 0.00937, 0.01961, 0.44369, 13.0, :-, 6, :cylindrical)

The data type Λ defines the DMA in terms of flow rates, geometry and power supply polarity. The geometry parameters used in this example correspond to the TSI 3080 long column. The effective diffusion length describes Transmission Loss in the DMA column. Diffusional loss is ignored if leff = 0. The DMA configuration is used to cross reference to the appropriate Fluid Viscosity, Cunningham Correction Factor, Diffusion Coefficient, particle Charging Probability, and DMA Transfer Function for the given thermodynamic state and fluid velocity. Check out the Tutorial Session 1 and/or Notebook S1 in the Notebooks section for visualizations.

DMA Grid

The DMA grid encodes the actual operation of the instrument. The DMA is operates between an upper and lower voltage limit. The full range is usually 10V to 10kV. At higher voltages the electric field breaks down. A convenient way to bin the DMA is to work with a log spaced mobility grid, which in essence is the size distribution histogram where diameters are computed using ztod.

The DMA grid is instantiated using one of the contructor functions: setupDMA, setupSMPS, setupSMPSdata. Each of these defines the lower and upper size limit and the number of bins of the grid.

Λ = DMAconfig(t,p,qsa,qsh,r₁,r₂,l,leff,polarity,m,DMAtype) # hide
bins,z₁,z₂ = 60, vtoz(Λ,10000), vtoz(Λ,10)    # bins, upper, lower mobility limit
δ = setupDMA(Λ, z₁, z₂, bins);                # Setup DMA grid
DifferentialMobilityAnalyzer(DifferentialMobilityAnalyzers.Ω, DifferentialMobilityAnalyzers.var"#Tc#19"{Vector{Function}}(Function[DifferentialMobilityAnalyzers.var"#12#16"{DifferentialMobilityAnalyzers.var"#11#15"}(DifferentialMobilityAnalyzers.var"#11#15"(), Core.Box([-2.3484, 0.6044, 0.48, 0.0013, -0.1553, 0.032])), DifferentialMobilityAnalyzers.var"#13#17"{DifferentialMobilityAnalyzers.var"#11#15"}(DifferentialMobilityAnalyzers.var"#11#15"(), Core.Box([-44.4756, 79.3772, -62.89, 26.4492, -5.748, 0.5049])), DifferentialMobilityAnalyzers.var"#14#18"{DMAconfig, Int64}(DMAconfig(295.15, 100000.0, 1.66e-5, 8.33e-5, 0.00937, 0.01961, 0.44369, 13.0, :-, 6, :cylindrical), 3), DifferentialMobilityAnalyzers.var"#14#18"{DMAconfig, Int64}(DMAconfig(295.15, 100000.0, 1.66e-5, 8.33e-5, 0.00937, 0.01961, 0.44369, 13.0, :-, 6, :cylindrical), 4), DifferentialMobilityAnalyzers.var"#14#18"{DMAconfig, Int64}(DMAconfig(295.15, 100000.0, 1.66e-5, 8.33e-5, 0.00937, 0.01961, 0.44369, 13.0, :-, 6, :cylindrical), 5), DifferentialMobilityAnalyzers.var"#14#18"{DMAconfig, Int64}(DMAconfig(295.15, 100000.0, 1.66e-5, 8.33e-5, 0.00937, 0.01961, 0.44369, 13.0, :-, 6, :cylindrical), 6)]), DifferentialMobilityAnalyzers.Tl, [2.3374999039986058e-9, 2.6227180292155022e-9, 2.942738029210268e-9, 3.30180637495011e-9, 3.70468768522589e-9, 4.156727950248678e-9, 4.6639254696917895e-9, 5.233010446483138e-9, 5.871534292509035e-9, 6.587969831261958e-9  …  7.39182372706053e-7, 8.29376263270903e-7, 9.305754729499564e-7, 1.0441228537706294e-6, 1.1715251104890774e-6, 1.3144727936468909e-6, 1.4748627321496677e-6, 1.6548232030341418e-6, 1.8567421724113931e-6, 2.0832989823263003e-6], [2.2067422076871835e-9, 2.47600548091208e-9, 2.778123842536155e-9, 3.1171062196618526e-9, 3.49745070248002e-9, 3.924204231193954e-9, 4.403029565849473e-9, 4.940280427720258e-9, 5.543085809328936e-9, 6.2194445718463855e-9  …  7.829816818742735e-7, 8.785198964433237e-7, 9.857155362808585e-7, 1.1059910223992817e-6, 1.2409423374242898e-6, 1.3923602033146665e-6, 1.5622538431546892e-6, 1.7528776423237292e-6, 1.96676106282054e-6, 2.206742207687188e-6], [520.7939199767684, 475.400143833419, 434.6654464458974, 398.07107388900425, 365.1537823552398, 335.50087703227723, 308.7456571344293, 284.5631418644964, 262.66601799583486, 242.80079579125322  …  17.332627998437005, 16.341703322392796, 15.408619901538088, 14.529866063928942, 13.702158847283805, 12.922427334907477, 12.187797402909103, 11.49557773821495, 10.843247002957153, 10.228442034819123], [545.4166058291598, 497.47990955404, 454.4841951319621, 415.88091278841074, 381.179716185879, 349.9432269488179, 321.7822970160098, 296.35160525334175, 273.34549826257916, 252.49404174193003  …  16.82970660294775, 15.8681565005466, 14.962662127812916, 14.109828344824507, 13.306480203400067, 12.54964700732661, 11.836547711482844, 11.164577527680526, 10.53129562006637, 9.934413786010788], [0.09199474403552828, 0.09039203415149485, 0.08876418688239839, 0.08712799200436613, 0.0855000273304917, 0.08389571194382305, 0.08232861569729687, 0.08081004852888146, 0.07934890506320164, 0.07795171216008503  …  0.05891088384011689, 0.058831209816345154, 0.058756458819209094, 0.05868630614245888, 0.05862045038637595, 0.05855861163045974, 0.05850052975942833, 0.05844596292999374, 0.05839468616756477, 0.05834649008704277], [0.13158826826884654 0.0540361068534161 … 4.245442490404289e-33 0.0; 0.06051051976953903 0.13759075467730758 … 0.0 1.862072505574973e-72; … ; 0.0 0.0 … 0.01617582643866662 0.00869252625451859; 0.0 0.0 … 0.01078928831802171 0.013950602325777753], [0.18562437512229726 0.0 … 0.0 0.0; 0.0 0.25457776382582414 … 0.0 0.0; … ; 0.0 0.0 … 0.04289147637060668 0.0; 0.0 0.0 … 0.0 0.030453482432912952], [0.956963190017176 0.37549368412747836 … 0.0 0.0; 0.44005701108511885 0.9561099491459052 … 0.0 0.0; … ; 0.0 0.0 … 0.3598426979477355 0.20620467958903246; 0.0 0.0 … 0.24001534833560867 0.330937106018592], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; … ; 0.0 0.0 … 1.0 0.0; 0.0 0.0 … 0.0 1.0])

The resulting type δ contains

  • Z are the mobility bin midpoints,
  • Dp are the diameter bin midpoints (internally in units of nm)
  • Ze are the mobility bin edges,
  • De are the diameter bin edges,
  • ΔlnD is the natural log ratio of upper and lower diameter bin edge
  • the matrices 𝐀, 𝐒, 𝐎, 𝐈 used in the size distribution Inversion Routines
  • the function Ω (Transfer Function), Tc (Charging Probability), Tl (Transmission Loss)

Check out the Tutorial Session 1 and/or Notebook S1 in the Notebooks section for visualizations.