\n",
"\n",
" Notebook Version 2: This notebook has been updated to reflect changes made to the package DifferentialMobilityAnalyzers.jl to work with the Julia v1 series (tested with Julia 1.1.0). To read the original supplement published with the paper please switch to v1.0.0 of the package DifferentialMobilityAnalyzers.jl and/or download the virtual machine on zenodo.org which contains a complete installation that works with Julia 0.6.4 \n",
"\n",
"This notebook demonstrates calculations related to the configuration where the first differential mobility is used as classifier. The output is conditioned in an evaporator or condenser and the resulting size distribution is measured using a second DMA in scanning mode together with a condensation particle counter (or other instrument) as detector. The notebook is a supplement to the manuscript \n",
"\n",
"Petters, M. D. (2018) A language to simplify computation of differential mobility analyzer response functions, Aerosol Science & Technology. \n",
"\n",
"The tandem DMA has first been described by Rader and McMurry (1988). Tandem DMA measurements are highly versatile. Park et al. (2008) reviewed an impressive list of different combinations of DMAs and detectors that have been used. Since then, additional measurement setups have been introduced in the literature. Figure 1 summarizes a typical volatility tandem DMA setup (VTMDA). Dried, charge equilibrated particles are classified in DMA 1. The flow is split to measure particle concentration with a condensation particle counter (CPC). The remaining flow is passed through an evaporation section, which is usually set at some temperature near or above ambient temperature. Particles evaporate controlled by evaporation kinetics and decrease in diameter. The evporated size distribution is measured using the second DMA that is operated in scanning or stepping mode. Passage through a second bipolar charger (charge neutralizer) is optional and rarely used in TDMA experiments. \n",
"\n",
"\n",
"\n",
" Figure 1. Schematic of a typical VTDMA setup. \n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Block 1. Dependencies"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" \n"
],
"text/plain": [
"HTML{String}(\" \\n\")"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/plain": [
"HTML{String}(\"\")"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/plain": [
"HTML{String}(\"\")"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" \n"
],
"text/plain": [
"HTML{String}(\" \\n\")"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"using Plots, Plots.PlotMeasures, DifferentialMobilityAnalyzers, LinearAlgebra\n",
"plotlyjs();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Block 2. Set up the two DMAs"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"t,p = 295.15, 1e5 # Temperature [K], Pressure [Pa]\n",
"qsa,β = 1.66e-5, 1/10 # Qsample [m3 s-1], Sample-to-sheath ratio,\n",
"r₁,r₂,l = 9.37e-3,1.961e-2,0.44369 # DMA geometry [m]\n",
"leff = 13.0 # DMA effective diffusion length [m]\n",
"m = 3 # Upper number of charges\n",
"Λ₁ = DMAconfig(t,p,qsa,qsa/β,r₁,r₂,l,leff,:-,m,:cylindrical) # Specify DMA with negative polarity\n",
"Λ₂ = DMAconfig(t,p,qsa,qsa/β,r₁,r₂,l,leff,:+,m,:cylindrical) # Specify DMA with negative polarity\n",
"bins,z₁,z₂ = 512, dtoz(Λ₁,250e-9),dtoz(Λ₁,20e-9) # bins, upper, lower mobility limit\n",
"δ₁ = setupDMA(Λ₁, z₁, z₂, bins); # Compute matrices\n",
"δ₂ = setupDMA(Λ₂, z₁, z₂, bins); # Compute matrices"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Block 3. Pick the main size for size selection \n",
"Select a single mobility diameter. Then compute the the electrical mobility and diameters for +1, + 2, +3 charges. \n",
"Define the size-selection function T based on transfer function, charge filter, and loss function. \n",
"Note that this is described in detail in Notebook S4 and identical to Notebook S8."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"Dm = 100.0 # Size select 100 nm mobility diameter\n",
"zˢ = dtoz(Λ₁, Dm*1e-9); # Compute corresponding electrical mobility\n",
"T = (zˢ,k,Λ,δ) -> δ.Ω(Λ,δ.Z,zˢ/k).*δ.Tc(k,δ.Dp).*δ.Tl(Λ,δ.Dp); # Transfer model through DMA"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Block 4. Define Initial Size Distribution and Evaporation Factor\n",
"In the HTDMA the particles are generally assumed to grow according to a diameter equilibrium growth factor. That growth factor is applied to all particle sizes. This assumption is usually valid for particles that have the same hygroscopicity, as the equilibrium growth factor only minimally depends on the particle size through the Kelvin effect. In the case of evaporation, the evaporation is usually controlled by evaporation kinetics. The kinetic evaporation rate is proportional to surface area and thus small particles decrease in diameter more rapidly than larger particles. The corresponding evaporation factor ef thus depends on particle size and evaporation time. Here evaporation is simulated using a simple model \n",
"