{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#
Notebook S12. FORTRAN API
\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 how to use external FORTRAN code to compute the convolution matrix. The notebook is a supplement to the manuscript
\n", "\n", "Petters, M. D. (2018) A language to simplify interpretation of differential mobility analyzer response functions, Aerosol Science & Technology.
" ] }, { "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, DataFrames, DifferentialMobilityAnalyzers\n", "plotlyjs(); " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compute Convolution Matrix For DMA δ\n", "δ.Ω is defined in src/dmafunctions.jl and includes diffusional broadening. Alternative functions for Ω can easily be either added to the package or defined and passed to the T = ... statement" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 1.374549 seconds (8.50 M allocations: 257.071 MiB, 4.55% gc time)\n" ] } ], "source": [ "t,p = 296.15, 1e5 # Temperature [K], Pressure [Pa]\n", "qsa,β = 1.66e-5, 1/5 # 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 = 6 # Upper number of charges\n", "Λ = DMAconfig(t,p,qsa,qsa/β,r₁,r₂,l,leff,:-,m,:cylindrical) # Specify DMA with negative polarity\n", "bins,z₁,z₂ = 128, dtoz(Λ,1000e-9), dtoz(Λ,10e-9) # bins, upper, lower mobility limit\n", "δ = setupDMA(Λ, z₁, z₂, bins); # Compute matrices internally\n", "\n", "T = (zˢ,k,Λ,δ) -> δ.Ω(Λ,δ.Z,zˢ/k).*δ.Tc(k,δ.Dp).*δ.Tl(Λ,δ.Dp); \n", "@time 𝐀₁ = (hcat(map(zˢ->Σ(k->T(zˢ,k,Λ,δ),Λ.m),δ.Z)...))'; # compute matrix explicitly, 𝐀₁ == δ.A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Direct Call of FORTRAN Function \n", "Instead of defining alterante formulations of Ω in Julia, existing FORTRAN (or C) code can be called directly from Julia. This enables seamless integration of numerically derived transfer functions, e.g. through Monte-Carlo analysis, with the DMA language described in this work. A step-by-step tutorial with a simple example is provided.\n", "\n", "### 1. Write/Inspect FUNCTION\n", "The Knutson and Whitby (1975) transfer function.\n", "\n", "
\n", " $\\Omega(Z,z^s,\\beta) = \\begin{cases} \\frac{1}{2\\beta}\\left(\n", " \\left | \\frac{z^s}{Z}-(1+\\beta) \\right |\n", " + \\left | \\frac{z^s}{Z}-(1-\\beta) \\right |\n", " -2 \\left | \\frac{z^s}{Z}-1 \\right |\\right), z^s \\in [(1-\\beta)Z, (1+\\beta)Z]\\\\ 0, \\mathrm{otherwise} \\end{cases} $\n", "
\n", " \n", "is implementd in FORTRAN in file _omega.f_ \n", "\n", "\n", "### 2. Create Shared Library \n", "Example compile call using the GNU Fortran compiler (https://gcc.gnu.org/fortran/) from the Linux command line
\n", "```gfortran -Wall -shared -o extlib.so -fPIC omega.f```
\n", "\n", "The FORTRAN compiler mangles the function name (https://en.wikipedia.org/wiki/Name_mangling). To obtain the function name in the library, the GNU nm tool (https://en.wikipedia.org/wiki/Nm_(Unix)) can be used
\n", "```nm extlib.so```\n", "\n", "which reveals the mangled function name omega_\n", "\n", "### 3. Call Function Using ccall\n", "```julia\n", "ccall(\n", " (:omega_,\"extlib.so\"), # (function,library) tuple\n", " Float32, # Return data type\n", " (Ref{Float32},Ref{Float32},Ref{Float32}), # Input data types for Z, ZS, BETA\n", " z,zˢ,β # Pass Julia Variables z, zˢ, β to FORTRAN routine by reference\n", ") \n", "```\n", "Note that type equivalents (FORTRAN REAL = Julia Float32) are critical. See Julia documentation (https://docs.julialang.org/en/stable/manual/calling-c-and-fortran-code/) for type equivalents.\n", "\n", "Finally, FORTRAN omega.f is written for a scalar, to make it work for arrays the ccall is wrapped in a simple function. \n", "```julia\n", "Ωext = (Z,zˢ) -> map(z -> Ωccall(z,zˢ,β), Z)\n", "```\n", "\n", "Now Ωext(Z,zˢ) is structurally equivalent to the package internal call δ.Ω(Z,zˢ)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [], "source": [ "push!(Base.DL_LOAD_PATH,\"FORTRAN/\") # Add FORTRAN directory to the library load path\n", "function Ωccall(z,zˢ,β) # Wrapper for ccall\n", " return ccall((:omega_,\"extlib.so\"), Float32,(Ref{Float32},Ref{Float32},Ref{Float32}), z,zˢ,β)\n", "end\n", "Ωext = (Z,zˢ) -> map(z -> Ωccall(z,zˢ,β), Z);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compute Matrix With FORTRAN Transfer Function" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.297007 seconds (1.07 M allocations: 56.431 MiB, 5.23% gc time)\n" ] } ], "source": [ "T = (zˢ,k,Λ,δ) -> Ωext(δ.Z,zˢ/k).*δ.Tc(k,δ.Dp).*δ.Tl(Λ,δ.Dp); \n", "@time 𝐀₂ = (hcat(map(zˢ->Σ(k->T(zˢ,k,Λ,δ),Λ.m),δ.Z)...))';" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compare Results\n", "Note that the plot is the same as in Notebook S2." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "data": [ { "colorbar": { "title": "" }, "hoverinfo": "text", "legendgroup": "𝕟", "line": { "color": "rgba(0, 0, 0, 1.000)", "dash": "solid", "shape": "linear", "width": 1 }, "mode": "lines", "name": "𝕟", "showlegend": true, "text": [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ], "type": "scatter", "x": [ 974.2301114759509, 974.2301114759509, 924.8786874277354, 924.8786874277354, 878.3046691550111, 878.3046691550111, 834.3481889393921, 834.3481889393921, 792.8586540877394, 792.8586540877394, 753.6941506502379, 753.6941506502379, 716.72088302033, 716.72088302033, 681.8126506165288, 681.8126506165288, 648.8503623683711, 648.8503623683711, 617.7215890872938, 617.7215890872938, 588.3201530726685, 588.3201530726685, 560.5457535599751, 560.5457535599751, 534.3036259317616, 534.3036259317616, 509.50423203923674, 509.50423203923674, 486.0629785625659, 486.0629785625659, 463.8999600914513, 463.8999600914513, 442.93972353635814, 442.93972353635814, 423.1110505708227, 423.1110505708227, 404.3467550306618, 404.3467550306618, 386.58349252336734, 386.58349252336734, 369.76157989423945, 369.76157989423945, 353.82482261990407, 353.82482261990407, 338.7203486238117, 338.7203486238117, 324.39844740723515, 324.39844740723515, 310.8124137452751, 310.8124137452751, 297.9183954992933, 297.9183954992933, 285.6752453402016, 285.6752453402016, 274.04437636127255, 274.04437636127255, 262.9896216885578, 262.9896216885578, 252.47709827811417, 252.47709827811417, 242.47507512980405, 242.47507512980405, 232.9538461557735, 232.9538461557735, 223.88560792580108, 223.88560792580108, 215.24434247880515, 215.24434247880515, 207.0057053462162, 207.0057053462162, 199.14691888376342, 199.14691888376342, 191.64667095757187, 191.64667095757187, 184.48501898131371, 184.48501898131371, 177.64329925559613, 177.64329925559613, 171.1040415201656, 171.1040415201656, 164.8508885945756, 164.8508885945756, 158.86852095397197, 158.86852095397197, 153.14258606352075, 153.14258606352075, 147.6596322774125, 147.6596322774125, 142.4070470958495, 142.4070470958495, 137.3729995654055, 137.3729995654055, 132.54638660403418, 132.54638660403418, 127.91678303121756, 127.91678303121756, 123.47439508569919, 123.47439508569919, 119.21001721743824, 119.21001721743824, 115.11499194635783, 115.11499194635783, 111.18117258774016, 111.18117258774016, 107.40088865237442, 107.40088865237442, 103.76691373848956, 103.76691373848956, 100.27243574184128, 100.27243574184128, 96.91102921986214, 96.91102921986214, 93.67662975535656, 93.67662975535656, 90.56351017468626, 90.56351017468626, 87.5662584846511, 87.5662584846511, 84.679757401234, 84.679757401234, 81.89916535199879, 81.89916535199879, 79.21989884215968, 79.21989884215968, 76.63761608215583, 76.63761608215583, 74.14820178195427, 74.14820178195427, 71.74775302425897, 71.74775302425897, 69.43256613532915, 69.43256613532915, 67.1991244782147, 67.1991244782147, 65.04408709891113, 65.04408709891113, 62.96427816123791, 62.96427816123791, 60.95667711116978, 60.95667711116978, 59.018409515921476, 59.018409515921476, 57.14673852731519, 57.14673852731519, 55.33905692287884, 55.33905692287884, 53.592879681738054, 53.592879681738054, 51.90583705570842, 51.90583705570842, 50.275668099074096, 50.275668099074096, 48.70021462338151, 48.70021462338151, 47.17741554619552, 47.17741554619552, 45.70530160517636, 45.70530160517636, 44.28199041105745, 44.28199041105745, 42.90568181514819, 42.90568181514819, 41.57465356886666, 41.57465356886666, 40.28725725453929, 40.28725725453929, 39.04191446829791, 39.04191446829791, 37.837113237368804, 37.837113237368804, 36.67140465539934, 36.67140465539934, 35.543399720707086, 35.543399720707086, 34.45176636347973, 34.45176636347973, 33.39522664900445, 33.39522664900445, 32.37255414497374, 32.37255414497374, 31.382571441805016, 31.382571441805016, 30.424147815732887, 30.424147815732887, 29.496197025188103, 29.496197025188103, 28.597675231672675, 28.597675231672675, 27.727579036984736, 27.727579036984736, 26.88494362923607, 26.88494362923607, 26.068841030652134, 26.068841030652134, 25.27837844064742, 25.27837844064742, 24.51269666813295, 24.51269666813295, 23.77096864744226, 23.77096864744226, 23.05239803265717, 23.05239803265717, 22.35621786548085, 22.35621786548085, 21.681689312144062, 21.681689312144062, 21.02810046514094, 21.02810046514094, 20.394765205882457, 20.394765205882457, 19.78102212462023, 19.78102212462023, 19.186233494242344, 19.186233494242344, 18.60978429477162, 18.60978429477162, 18.05108128560801, 18.05108128560801, 17.509552122754915, 17.509552122754915, 16.984644518449922, 16.984644518449922, 16.475825440790462, 16.475825440790462, 15.98258035110192, 15.98258035110192, 15.504412476939615, 15.504412476939615, 15.040842118753512, 15.040842118753512, 14.591405988368976, 14.591405988368976, 14.155656577552877, 14.155656577552877, 13.733161555044394, 13.733161555044394, 13.323503190529983, 13.323503190529983, 12.926277804135976, 12.926277804135976, 12.541095240099716, 12.541095240099716, 12.167578363361892, 12.167578363361892, 11.805362577898428, 11.805362577898428, 11.454095365680846, 11.454095365680846, 11.113435845219936, 11.113435845219936, 10.78305434870879, 10.78305434870879, 10.46263201683776, 10.46263201683776, 10.151860410406812 ], "xaxis": "x1", "y": [ 0.0024746041245965284, 0.0038594485523277076, 0.0038594485523277076, 0.005929102528387386, 0.005929102528387386, 0.008973318319090868, 0.008973318319090868, 0.013380655275682645, 0.013380655275682645, 0.019661910412672106, 0.019661910412672106, 0.028475176026011125, 0.028475176026011125, 0.040651147363281556, 0.040651147363281556, 0.057216795039365206, 0.057216795039365206, 0.07941505185938752, 0.07941505185938752, 0.10871781274061984, 0.10871781274061984, 0.14682938215376573, 0.14682938215376573, 0.19567758919469677, 0.19567758919469677, 0.25739016825383454, 0.25739016825383454, 0.3342546845676346, 0.3342546845676346, 0.42866124323507565, 0.42866124323507565, 0.5430283948836575, 0.5430283948836575, 0.6797139466805409, 0.6797139466805409, 0.8409136882664873, 0.8409136882664873, 1.0285522257125637, 1.0285522257125637, 1.2441710678039881, 1.2441710678039881, 1.488819734177477, 1.488819734177477, 1.7629558919565844, 1.7629558919565844, 2.0663603515148483, 2.0663603515148483, 2.3980721756684527, 2.3980721756684527, 2.7563482269496005, 2.7563482269496005, 3.1386502686591595, 3.1386502686591595, 3.541661339310057, 3.541661339310057, 3.9613316373251535, 3.9613316373251535, 4.3929526832587475, 4.3929526832587475, 4.8312571618813305, 4.8312571618813305, 5.270540663567808, 5.270540663567808, 5.70480060359791, 5.70480060359791, 6.127886940202591, 6.127886940202591, 6.533658960112302, 6.533658960112302, 6.916142360170016, 6.916142360170016, 7.26968111749954, 7.26968111749954, 7.589079190591241, 7.589079190591241, 7.869727902887567, 7.869727902887567, 8.107715895778782, 8.107715895778782, 8.2999197586054, 8.2999197586054, 8.444074797861505, 8.444074797861505, 8.538826828554967, 8.538826828554967, 8.583767265916356, 8.583767265916356, 8.579455041928055, 8.579455041928055, 8.527429808439209, 8.527429808439209, 8.430221322083515, 8.430221322083515, 8.291359618874322, 8.291359618874322, 8.115389367179741, 8.115389367179741, 7.9078894756169795, 7.9078894756169795, 7.67549557457378, 7.67549557457378, 7.425918507886281, 7.425918507886281, 7.167946818968355, 7.167946818968355, 6.91141601658517, 6.91141601658517, 6.667123043345954, 6.667123043345954, 6.446661921672988, 6.446661921672988, 6.262157150720881, 6.262157150720881, 6.125876063346551, 6.125876063346551, 6.049710631580065, 6.049710631580065, 6.0445331158753435, 6.0445331158753435, 6.119447662029386, 6.119447662029386, 6.280979748180375, 6.280979748180375, 6.532264754548559, 6.532264754548559, 6.872312805502158, 6.872312805502158, 7.295436231792035, 7.295436231792035, 7.79092575646075, 7.79092575646075, 8.343050046459082, 8.343050046459082, 8.93143029191138, 8.93143029191138, 9.531808435469719, 9.531808435469719, 10.117187800371413, 10.117187800371413, 10.659282831886506, 10.659282831886506, 11.1301759819082, 11.1301759819082, 11.50404994965525, 11.50404994965525, 11.758847176359716, 11.758847176359716, 11.877708623572092, 11.877708623572092, 11.850061145351695, 11.850061145351695, 11.672255460919262, 11.672255460919262, 11.347700893405682, 11.347700893405682, 10.886493080584454, 10.886493080584454, 10.304580436493461, 10.304580436493461, 9.622558107941868, 9.622558107941868, 8.86420950855303, 8.86420950855303, 8.054932023902063, 8.054932023902063, 7.220184147209067, 7.220184147209067, 6.38407728833588, 6.38407728833588, 5.568209794205406, 5.568209794205406, 4.790807550988452, 4.790807550988452, 4.066199631544796, 4.066199631544796, 3.4046233041807983, 3.4046233041807983, 2.8123240046123232, 2.8123240046123232, 2.291895048100996, 2.291895048100996, 1.8427900084366085, 1.8427900084366085, 1.4619376051011883, 1.4619376051011883, 1.1443933676093867, 1.1443933676093867, 0.8839723528965866, 0.8839723528965866, 0.6738205520686276, 0.6738205520686276, 0.5068971733434257, 0.5068971733434257, 0.37635389746015974, 0.37635389746015974, 0.27580913480182356, 0.27580913480182356, 0.19952448617269994, 0.19952448617269994, 0.14249675481236748, 0.14249675481236748, 0.10048212842152858, 0.10048212842152858, 0.06996998881506991, 0.06996998881506991, 0.048122810350576355, 0.048122810350576355, 0.03269641048665063, 0.03269641048665063, 0.0219519985137206, 0.0219519985137206, 0.014568505635737148, 0.014568505635737148, 0.009560912907010968, 0.009560912907010968, 0.006207933280680651, 0.006207933280680651, 0.003990546627298048, 0.003990546627298048, 0.002541541270580726, 0.002541541270580726, 0.0016053332519068788, 0.0016053332519068788, 0.0010068340036074363, 0.0010068340036074363, 0.0006279261613377397, 0.0006279261613377397, 0.00039009736258502445, 0.00039009736258502445, 0.00024189705662681967, 0.00024189705662681967, 0.00015006199306909844, 0.00015006199306909844, 9.335932443817687e-05, 9.335932443817687e-05, 5.839422726742741e-05, 5.839422726742741e-05, 3.680567276952212e-05, 3.680567276952212e-05, 2.3422319933605454e-05, 2.3422319933605454e-05, 1.5069202860413261e-05, 1.5069202860413261e-05, 9.807184801118885e-06, 9.807184801118885e-06, 6.455030217710457e-06, 6.455030217710457e-06, 4.292914003359208e-06, 4.292914003359208e-06, 2.8805625898280096e-06, 2.8805625898280096e-06, 1.94675711167633e-06, 1.94675711167633e-06, 1.3226728789164506e-06, 1.3226728789164506e-06 ], "yaxis": "y1", "zmax": 0.1, "zmin": -0.1 }, { "colorbar": { "title": "" }, "hoverinfo": "text", "legendgroup": "𝐀₁*𝕟.N", "line": { "color": "rgba(0, 154, 250, 1.000)", "dash": "solid", "shape": "linear", "width": 1 }, "mode": "lines", "name": "𝐀₁*𝕟.N", "showlegend": true, "text": [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ], "type": "scatter", "x": [ 974.2301114759509, 974.2301114759509, 924.8786874277354, 924.8786874277354, 878.3046691550111, 878.3046691550111, 834.3481889393921, 834.3481889393921, 792.8586540877394, 792.8586540877394, 753.6941506502379, 753.6941506502379, 716.72088302033, 716.72088302033, 681.8126506165288, 681.8126506165288, 648.8503623683711, 648.8503623683711, 617.7215890872938, 617.7215890872938, 588.3201530726685, 588.3201530726685, 560.5457535599751, 560.5457535599751, 534.3036259317616, 534.3036259317616, 509.50423203923674, 509.50423203923674, 486.0629785625659, 486.0629785625659, 463.8999600914513, 463.8999600914513, 442.93972353635814, 442.93972353635814, 423.1110505708227, 423.1110505708227, 404.3467550306618, 404.3467550306618, 386.58349252336734, 386.58349252336734, 369.76157989423945, 369.76157989423945, 353.82482261990407, 353.82482261990407, 338.7203486238117, 338.7203486238117, 324.39844740723515, 324.39844740723515, 310.8124137452751, 310.8124137452751, 297.9183954992933, 297.9183954992933, 285.6752453402016, 285.6752453402016, 274.04437636127255, 274.04437636127255, 262.9896216885578, 262.9896216885578, 252.47709827811417, 252.47709827811417, 242.47507512980405, 242.47507512980405, 232.9538461557735, 232.9538461557735, 223.88560792580108, 223.88560792580108, 215.24434247880515, 215.24434247880515, 207.0057053462162, 207.0057053462162, 199.14691888376342, 199.14691888376342, 191.64667095757187, 191.64667095757187, 184.48501898131371, 184.48501898131371, 177.64329925559613, 177.64329925559613, 171.1040415201656, 171.1040415201656, 164.8508885945756, 164.8508885945756, 158.86852095397197, 158.86852095397197, 153.14258606352075, 153.14258606352075, 147.6596322774125, 147.6596322774125, 142.4070470958495, 142.4070470958495, 137.3729995654055, 137.3729995654055, 132.54638660403418, 132.54638660403418, 127.91678303121756, 127.91678303121756, 123.47439508569919, 123.47439508569919, 119.21001721743824, 119.21001721743824, 115.11499194635783, 115.11499194635783, 111.18117258774016, 111.18117258774016, 107.40088865237442, 107.40088865237442, 103.76691373848956, 103.76691373848956, 100.27243574184128, 100.27243574184128, 96.91102921986214, 96.91102921986214, 93.67662975535656, 93.67662975535656, 90.56351017468626, 90.56351017468626, 87.5662584846511, 87.5662584846511, 84.679757401234, 84.679757401234, 81.89916535199879, 81.89916535199879, 79.21989884215968, 79.21989884215968, 76.63761608215583, 76.63761608215583, 74.14820178195427, 74.14820178195427, 71.74775302425897, 71.74775302425897, 69.43256613532915, 69.43256613532915, 67.1991244782147, 67.1991244782147, 65.04408709891113, 65.04408709891113, 62.96427816123791, 62.96427816123791, 60.95667711116978, 60.95667711116978, 59.018409515921476, 59.018409515921476, 57.14673852731519, 57.14673852731519, 55.33905692287884, 55.33905692287884, 53.592879681738054, 53.592879681738054, 51.90583705570842, 51.90583705570842, 50.275668099074096, 50.275668099074096, 48.70021462338151, 48.70021462338151, 47.17741554619552, 47.17741554619552, 45.70530160517636, 45.70530160517636, 44.28199041105745, 44.28199041105745, 42.90568181514819, 42.90568181514819, 41.57465356886666, 41.57465356886666, 40.28725725453929, 40.28725725453929, 39.04191446829791, 39.04191446829791, 37.837113237368804, 37.837113237368804, 36.67140465539934, 36.67140465539934, 35.543399720707086, 35.543399720707086, 34.45176636347973, 34.45176636347973, 33.39522664900445, 33.39522664900445, 32.37255414497374, 32.37255414497374, 31.382571441805016, 31.382571441805016, 30.424147815732887, 30.424147815732887, 29.496197025188103, 29.496197025188103, 28.597675231672675, 28.597675231672675, 27.727579036984736, 27.727579036984736, 26.88494362923607, 26.88494362923607, 26.068841030652134, 26.068841030652134, 25.27837844064742, 25.27837844064742, 24.51269666813295, 24.51269666813295, 23.77096864744226, 23.77096864744226, 23.05239803265717, 23.05239803265717, 22.35621786548085, 22.35621786548085, 21.681689312144062, 21.681689312144062, 21.02810046514094, 21.02810046514094, 20.394765205882457, 20.394765205882457, 19.78102212462023, 19.78102212462023, 19.186233494242344, 19.186233494242344, 18.60978429477162, 18.60978429477162, 18.05108128560801, 18.05108128560801, 17.509552122754915, 17.509552122754915, 16.984644518449922, 16.984644518449922, 16.475825440790462, 16.475825440790462, 15.98258035110192, 15.98258035110192, 15.504412476939615, 15.504412476939615, 15.040842118753512, 15.040842118753512, 14.591405988368976, 14.591405988368976, 14.155656577552877, 14.155656577552877, 13.733161555044394, 13.733161555044394, 13.323503190529983, 13.323503190529983, 12.926277804135976, 12.926277804135976, 12.541095240099716, 12.541095240099716, 12.167578363361892, 12.167578363361892, 11.805362577898428, 11.805362577898428, 11.454095365680846, 11.454095365680846, 11.113435845219936, 11.113435845219936, 10.78305434870879, 10.78305434870879, 10.46263201683776, 10.46263201683776, 10.151860410406812 ], "xaxis": "x2", "y": [ 0.0007770939610468036, 0.0013938971764144792, 0.0013938971764144792, 0.002268410557928573, 0.002268410557928573, 0.003517138265475692, 0.003517138265475692, 0.0053133461197836865, 0.0053133461197836865, 0.007919303852726885, 0.007919303852726885, 0.011645369384065983, 0.011645369384065983, 0.016895930927827416, 0.016895930927827416, 0.024187842955649352, 0.024187842955649352, 0.03419533174290268, 0.03419533174290268, 0.04776409400637066, 0.04776409400637066, 0.06589098244250477, 0.06589098244250477, 0.08972574221409751, 0.08972574221409751, 0.12056877014313651, 0.12056877014313651, 0.15994657041377852, 0.15994657041377852, 0.2095524516760832, 0.2095524516760832, 0.2712706308927807, 0.2712706308927807, 0.34709417517905394, 0.34709417517905394, 0.4390605989295887, 0.4390605989295887, 0.5491779954632974, 0.5491779954632974, 0.6793817136460153, 0.6793817136460153, 0.8314979272978572, 0.8314979272978572, 1.0071147666559153, 1.0071147666559153, 1.207522207984368, 1.207522207984368, 1.4335763605333123, 1.4335763605333123, 1.6856710417059886, 1.6856710417059886, 1.9636513991533253, 1.9636513991533253, 2.26675634141052, 2.26675634141052, 2.5935765406433156, 2.5935765406433156, 2.9420283687397646, 2.9420283687397646, 3.3093490004815003, 3.3093490004815003, 3.6921055158979748, 3.6921055158979748, 4.086249720184743, 4.086249720184743, 4.487164143002176, 4.487164143002176, 4.889747782426054, 4.889747782426054, 5.288519810241225, 5.288519810241225, 5.677733457089409, 5.677733457089409, 6.05151232127264, 6.05151232127264, 6.403995672187674, 6.403995672187674, 6.729491267345719, 6.729491267345719, 7.022631487371003, 7.022631487371003, 7.278528507058505, 7.278528507058505, 7.492924350784254, 7.492924350784254, 7.662332015176142, 7.662332015176142, 7.784164334015764, 7.784164334015764, 7.85684782296945, 7.85684782296945, 7.879919249322505, 7.879919249322505, 7.8541029727799945, 7.8541029727799945, 7.781367042707133, 7.781367042707133, 7.664955493845493, 7.664955493845493, 7.509393212502966, 7.509393212502966, 7.320458226566504, 7.320458226566504, 7.105114540143303, 7.105114540143303, 6.871397088256339, 6.871397088256339, 6.628239572381286, 6.628239572381286, 6.385236470088863, 6.385236470088863, 6.1523329725924745, 6.1523329725924745, 5.939441395229565, 5.939441395229565, 5.7559898075272535, 5.7559898075272535, 5.610417874611434, 5.610417874611434, 5.509645317169955, 5.509645317169955, 5.458548634324507, 5.458548634324507, 5.459490106109563, 5.459490106109563, 5.511947817355836, 5.511947817355836, 5.612294956826641, 5.612294956826641, 5.753769928887669, 5.753769928887669, 5.926665689287141, 5.926665689287141, 6.118748006968491, 6.118748006968491, 6.315889893210428, 6.315889893210428, 6.5028858812527695, 6.5028858812527695, 6.66438829617243, 6.66438829617243, 6.7858912159051075, 6.7858912159051075, 6.854679043171117, 6.854679043171117, 6.860657049534591, 6.860657049534591, 6.796991196847841, 6.796991196847841, 6.660502901601299, 6.660502901601299, 6.451788885737259, 6.451788885737259, 6.175063703547915, 6.175063703547915, 5.837749448606746, 5.837749448606746, 5.449860221643531, 5.449860221643531, 5.023245558116528, 5.023245558116528, 4.5707655857694895, 4.5707655857694895, 4.105470813486544, 4.105470813486544, 3.6398518978318446, 3.6398518978318446, 3.1852111737435598, 3.1852111737435598, 2.7511904371172053, 2.7511904371172053, 2.3454708885821884, 2.3454708885821884, 1.973643574988143, 1.973643574988143, 1.6392339191587464, 1.6392339191587464, 1.343853193018702, 1.343853193018702, 1.0874435581146917, 1.0874435581146917, 0.8685814328487167, 0.8685814328487167, 0.6848058155891149, 0.6848058155891149, 0.5329428506747327, 0.5329428506747327, 0.4094042973588601, 0.4094042973588601, 0.31044461252778865, 0.31044461252778865, 0.23236820731556745, 0.23236820731556745, 0.17168443583386356, 0.17168443583386356, 0.1252126239207504, 0.1252126239207504, 0.09014278795003787, 0.09014278795003787, 0.06405966334507746, 0.06405966334507746, 0.044938434162906694, 0.044938434162906694, 0.031120383501663646, 0.031120383501663646, 0.02127585270954853, 0.02127585270954853, 0.014360676440235521, 0.014360676440235521, 0.009570881906856989, 0.009570881906856989, 0.0062990820786065225, 0.0062990820786065225, 0.004094774810892043, 0.004094774810892043, 0.0026297511607646764, 0.0026297511607646764, 0.0016690413237936165, 0.0016690413237936165, 0.001047278796201364, 0.001047278796201364, 0.0006500150502861261, 0.0006500150502861261, 0.0003993302597686074, 0.0003993302597686074, 0.00024301966601012406, 0.00024301966601012406, 0.00014665192587994447, 0.00014665192587994447, 8.786288812260472e-05, 8.786288812260472e-05, 5.2340504341796316e-05, 5.2340504341796316e-05, 3.105595038876021e-05, 3.105595038876021e-05, 1.83908180041231e-05, 1.83908180041231e-05, 1.0893852021893721e-05, 1.0893852021893721e-05, 6.470348797482831e-06, 6.470348797482831e-06, 3.862721668663984e-06, 3.862721668663984e-06, 2.3231120541417587e-06, 2.3231120541417587e-06, 1.410180762526443e-06, 1.410180762526443e-06, 8.64477026536898e-07, 8.64477026536898e-07, 5.333647931782661e-07, 5.333647931782661e-07, 3.2790837191391557e-07, 3.2790837191391557e-07, 1.979518959078399e-07, 1.979518959078399e-07 ], "yaxis": "y2", "zmax": 0.1, "zmin": -0.1 }, { "colorbar": { "title": "" }, "hoverinfo": "text", "legendgroup": "𝐀₂*𝕟.N", "line": { "color": "rgba(227, 111, 71, 1.000)", "dash": "solid", "shape": "linear", "width": 1 }, "mode": "lines", "name": "𝐀₂*𝕟.N", "showlegend": true, "text": [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ], "type": "scatter", "x": [ 974.2301114759509, 974.2301114759509, 924.8786874277354, 924.8786874277354, 878.3046691550111, 878.3046691550111, 834.3481889393921, 834.3481889393921, 792.8586540877394, 792.8586540877394, 753.6941506502379, 753.6941506502379, 716.72088302033, 716.72088302033, 681.8126506165288, 681.8126506165288, 648.8503623683711, 648.8503623683711, 617.7215890872938, 617.7215890872938, 588.3201530726685, 588.3201530726685, 560.5457535599751, 560.5457535599751, 534.3036259317616, 534.3036259317616, 509.50423203923674, 509.50423203923674, 486.0629785625659, 486.0629785625659, 463.8999600914513, 463.8999600914513, 442.93972353635814, 442.93972353635814, 423.1110505708227, 423.1110505708227, 404.3467550306618, 404.3467550306618, 386.58349252336734, 386.58349252336734, 369.76157989423945, 369.76157989423945, 353.82482261990407, 353.82482261990407, 338.7203486238117, 338.7203486238117, 324.39844740723515, 324.39844740723515, 310.8124137452751, 310.8124137452751, 297.9183954992933, 297.9183954992933, 285.6752453402016, 285.6752453402016, 274.04437636127255, 274.04437636127255, 262.9896216885578, 262.9896216885578, 252.47709827811417, 252.47709827811417, 242.47507512980405, 242.47507512980405, 232.9538461557735, 232.9538461557735, 223.88560792580108, 223.88560792580108, 215.24434247880515, 215.24434247880515, 207.0057053462162, 207.0057053462162, 199.14691888376342, 199.14691888376342, 191.64667095757187, 191.64667095757187, 184.48501898131371, 184.48501898131371, 177.64329925559613, 177.64329925559613, 171.1040415201656, 171.1040415201656, 164.8508885945756, 164.8508885945756, 158.86852095397197, 158.86852095397197, 153.14258606352075, 153.14258606352075, 147.6596322774125, 147.6596322774125, 142.4070470958495, 142.4070470958495, 137.3729995654055, 137.3729995654055, 132.54638660403418, 132.54638660403418, 127.91678303121756, 127.91678303121756, 123.47439508569919, 123.47439508569919, 119.21001721743824, 119.21001721743824, 115.11499194635783, 115.11499194635783, 111.18117258774016, 111.18117258774016, 107.40088865237442, 107.40088865237442, 103.76691373848956, 103.76691373848956, 100.27243574184128, 100.27243574184128, 96.91102921986214, 96.91102921986214, 93.67662975535656, 93.67662975535656, 90.56351017468626, 90.56351017468626, 87.5662584846511, 87.5662584846511, 84.679757401234, 84.679757401234, 81.89916535199879, 81.89916535199879, 79.21989884215968, 79.21989884215968, 76.63761608215583, 76.63761608215583, 74.14820178195427, 74.14820178195427, 71.74775302425897, 71.74775302425897, 69.43256613532915, 69.43256613532915, 67.1991244782147, 67.1991244782147, 65.04408709891113, 65.04408709891113, 62.96427816123791, 62.96427816123791, 60.95667711116978, 60.95667711116978, 59.018409515921476, 59.018409515921476, 57.14673852731519, 57.14673852731519, 55.33905692287884, 55.33905692287884, 53.592879681738054, 53.592879681738054, 51.90583705570842, 51.90583705570842, 50.275668099074096, 50.275668099074096, 48.70021462338151, 48.70021462338151, 47.17741554619552, 47.17741554619552, 45.70530160517636, 45.70530160517636, 44.28199041105745, 44.28199041105745, 42.90568181514819, 42.90568181514819, 41.57465356886666, 41.57465356886666, 40.28725725453929, 40.28725725453929, 39.04191446829791, 39.04191446829791, 37.837113237368804, 37.837113237368804, 36.67140465539934, 36.67140465539934, 35.543399720707086, 35.543399720707086, 34.45176636347973, 34.45176636347973, 33.39522664900445, 33.39522664900445, 32.37255414497374, 32.37255414497374, 31.382571441805016, 31.382571441805016, 30.424147815732887, 30.424147815732887, 29.496197025188103, 29.496197025188103, 28.597675231672675, 28.597675231672675, 27.727579036984736, 27.727579036984736, 26.88494362923607, 26.88494362923607, 26.068841030652134, 26.068841030652134, 25.27837844064742, 25.27837844064742, 24.51269666813295, 24.51269666813295, 23.77096864744226, 23.77096864744226, 23.05239803265717, 23.05239803265717, 22.35621786548085, 22.35621786548085, 21.681689312144062, 21.681689312144062, 21.02810046514094, 21.02810046514094, 20.394765205882457, 20.394765205882457, 19.78102212462023, 19.78102212462023, 19.186233494242344, 19.186233494242344, 18.60978429477162, 18.60978429477162, 18.05108128560801, 18.05108128560801, 17.509552122754915, 17.509552122754915, 16.984644518449922, 16.984644518449922, 16.475825440790462, 16.475825440790462, 15.98258035110192, 15.98258035110192, 15.504412476939615, 15.504412476939615, 15.040842118753512, 15.040842118753512, 14.591405988368976, 14.591405988368976, 14.155656577552877, 14.155656577552877, 13.733161555044394, 13.733161555044394, 13.323503190529983, 13.323503190529983, 12.926277804135976, 12.926277804135976, 12.541095240099716, 12.541095240099716, 12.167578363361892, 12.167578363361892, 11.805362577898428, 11.805362577898428, 11.454095365680846, 11.454095365680846, 11.113435845219936, 11.113435845219936, 10.78305434870879, 10.78305434870879, 10.46263201683776, 10.46263201683776, 10.151860410406812 ], "xaxis": "x2", "y": [ 0.0009839996697902263, 0.0017058213452978543, 0.0017058213452978543, 0.0027207171787273113, 0.0027207171787273113, 0.004147633074548624, 0.004147633074548624, 0.006230260417681067, 0.006230260417681067, 0.0092337175240018, 0.0092337175240018, 0.013502709830991801, 0.013502709830991801, 0.019483066587528956, 0.019483066587528956, 0.02774471305756822, 0.02774471305756822, 0.03903402106405206, 0.03903402106405206, 0.05423816665324879, 0.05423816665324879, 0.07442606222034598, 0.07442606222034598, 0.10082375368730803, 0.10082375368730803, 0.1348010507143928, 0.1348010507143928, 0.1779460115044818, 0.1779460115044818, 0.23202793460453533, 0.23202793460453533, 0.2989971527986838, 0.2989971527986838, 0.38086017588835214, 0.38086017588835214, 0.4796698792832601, 0.4796698792832601, 0.5974245930857233, 0.5974245930857233, 0.7360229273398806, 0.7360229273398806, 0.8972089515260985, 0.8972089515260985, 1.0824746117178818, 1.0824746117178818, 1.292975999092428, 1.292975999092428, 1.5294047728542761, 1.5294047728542761, 1.7919497960530058, 1.7919497960530058, 2.080233511055542, 2.080233511055542, 2.393269855331771, 2.393269855331771, 2.7293922649770184, 2.7293922649770184, 3.0862577987636453, 3.0862577987636453, 3.4608505570272525, 3.4608505570272525, 3.8495010089918487, 3.8495010089918487, 4.247933780785379, 4.247933780785379, 4.651333495118147, 4.651333495118147, 5.054441724968087, 5.054441724968087, 5.451654627575781, 5.451654627575781, 5.837152817023726, 5.837152817023726, 6.205040033595402, 6.205040033595402, 6.549488704388579, 6.549488704388579, 6.8648935194156335, 6.8648935194156335, 7.146035412280775, 7.146035412280775, 7.388225945275771, 7.388225945275771, 7.587463349260979, 7.587463349260979, 7.74056439991928, 7.74056439991928, 7.845283802244918, 7.845283802244918, 7.900437022075944, 7.900437022075944, 7.905973947632363, 7.905973947632363, 7.863064321587084, 7.863064321587084, 7.774138376955018, 7.774138376955018, 7.642910949086225, 7.642910949086225, 7.474375310805115, 7.474375310805115, 7.274770474981089, 7.274770474981089, 7.051486181596986, 7.051486181596986, 6.8129385539170055, 6.8129385539170055, 6.568369566938247, 6.568369566938247, 6.327593159942378, 6.327593159942378, 6.100636359010375, 6.100636359010375, 5.897371742594073, 5.897371742594073, 5.726967704992642, 5.726967704992642, 5.59746636682529, 5.59746636682529, 5.515165831744654, 5.515165831744654, 5.484110141387382, 5.484110141387382, 5.5057242115806915, 5.5057242115806915, 5.578368287078759, 5.578368287078759, 5.697269657906187, 5.697269657906187, 5.854506717311169, 5.854506717311169, 6.0393008019824554, 6.0393008019824554, 6.238540300211177, 6.238540300211177, 6.437414394222278, 6.437414394222278, 6.620364816003146, 6.620364816003146, 6.772061347111096, 6.772061347111096, 6.878283426588492, 6.878283426588492, 6.926987688520956, 6.926987688520956, 6.909065601957782, 6.909065601957782, 6.818833412459147, 6.818833412459147, 6.654432566306713, 6.654432566306713, 6.417806563031934, 6.417806563031934, 6.114452176571921, 6.114452176571921, 5.75297005753425, 5.75297005753425, 5.344294966651238, 5.344294966651238, 4.900980129767026, 4.900980129767026, 4.436269586286647, 4.436269586286647, 3.963346239258425, 3.963346239258425, 3.494533124692059, 3.494533124692059, 3.040810549919971, 3.040810549919971, 2.611268616379415, 2.611268616379415, 2.2129543366737567, 2.2129543366737567, 1.850740903736222, 1.850740903736222, 1.5274783921894917, 1.5274783921894917, 1.2441056461069542, 1.2441056461069542, 0.9999672131440202, 0.9999672131440202, 0.7931570821971692, 0.7931570821971692, 0.6208449930972562, 0.6208449930972562, 0.47955188188930675, 0.47955188188930675, 0.36551061670356, 0.36551061670356, 0.2749137337118356, 0.2749137337118356, 0.20401533881964584, 0.20401533881964584, 0.14938606442075308, 0.14938606442075308, 0.1079286299369491, 0.1079286299369491, 0.0769409379943696, 0.0769409379943696, 0.05410252987141613, 0.05410252987141613, 0.03752049098814954, 0.03752049098814954, 0.0256830920720186, 0.0256830920720186, 0.017330446980166756, 0.017330446980166756, 0.011541975709475315, 0.011541975709475315, 0.007579847997754613, 0.007579847997754613, 0.004904927916369227, 0.004904927916369227, 0.0031387800381888218, 0.0031387800381888218, 0.001970904392236526, 0.001970904392236526, 0.0012256286452174948, 0.0012256286452174948, 0.0007574607753155142, 0.0007574607753155142, 0.0004479629903128612, 0.0004479629903128612, 0.0002669675042753709, 0.0002669675042753709, 0.00015853689504323292, 0.00015853689504323292, 8.431095354596036e-05, 8.431095354596036e-05, 4.781672853772759e-05, 4.781672853772759e-05, 2.227313671704589e-05, 2.227313671704589e-05, 1.33132607801097e-05, 1.33132607801097e-05, 3.8023823753250005e-06, 3.8023823753250005e-06, 3.810804227069002e-06, 3.810804227069002e-06, 8.489721041421263e-07, 8.489721041421263e-07, -1.4756112712579415e-06, -1.4756112712579415e-06, -6.544978504966647e-07, -6.544978504966647e-07, -1.175995396386921e-06, -1.175995396386921e-06, -2.459056085210698e-07, -2.459056085210698e-07, -2.388463425072924e-07, -2.388463425072924e-07, -7.128664548171457e-07, -7.128664548171457e-07, -2.2335785651180665e-07, -2.2335785651180665e-07 ], "yaxis": "y2", "zmax": 0.1, "zmin": -0.1 } ], "layout": { "annotations": [], "height": 252, "legend": { "bgcolor": "rgba(255, 255, 255, 1.000)", "bordercolor": "rgba(0, 0, 0, 1.000)", "font": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 14 }, "tracegroupgap": 0, "x": 1, "y": 1 }, "margin": { "b": 20, "l": 0, "r": 0, "t": 20 }, "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "showlegend": true, "width": 648, "xaxis1": { "anchor": "y1", "domain": [ 0.1311728395061728, 0.5299326010174654 ], "gridcolor": "rgba(0, 0, 0, 0.100)", "gridwidth": 2, "linecolor": "rgba(0, 0, 0, 1.000)", "mirror": false, "range": [ 0.9030899869919435, 3 ], "showgrid": true, "showline": true, "showticklabels": true, "tickangle": 0, "tickcolor": "rgb(0, 0, 0)", "tickfont": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 17 }, "tickmode": "array", "ticks": "inside", "ticktext": [ "10^1", "10^2", "10^3" ], "tickvals": [ 10, 100, 1000 ], "title": "Diameter (nm)", "titlefont": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 17 }, "type": "log", "visible": true, "zeroline": false, "zerolinecolor": "rgba(0, 0, 0, 1.000)" }, "xaxis2": { "anchor": "y2", "domain": [ 0.5951646090534979, 0.9939243705647904 ], "gridcolor": "rgba(0, 0, 0, 0.100)", "gridwidth": 2, "linecolor": "rgba(0, 0, 0, 1.000)", "mirror": false, "range": [ 0.9030899869919435, 3 ], "showgrid": true, "showline": true, "showticklabels": true, "tickangle": 0, "tickcolor": "rgb(0, 0, 0)", "tickfont": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 17 }, "tickmode": "array", "ticks": "inside", "ticktext": [ "10^1.0", "10^1.5", "10^2.0", "10^2.5", "10^3.0" ], "tickvals": [ 10, 31.622776601683793, 100, 316.22776601683796, 1000 ], "title": "Diameter (nm)", "titlefont": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 17 }, "type": "log", "visible": true, "zeroline": false, "zerolinecolor": "rgba(0, 0, 0, 1.000)" }, "yaxis1": { "anchor": "x1", "domain": [ 0.14789817939424243, 0.9843769528808899 ], "gridcolor": "rgba(0, 0, 0, 0.100)", "gridwidth": 2, "linecolor": "rgba(0, 0, 0, 1.000)", "mirror": false, "range": [ -0.35632989635409745, 12.234039842599069 ], "showgrid": true, "showline": true, "showticklabels": true, "tickangle": 0, "tickcolor": "rgb(0, 0, 0)", "tickfont": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 17 }, "tickmode": "array", "ticks": "inside", "ticktext": [ "0.0", "2.5", "5.0", "7.5", "10.0" ], "tickvals": [ 0, 2.5, 5, 7.5, 10 ], "title": "Concentration (cm⁻³)", "titlefont": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 17 }, "type": "-", "visible": true, "zeroline": false, "zerolinecolor": "rgba(0, 0, 0, 1.000)" }, "yaxis2": { "anchor": "x2", "domain": [ 0.14789817939424243, 0.9843769528808899 ], "gridcolor": "rgba(0, 0, 0, 0.100)", "gridwidth": 2, "linecolor": "rgba(0, 0, 0, 1.000)", "mirror": false, "range": [ 0, 8.2 ], "showgrid": true, "showline": true, "showticklabels": true, "tickangle": 0, "tickcolor": "rgb(0, 0, 0)", "tickfont": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 17 }, "tickmode": "array", "ticks": "inside", "ticktext": [ "0", "2", "4", "6", "8" ], "tickvals": [ 0, 2, 4, 6, 8 ], "title": "", "titlefont": { "color": "rgba(0, 0, 0, 1.000)", "family": "Nimbus Sans L", "size": 17 }, "type": "-", "visible": true, "zeroline": false, "zerolinecolor": "rgba(0, 0, 0, 1.000)" } } }, "image/svg+xml": [ "10251002510000.02.55.07.510.0102510025100002468𝕟𝐀₁*𝕟.N𝐀₂*𝕟.NDiameter (nm)Diameter (nm)Concentration (cm⁻³)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "𝕟 = DMALognormalDistribution([[230, 50, 1.3], [280, 140, 1.6]],δ)\n", "figure(\"Nimbus Sans L\", 2, 4.5, 1.75, 8)\n", "p1 = plot(𝕟.Dp, 𝕟.N, xaxis = :log10, xticks = [10, 100, 1000], left_margin = 15px, label = \"𝕟\",\n", " ylabel = \"Concentration (cm⁻³)\", xlim = (8,1000), color = :black, xlabel = \"Diameter (nm)\", \n", " lt = :steppre)\n", "\n", "p2 = plot(𝕟.Dp, 𝐀₁*𝕟.N, xaxis = :log10, left_margin = 25px, lt = :steppre,ylim = (0,8.2),\n", " xlim = (8,1000), xlabel = \"Diameter (nm)\", label = \"𝐀₁*𝕟.N\")\n", "\n", "p2 = plot!(𝕟.Dp, 𝐀₂*𝕟.N, lt = :steppre, label = \"𝐀₂*𝕟.N\")\n", "\n", "plot(p1,p2,grid=(1,2), fmt = :svg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Figure 1.__ The two models do not exactly agree. This is because Ωext and δ.Ω(Z,zˢ) are different models of the transfer function. δ.Ω(Z,zˢ) includes diffusional broadening. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "Knutson, E. O. & K. T. Whitby (1975) Aerosol classification by electric mobility: Apparatus, theory, and applications. J. Aerosol Sci. (6)443-451, DOI:10.1016/0021-8502(75)90060-9" ] } ], "metadata": { "kernelspec": { "display_name": "Julia 1.1.0", "language": "julia", "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.1.0" } }, "nbformat": 4, "nbformat_minor": 2 }