%$Id: particle_model_cloud_physics.tex 1634 2015-08-31 13:29:42Z raasch $ \input{header_tmp.tex} %\input{header_lectures.tex} \usepackage[utf8]{inputenc} \usepackage{ngerman} \usepackage{pgf} \usepackage{subfigure} \usepackage{units} \usepackage{multimedia} \usepackage{hyperref} \newcommand{\event}[1]{\newcommand{\eventname}{#1}} \usepackage{xmpmulti} \usepackage{tikz} \usetikzlibrary{shapes,arrows,positioning} \usetikzlibrary{calc} %neues paket \usetikzlibrary{decorations.markings} %neues paket \usetikzlibrary{decorations.pathreplacing} %neues paket \def\Tiny{\fontsize{4pt}{4pt}\selectfont} \usepackage{amsmath} \usepackage{amssymb} \usepackage{multicol} \usepackage{pdfcomment} \usepackage{graphicx} \usepackage{listings} \usepackage{textcomp} %neues paket \lstset{showspaces=false,language=fortran,basicstyle= \ttfamily,showstringspaces=false,captionpos=b} \institute{Institute of Meteorology and Climatology, Leibniz Universit{\"a}t Hannover} \selectlanguage{english} \date{last update: \today} \event{PALM Seminar} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline} { \begin{beamercolorbox}[rightskip=-0.1cm]& {\includegraphics[height=0.65cm]{imuk_logo.pdf}\hfill \includegraphics[height=0.65cm]{luh_logo.pdf}} \end{beamercolorbox} \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex, leftskip=.3cm,rightskip=0.3cm plus1fil]{title in head/foot} {\leavevmode{\usebeamerfont{author in head/foot}\insertshortauthor} \hfill \eventname \hfill \insertframenumber \; / \inserttotalframenumber} \end{beamercolorbox} \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot} \end{beamercolorbox} } %\logo{\includegraphics[width=0.3\textwidth]{luhimuk_logo.pdf}} \title[PALM's Lagrangian Particle Model]{PALM's Lagrangian Particle Model} \author{PALM group} \begin{document} % Folie 1 \begin{frame} \titlepage \end{frame} \section{The embedded Lagrangian particle model} \subsection{The embedded Lagrangian particle model} % Folie 2 \begin{frame} \frametitle{Overview} \begin{itemize} \item<1-> The Lagrangian particle model embedded in PALM can be used for different purposes: \begin{itemize} \footnotesize \item Cloud droplet simulations \item Dispersion modeling / Footprint analysis \item Visualization \end{itemize} \vspace{3mm} \item<2-> Therefore the particles can have different properties, e.g.: \begin{itemize} \footnotesize \item Particles can be transported \textbf{passively} with the \textbf{resolved-scale} flow \item Particle transport by \textbf{subgrid-scale (SGS) turbulence} can be included by switching on a stochastic model (parameter: \texttt{use\underline{ }sgs\underline{ }for\underline{ }particles}) \item Particles can be given a mass and thus an \textbf{inertia} and a \textbf{radius} which affects their \textbf{flow resistance} (parameter: \texttt{density\underline{ }ratio}, \texttt{radius}) \end{itemize} \end{itemize} \end{frame} % Folie 3 \begin{frame} \frametitle{Basics} \small \begin{itemize} \item<1-> The particle model is switched on by adding a \texttt{\&particles\underline{ }par} NAMELIST to the parameter file (PARIN). This NAMELIST has to be added \textbf{after} the \texttt{\&d3par}-NAMELIST. \item All parameters for steering the particle model are described in: Documentation $\rightarrow$ Model steering $\rightarrow$ Parameters $\rightarrow$ Particles (http://palm.muk.uni-hannover.de/) \item \textbf{The particle model requires to use a constant vertical grid spacing (due to the implemented scheme for the interpolation of information from the LES grid to particle positions, that is required for the calculation of particle velocities)!} \end{itemize} \end{frame} % Folie 4 \begin{frame} \frametitle{Basic Particle Parameters (I)} \small Parameters that define the locations of particle source(s): \begin{itemize} \item Step I: Define the volume of the particle source \end{itemize} \begin{tikzpicture} \definecolor{darkgreen1}{rgb}{0.2,0.7,0.2} \definecolor{darkgreen2}{rgb}{0.4,0.7,0.4} \definecolor{darkgreen3}{rgb}{0.1,0.6,0.2} % Draw the box \onslide<2-> \draw[-] (0,0) -- (5,0); \draw[-] (0,0) -- (0,4); \draw[-] (5,4) -- (5,0); \draw[-] (0,4) -- (5,4); \draw[-] (2,1.5) -- (7,1.5); \draw[-] (2,1.5) -- (2,5.5); \draw[-] (7,5.5) -- (7,1.5); \draw[-] (2,5.5) -- (7,5.5); \draw[-] (0,0) -- (2,1.5); \draw[-] (5,0) -- (7,1.5); \draw[-] (5,4) -- (7,5.5); \draw[-] (0,4) -- (2,5.5); \node at (4,5) {\small Total model domain}; % Draw coordinate system \node at (8.5,2.5) [scale=1.0] {% \begin{tikzpicture} \draw[->] (0,0) -- (1,0); \draw[->] (0,0) -- (0,1); \draw[->] (0,0) -- (0.5,0.5); \node at (-0.2,0.9) {z}; \node at (0.9,-0.2) {x}; \node at (0.65,0.3) {y}; \end{tikzpicture} }; % Draw green box \onslide<3-> \draw[fill=darkgreen1,draw=darkgreen1,opacity=.95] (0,1) -- (3,1) -- (3,2.5) -- (0,2.5) -- cycle ; \draw[fill=darkgreen2,draw=darkgreen2,opacity=.95] (3,1) -- (4,1.75) -- (4,3.25) -- (3,2.5) -- cycle ; \draw[fill=darkgreen3,draw=darkgreen3,opacity=.95] (0,2.5) -- (3,2.5) -- (4,3.25) -- (1,3.25) -- cycle ; \node at (1.5,2) {\small \glqq Source Volume\grqq }; % Dashed green lines \draw[dashed, ultra thick, color=darkgreen3] (0,1) -- (0,0); \draw[dashed, ultra thick, color=darkgreen3] (3,1) -- (3,0); \draw[dashed, ultra thick, color=darkgreen3] (3,1) -- (5,1); \draw[dashed, ultra thick, color=darkgreen3] (4,1.75) -- (6,1.75); \draw[dashed, ultra thick, color=darkgreen3] (5,1) -- (5,0); \draw[dashed, ultra thick, color=darkgreen3] (6,1.75) -- (6,0.75); % Add Labels \node at (1,-0.25) {\scriptsize \texttt{psl} (default 0.0)}; \node at (4.25,-0.25) {\scriptsize \texttt{psr} (default \texttt{nx*dx})}; \node at (7,0) {\scriptsize \texttt{pss} (default 0.0)}; \node at (8,0.75) {\scriptsize \texttt{psn} (default \texttt{ny*dy})}; \node [text width=4em] at (-0.7,0.5) {\scriptsize \texttt{psb} (default zu(\texttt{nz}/2))}; \node [text width=4em] at (-0.7,2) {\scriptsize \texttt{pst} (default zu(\texttt{nz}/2))}; \onslide<1-> \end{tikzpicture} \end{frame} % Folie 5 \begin{frame} \frametitle{Basic Particle Parameters (II)} \small Parameters that define the locations of particle source(s): \begin{itemize} \item Step IIa: Define the points of single particle release \end{itemize} \begin{tikzpicture} \definecolor{darkgreen}{rgb}{0.0,0.35,0.0} \definecolor{darkgreen3}{rgb}{0.2,0.6,0.2} \definecolor{darkred}{rgb}{0.5,0.0,0.0} % Draw green box (except for one line that is drawn later) \draw[-, ultra thick, color=darkgreen3] (0,0) -- (5,0); \draw[-, ultra thick, color=darkgreen3] (0,0) -- (0,4); \draw[-, ultra thick, color=darkgreen3] (0,4) -- (5,4); \draw[-, ultra thick, color=darkgreen3] (2,1.5) -- (7,1.5); \draw[-, ultra thick, color=darkgreen3] (2,1.5) -- (2,5.5); \draw[-, ultra thick, color=darkgreen3] (7,5.5) -- (7,1.5); \draw[-, ultra thick, color=darkgreen3] (2,5.5) -- (7,5.5); \draw[-, ultra thick, color=darkgreen3] (0,0) -- (2,1.5); \draw[-, ultra thick, color=darkgreen3] (5,0) -- (7,1.5); \draw[-, ultra thick, color=darkgreen3] (5,4) -- (7,5.5); \draw[-, ultra thick, color=darkgreen3] (0,4) -- (2,5.5); \node at (4,5) {\small \glqq Source Volume\grqq}; % Draw circles and dashed lines \node[circle, draw, thick, fill=red!90, scale=1.1] (rd1) at (0,0) {}; \node at (0,0) {1}; \onslide<2-> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd2) at (2,0) {}; \draw[dashed, ultra thick, color=blue] (rd1) -- (rd2); \node at (2,0) {2}; \node at (1,-0.25) {\footnotesize \texttt{pdx}}; \onslide<3-> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd3) at (4,0) {}; \draw[dashed, ultra thick, color=blue] (rd2) -- (rd3); \node at (4,0) {3}; \onslide<4> \node[circle, draw, thick, fill=red!90, scale=1.1] (rdx1) at (6,0) {}; \draw[dashed, ultra thick, color=blue] (rd3) -- (rdx1); \node[scale=1.6] at (6,0) {X}; \onslide<6-> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd4) at (1.5,1.125) {}; \draw[dashed, ultra thick, color=darkgreen] (rd1) -- (rd4); \node at (1.5,1.125) {4}; \node at (1.1,0.43) {\footnotesize \texttt{pdy}}; \onslide<7-> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd5) at (3.5,1.125) {}; \draw[dashed, ultra thick, color=blue] (rd4) -- (rd5); \node at (3.5,1.125) {5}; \onslide<7-> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd6) at (5.5,1.125) {}; \draw[dashed, ultra thick, color=blue] (rd5) -- (rd6); \node at (5.5,1.125) {6}; \onslide<8> \node[circle, draw, thick, fill=red!90, scale=1.1] (rdx2) at (3,2.25) {}; \draw[dashed, ultra thick, color=darkgreen] (rd4) -- (rdx2); \node[scale=1.6] at (3,2.25) {X}; \onslide<10-> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd7) at (0,2.2) {}; \draw[dashed, ultra thick, color=darkred] (rd1) -- (rd7); \node at (0,2.2) {7}; \node at (0.32,1.3) {\footnotesize \texttt{pdz}}; \onslide<11-> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd8) at (2,2.2) {}; \draw[dashed, ultra thick, color=blue] (rd7) -- (rd8); \node at (2,2.2) {8}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd9) at (4,2.2) {}; \draw[dashed, ultra thick, color=blue] (rd8) -- (rd9); \node at (4,2.2) {9}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd10) at (1.5,3.325) {}; \draw[dashed, ultra thick, color=darkgreen] (rd7) -- (rd10); \node[scale=0.8] at (1.5,3.325) {10}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd11) at (3.5,3.325) {}; \draw[dashed, ultra thick, color=blue] (rd10) -- (rd11); \node[scale=0.8] at (3.5,3.325) {11}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd12) at (5.5,3.325) {}; \draw[dashed, ultra thick, color=blue] (rd11) -- (rd12); \node[scale=0.8] at (5.5,3.325) {12}; \onslide<12> \node[circle, draw, thick, fill=red!90, scale=1.1] (rdx3) at (0,4.4) {}; \draw[dashed, ultra thick, color=darkred] (rd7) -- (rdx3); \node[scale=1.6] at (0,4.4) {X}; % Draw rest of the green box \onslide<1-13> \draw[-, ultra thick, color=darkgreen3] (5,4) -- (5,0); % Draw coordinate system \node at (7.2,0.1) [scale=1.0] {% \begin{tikzpicture} \draw[->] (0,0) -- (1,0); \draw[->] (0,0) -- (0,1); \draw[->] (0,0) -- (0.5,0.5); \node at (-0.2,0.9) {z}; \node at (0.9,-0.2) {x}; \node at (0.65,0.3) {y}; \end{tikzpicture} }; % Add text \node at (9.2,3) [scale=0.99] {% \begin{tikzpicture} \node[text width=11em] {\footnotesize Choosing a too large number of particles may cause memory problems!\\}; \end{tikzpicture} }; \end{tikzpicture} \end{frame} % Folie 6 \begin{frame} \frametitle{Basic Particle Parameters (III)} \small Parameters that define the locations of particle source(s): \begin{itemize} \item Step IIb: Random start positions of particles \end{itemize} \begin{tikzpicture} \definecolor{darkgreen3}{rgb}{0.2,0.6,0.2} % Draw green box \draw[-, ultra thick, color=darkgreen3] (0,0) -- (5,0); \draw[-, ultra thick, color=darkgreen3] (0,0) -- (0,4); \draw[-, ultra thick, color=darkgreen3] (5,4) -- (5,0); \draw[-, ultra thick, color=darkgreen3] (0,4) -- (5,4); \draw[-, ultra thick, color=darkgreen3] (2,1.5) -- (7,1.5); \draw[-, ultra thick, color=darkgreen3] (2,1.5) -- (2,5.5); \draw[-, ultra thick, color=darkgreen3] (7,5.5) -- (7,1.5); \draw[-, ultra thick, color=darkgreen3] (2,5.5) -- (7,5.5); \draw[-, ultra thick, color=darkgreen3] (0,0) -- (2,1.5); \draw[-, ultra thick, color=darkgreen3] (5,0) -- (7,1.5); \draw[-, ultra thick, color=darkgreen3] (5,4) -- (7,5.5); \draw[-, ultra thick, color=darkgreen3] (0,4) -- (2,5.5); % Draw circles and dashed lines \onslide<1-2> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd3) at (4,0) {}; \node at (4,0) {3}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd9) at (4,2.2) {}; \node at (4,2.2) {9}; \onslide<1> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd1) at (0,0) {}; \node at (0,0) {1}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd2) at (2,0) {}; \node at (2,0) {2}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd4) at (1.5,1.125) {}; \node at (1.5,1.125) {4}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd5) at (3.5,1.125) {}; \node at (3.5,1.125) {5}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd6) at (5.5,1.125) {}; \node at (5.5,1.125) {6}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd7) at (0,2.2) {}; \node at (0,2.2) {7}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd8) at (2,2.2) {}; \node at (2,2.2) {8}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd10) at (1.5,3.325) {}; \node[scale=0.8] at (1.5,3.325) {10}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd11) at (3.5,3.325) {}; \node[scale=0.8] at (3.5,3.325) {11}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd12) at (5.5,3.325) {}; \node[scale=0.8] at (5.5,3.325) {12}; \onslide<2> \node[circle, draw, thick, fill=red!90, scale=1.1] (rd1n) at (1.0,0.3) {}; \node at (1.0,0.3) {1}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd2n) at (1.8,0.3) {}; \node at (1.8,0.3) {2}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd4n) at (1.7,1.0) {}; \node at (1.7,1.0) {4}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd5n) at (3.0,1.2) {}; \node at (3.0,1.2) {5}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd6n) at (4.5,1.125) {}; \node at (4.5,1.125) {6}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd7n) at (0.9,2.8) {}; \node at (0.9,2.8) {7}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd8n) at (3,1.8) {}; \node at (3,1.8) {8}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd10n) at (2.1,3) {}; \node[scale=0.8] at (2.1,3) {10}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd11n) at (4,4.5) {}; \node[scale=0.8] at (4,4.5) {11}; \node[circle, draw, thick, fill=red!90, scale=1.1] (rd12n) at (4.5,3.2) {}; \node[scale=0.8] at (4.5,3.2) {12}; % Draw coordinate system \onslide<1-> \node at (9,2) [scale=1.0] {% \begin{tikzpicture} \draw[->] (0,0) -- (1,0); \draw[->] (0,0) -- (0,1); \draw[->] (0,0) -- (0.5,0.5); \node at (-0.2,0.9) {z}; \node at (0.9,-0.2) {x}; \node at (0.65,0.3) {y}; \end{tikzpicture} }; % Add text \node at (9.2,4) {\scriptsize \texttt{random\underline{ }start\underline{ }position = .T.}}; \end{tikzpicture} \end{frame} % Folie 7 \begin{frame} \frametitle{Basic Particle Parameters (IV)} \small Parameters that define the period of particle release: \\ \vspace{10mm} \begin{columns}[T] \begin{column}{1.15\textwidth} \begin{tikzpicture} \definecolor{darkred}{rgb}{0.6,0.1,0.1} \definecolor{grey}{rgb}{0.25,0.25,0.25} \draw[->, ultra thick] (0,0) -- (10.5,0); \draw[->, ultra thick] (0,0.5) -- (0,-0.5); \node at (10.7,0) {t}; \node at (0,-0.8) {0}; \node[text width=6em] at (0.2,-1.9) {\scriptsize Start of LES, determination of particle release points}; \onslide<2-> \draw[->, ultra thick, color=red] (2.5,0.5) -- (2.5,-0.5); \node at (2.8,-0.8) {\scriptsize \texttt{particle\underline{ }advection\underline{ }start}}; \node[text width=6em] at (2.8,-2.1) {\scriptsize Calculation of particle trajectories begins (default value: 0.0)}; \onslide<3-> \draw[->, ultra thick, color=red] (5.3,0.5) -- (5.3,-0.5); \node[text width=4em] at (4.9,-1.7) {\scriptsize Release of a new set of particles}; \node at (3.75,0.3) {\scriptsize \texttt{dt\underline{ }prel}}; \draw[<->, thick, color=blue] (2.5,0.6) -- (5.25,0.6); \onslide<4-> \draw[->, ultra thick, color=darkred] (6.5,0.5) -- (6.5,-0.5); \node[text width=4em] at (6.7,-1.9) {\scriptsize Deletion of the first set of particles}; \draw[<->, thick, color=darkred] (2.5,0.9) -- (6.5,0.9); \node at (4.5,1.2) {\scriptsize \texttt{particle\underline{ }maximum\underline{ }age}}; \onslide<5-> \draw[->, ultra thick, color=darkred] (7.95,0.5) -- (7.95,-0.5); \node[text width=4em] at (8.25,-2.1) {\scriptsize No release of new particles after this time}; \node at (8.0,-0.8) {\scriptsize \texttt{end\underline{ }time\underline{ }prel}}; \draw[<->, thick, color=blue] (5.35,0.6) -- (8.1,0.6); \onslide<6-> \draw[->, ultra thick, color=grey] (9.3,0.5) -- (9.3,-0.5); \node[text width=4em] at (9.8,-1.9) {\scriptsize Deletion of the second set of particles}; \draw[<->, thick, color=darkred] (5.35,1.6) -- (9.3,1.6); \onslide<1-> \end{tikzpicture} \end{column} \end{columns} \end{frame} % Folie 8 \begin{frame}[t] \frametitle{Basic Particle Parameters (VI)} \small \vspace{-2mm} Parameters that define the boundary conditions for particles\\ \scriptsize \ \\ \uncover<10>{In PALM particles are \textbf{always} reflected at \textbf{vertical walls and roofs of buildings.}}\\ \ \\ \begin{tikzpicture} \definecolor{darkgreen}{rgb}{0.2,0.7,0.2} % Bottom \uncover<2>{\draw[fill=darkgreen,draw=darkgreen,opacity=.85] (0,0) -- (2,1.5) -- (7,1.5) -- (5,0) -- cycle ;} % Top \uncover<4>{\draw[fill=darkgreen,draw=darkgreen,opacity=.85] (0,4) -- (2,5.5) -- (7,5.5) -- (5,4) -- cycle ;} % Front \uncover<6>{\draw[fill=darkgreen,draw=darkgreen,opacity=.85] (0,0) -- (0,4) -- (5,4) -- (5,0) -- cycle ;} % Back \uncover<6>{\draw[fill=darkgreen,draw=darkgreen,opacity=.85] (2,1.5) -- (7,1.5) -- (7,5.5) -- (2,5.5) -- cycle ;} % Left \uncover<8>{\draw[fill=darkgreen,draw=darkgreen,opacity=.85] (0,0) -- (0,4) -- (2,5.5) -- (2,1.5) -- cycle ;} % Right \uncover<8>{\draw[fill=darkgreen,draw=darkgreen,opacity=.85] (5,0) -- (5,4) -- (7,5.5) -- (7,1.5) -- cycle ;} % Draw Box \draw[-] (0,0) -- (5,0); \draw[-] (0,0) -- (0,4); \draw[-] (5,4) -- (5,0); \draw[-] (0,4) -- (5,4); \draw[-] (2,1.5) -- (7,1.5); \draw[-] (2,1.5) -- (2,5.5); \draw[-] (7,5.5) -- (7,1.5); \draw[-] (2,5.5) -- (7,5.5); \draw[-] (0,0) -- (2,1.5); \draw[-] (5,0) -- (7,1.5); \draw[-] (5,4) -- (7,5.5); \draw[-] (0,4) -- (2,5.5); \node at (4,5) {\small Total model domain}; % Labels \uncover<2->{\node at (2.7,0.15) {\scriptsize \texttt{bc\underline{ }par\underline{ }b = 'reflect', 'absorb'}};} \uncover<4->{\node at (3.0,4.25) {\scriptsize \texttt{bc\underline{ }par\underline{ }t = 'absorb', 'reflect'}};} \uncover<6->{\node at (3.25,2.15) {\scriptsize \texttt{bc\underline{ }par\underline{ }ns = 'cyclic', 'reflect', 'absorb'}};} \uncover<8->{\node[text width=15.5em] at (7.7,3.7) {\scriptsize \texttt{bc\underline{ }par\underline{ }lr = 'cyclic', 'reflect',}\\ \texttt{\hspace{5em} 'absorb'}};} % Draw coordinate system \node at (9,2) [scale=1.0] {% \begin{tikzpicture} \draw[->] (0,0) -- (1,0); \draw[->] (0,0) -- (0,1); \draw[->] (0,0) -- (0.5,0.5); \node at (-0.2,0.9) {z}; \node at (0.9,-0.2) {x}; \node at (0.65,0.3) {y}; \end{tikzpicture} }; \end{tikzpicture} \end{frame} % Folie 9 \begin{frame} \frametitle{Basic Particle Parameters (VIII)} \small Parameters that steer the output of particle data \begin{itemize} \item There are two output files containing particle data: \begin{itemize} \item \texttt{DATA\underline{ }1D\underline{ }PTS\underline{ }NETCDF}: \hspace{0.5em} contains particle time series, output\\ \hspace{11.0em}interval is controlled by parameter\\ \hspace{11.0em}\texttt{dt\underline{ }dopts}, one file for the total\\ \hspace{11.0em}domain, e.g. time series of the total\\ \hspace{11.0em}number of particles, mean particle\\ \hspace{11.0em}velocity, mean subgrid scale part of\\ \hspace{11.0em}the particle velocity, mean particle\\ \hspace{11.0em}location etc. \vspace{1mm} \item \texttt{PARTICLE\underline{ }DATA}: \hspace{3.5em}contains \textbf{all} particle data (see slide\\ \hspace{11.0em}The Data Type Used for Particles),\\ \hspace{11.0em}output is controlled by\\ \hspace{11.0em}\texttt{dt\underline{ }write\underline{ }particle\underline{ }data},\\ \hspace{11.0em}one file per subdomain/PE \end{itemize} \end{itemize} \end{frame} % Folie 10 \begin{frame}[fragile] \frametitle{An Example of a Particle NAMELIST} \vspace{+0.1cm} \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=1.0\textwidth, font=\footnotesize,scale=1.0] \begin{tikzpicture} \node [yellow] {\begin{lstlisting} &particles_par bc_par_b = 'absorb', density_ratio = 0.001, radius = 1.0E-6, psb = 35.0, pst = 255.0, psl = 935.0, psr = 1065.0, pss = -5.0, psn = 30.0, pdx = 20.0, pdy = 20.0, pdz = 20.0, random_start_position = .TRUE., / \end{lstlisting} }; \end{tikzpicture} \vspace{-5mm} \begin{itemize} \item<2-> \small Several (up to 10) so-called particle groups with different density ratio, radius, and starting positions can be defined by setting parameter \texttt{number\underline{ }of\underline{ }particle\underline{ }groups} to the required number of groups, and by assigning values for each particle groups to the respective parameters (e.\,g., \texttt{density\_ratio = 0.001, 0.0}, etc.) \end{itemize} \end{frame} \section{Theory} \subsection{Theory} % Folie 11 \begin{frame}[t] \frametitle{Theory of the LPM (I) -- Passive Advection (I)} \small Parameter that defines the mode of particle movement: \vspace{+2mm} The concept of LES ...\\ \begin{center} \includegraphics[scale=0.1]{particle_model_figures/basic_particle_parameters_5.png} \end{center} \vspace{-5mm} \onslide<2-> ... transferred to the embedded particle model leads to particle velocity:\\ \begin{center} $\vec{V}_{{\text{particle}}} = \vec{V}_{{\text{resolved}}} + \vec{V}_{{\text{subgrid}}}$\\ \end{center} \onslide<3-> \scriptsize Accordingly, the particle movement is a result of: \begin{itemize} \scriptsize \item<3-> resolved flow $\vec{V}_{{\text{resolved}}}$ \vspace{-2mm} \item<3-> and subgrid scale turbulence $\vec{V}_{{\text{subgrid}}}$ \begin{itemize} \scriptsize \item<4-> $\vec{V}_{{\text{subgrid}}}=0$, if \texttt{use\underline{ }sgs\underline{ }for\underline{ }particles = .F.} (default value) \item<4-> $\vec{V}_{{\text{subgrid}}}\ne0$, if \texttt{use\underline{ }sgs\underline{ }for\underline{ }particles = .T. } \end{itemize} \end{itemize} \end{frame} % Folie 12 \begin{frame}[t] \frametitle{Theory of the LPM (II) -- Passive Advection (II)} \footnotesize \vspace{1mm} \begin{itemize} \item The position of the particle is found by integrating $ \dfrac{d \vec{X}_{\text{particle}}}{dt} = \vec{V}_{\text{particle}}$ \item The particle's velocity consist of a \textcolor{red}{resolved} and an optional \textcolor{blue}{subgrid part}:\\ \begin{center} $\vec{V}_{\text{particle}} = \textcolor{red}{\vec{V}_{\text{res}}} (+ \textcolor{blue}{\vec{V}_{\text{sub}}})$\\ \end{center} \item<1-> The resolved part $\textcolor{red}{\vec{V}_{\text{res}}}$ is derived by a tri-linear interpolation: \begin{tikzpicture}[remember picture, overlay] \node [shift={(1.7 cm,2.8cm)}] at (current page.south west) {% \begin{tikzpicture}[scale=0.3,remember picture, overlay] \draw[-] (0,0) -- (5,0); \draw[-] (0,0) -- (0,4); \draw[-] (5,4) -- (5,0); \draw[-] (0,4) -- (5,4); \draw[-] (2,1.5) -- (7,1.5); \draw[-] (2,1.5) -- (2,5.5); \draw[-] (7,5.5) -- (7,1.5); \draw[-] (2,5.5) -- (7,5.5); \draw[-] (0,0) -- (2,1.5); \draw[-] (5,0) -- (7,1.5); \draw[-] (5,4) -- (7,5.5); \draw[-] (0,4) -- (2,5.5); \node[circle, fill=blue, scale=0.5] at (0,0) {}; \node[circle, fill=blue, scale=0.5] at (5,0) {}; \node[circle, fill=blue, scale=0.5] at (0,4) {}; \node[circle, fill=blue, scale=0.5] at (5,4) {}; \node[circle, fill=blue, scale=0.5] at (2,1.5) {}; \node[circle, fill=blue, scale=0.5] at (7,1.5) {}; \node[circle, fill=blue, scale=0.5] at (7,5.5) {}; \node[circle, fill=blue, scale=0.5] at (2,5.5) {}; \node[circle, fill=red, scale=0.5] at (2.5,1.1) {}; \draw[->, ultra thick, color=red] (7.4,0.7) -- (2.9,1.1); \node at (9.0,0.1) {\scriptsize \textcolor{red}{particle location}}; \draw[->, ultra thick] (8,2.5) -- (12,2.5); \end{tikzpicture} }; \node [shift={(5.8 cm,2.8cm)}] at (current page.south west) {% \begin{tikzpicture}[scale=0.3,remember picture, overlay] \definecolor{darkgreen}{rgb}{0.2,0.7,0.2} \draw[-] (0,0) -- (5,0); \draw[-] (0,4) -- (5,4); \draw[-] (2,1.5) -- (7,1.5); \draw[-] (2,5.5) -- (7,5.5); \draw[-] (0,0) -- (2,1.5); \draw[-] (5,0) -- (7,1.5); \draw[-] (5,4) -- (7,5.5); \draw[-] (0,4) -- (2,5.5); \node[circle, fill=blue, scale=0.5] at (0,0) {}; \node[circle, fill=blue, scale=0.5] at (5,0) {}; \node[circle, fill=blue, scale=0.5] at (0,4) {}; \node[circle, fill=blue, scale=0.5] at (5,4) {}; \node[circle, fill=blue, scale=0.5] at (2,1.5) {}; \node[circle, fill=blue, scale=0.5] at (7,1.5) {}; \node[circle, fill=blue, scale=0.5] at (7,5.5) {}; \node[circle, fill=blue, scale=0.5] at (2,5.5) {}; \node[circle, draw, color=darkgreen, ultra thick, scale=0.5] at (2.5,0.6) {}; \node[circle, draw, color=darkgreen, ultra thick, scale=0.5] at (2.5,4.6) {}; \draw[->, ultra thick] (8,2.5) -- (12,2.5); \end{tikzpicture} }; \node [shift={(9 cm,2.8cm)}] at (current page.south west) {% \begin{tikzpicture}[scale=0.3,remember picture, overlay] \definecolor{darkgreen}{rgb}{0.2,0.7,0.2} \node[circle, draw, color=darkgreen, ultra thick, scale=0.5] at (2.5,0.6) {}; \node[circle, fill=red, scale=0.5] at (2.5,1.1) {}; \node[circle, draw, color=darkgreen, ultra thick, scale=0.5] at (2.5,4.6) {}; \end{tikzpicture} }; \end{tikzpicture} \vspace{+3.2cm} \item<1-> $\textcolor{blue}{\vec{V}_{\text{sub}}}$ is only computed if \texttt{use\underline{ }sgs\underline{ }for\underline{ }particles = .T.} Then, a solution for $\textcolor{blue}{\vec{V}_{\text{sub}}}$ is derived from a stochastic differential equation \\(see Weil et al., 2004, JAS). \end{itemize} \end{frame} % Folie 13 \begin{frame}[t] \frametitle{Theory of the LPM (III) -- Non-Passive Advection} \footnotesize % \footnotesize Newton's second law of motion for a (spherical!) particle, for which \textcolor{red}{Stoke's drag}, \textcolor{blue}{gravity} and \textcolor{orange}{buoyancy} are considered:\\ \vspace{4mm} \begin{center} $\dfrac{dV_i}{dt} = \textcolor{red}{\dfrac{1}{\tau_p} (u_i - V_i)} - \delta_{i3}( 1 - \textcolor{orange}{\rho_0 / \rho_l} ) \cdot \textcolor{blue}{g},$\\ \end{center} \vspace{2mm} with the inertial response time \begin{align*} \tau_p^{-1} = \frac{9 \nu \rho_0}{2 r^2 \rho_l} \textcolor{magenta}{\left( 1 + 0.15 \cdot \text{Re}^{0.687} \right)}, \end{align*} including a \textcolor{magenta}{correction term} for high Reynolds numbers (see Clift et al., 1978)\\ \vspace{1mm} \begin{tabular}{llll} $g$ & = gravitational acceleration & $\rho_l$ & = density of water\\ Re & = particle Reynolds number & $\rho_0$ & = density of air\\ $u_i$ & = velocity of the fluid & $\tau_p$ & = inertia response time\\ $V_i$ & = particle velocity & $\nu$ & = molecular viscosity of air\\ \end{tabular} \end{frame} % Folie 14 \begin{frame}[t] \frametitle{Theory of the LPM (IV) -- Cloud Droplets (I)} \footnotesize \begin{itemize} \item This feature is switched on by setting the initial parameter \texttt{cloud\_droplets = .TRUE.} \item In this case, the change in particle radius by condensation/evaporation and collision/coalescence is calculated for each time step. \item In case of condensation or evaporation, the LES variables potential temperature and the specific humidity have to be adjusted. This is done within the subroutine \texttt{interaction\_droplets\_ptq} (which is the major coupling between LES and LPM). \end{itemize} \end{frame} % Folie 15 \begin{frame}[t] \frametitle{Theory of the LPM (V) -- Cloud Droplets (II)} \footnotesize \begin{itemize} \item Simulation of realistic particle numbers (as found in clouds) is impossible \item Ensembles of water droplets are simulated instead \item Each simulated particle represents a very high number\\ of real droplets \item Concept of super-droplets (Shima et al., 2009, QJRMS):\\ \begin{center} \includegraphics[scale=1.0]{particle_model_figures/super.jpg} $A_i = \textit{number of droplets represented by one simulated particle}$ \end{center} \vspace{-1mm} \item Initial weighting factor can be assigned with the parameter \texttt{initial\underline{ }weighting\underline{ }factor} \end{itemize} \end{frame} % Folie 16 \begin{frame}[t] \frametitle{Theory of the LPM (VI) -- Diffusional Growth} \footnotesize % \scriptsize \begin{itemize} \item The growth of the radius of single droplet by condensation/evaporation:\\ \begin{align*} r \dfrac{\text{d}r}{\text{d}t} = \dfrac{(\textcolor{red}{S} - \textcolor{blue}{a}\,r^{-1} + \textcolor{orange}{b}\,r^{-3})}{F_\text{k} + F_\text{d}} \end{align*} primarily depending on the \textcolor{red}{relative water supersaturation $S$}, and the effects of the \textcolor{blue}{particle's curvature ($a$)} and \textcolor{orange}{physical and chemical properties of aerosol ($b$)} \item Stiff differential equation: Numerical integration with a 4th-order Rosenbrock method, which adapts its internal time step for an accurate and computationally efficient solution (Grabowski et al., 2011, Atmos. Res.) \end{itemize} \hspace{0.5cm} \footnotesize \begin{tabular}{llll} $r$ & = Droplet radius & $S$ & = Supersaturation\\ $a$ & = Curvature effect & $b$ & = Solution effect\\ $F_\text{k}$ & = Effect of heat conduction & $F_\text{d}$ & = Effect of vapor diffusion \end{tabular} \end{frame} % Folie 17 \begin{frame}[t] \frametitle{Theory of the LPM (VII) -- Collisions (I)} \vspace{-2mm} \footnotesize \begin{itemize} \item Two prognostic quantities: $\ \ \ $ (i) \textbf{weighting factor} $A$ and (ii) \textbf{total mass} of super-droplet $m$ \item total mass: mass of all droplets represented by one super-droplet \end{itemize} \vspace{-3mm} \begin{center} \includegraphics[scale=0.5]{particle_model_figures/coll.pdf} \end{center} \end{frame} % Folie 18 \begin{frame}[t] \frametitle{Theory of the LPM (VIII) -- Collisions (II)} \footnotesize \begin{itemize} \item Calculation of droplet growth due to collisions considers three types of collisions (for all droplets located in one grid box): % \vspace{-0.4cm} \begin{itemize} \footnotesize \item \textcolor{red}{collisions with smaller droplets $\Rightarrow$ increase total mass} \item \textcolor{blue}{collisions with larger droplets \ \ $\Rightarrow$ decrease weighting factor \hphantom{collisions with larger droplets \ \ $\Rightarrow$} and total mass} \item \textcolor{orange}{internal collisions \hphantom{ager droplets} $\Rightarrow$ decrease weighting factor} \end{itemize} \item Total mass of super-droplet not useful $\Rightarrow$ volume averaged droplet radius $r_n=(m_n / (4/3 \pi \rho_\text{l} A_n))^{1/3}$ \item Droplets are sorted that $r_1 A new, efficient approach for storing particles is implemented in PALM: \\ \only<1>{\begin{center} \vphantom{\colorbox{red}{\textbf{a four-dimensional array}}} \end{center} } \only<2>{ \begin{center} \colorbox{red}{\textbf{a four-dimensional array}} \end{center} } \end{itemize} \end{frame} % Folie 22 \begin{frame}[t] \frametitle{Storing Lagrangian particles (III)} \small \begin{tikzpicture}[scale=0.6] \definecolor{darkgreen}{rgb}{0.2,0.7,0.2} % Coordinates \coordinate (OL) at (-4,4); \coordinate (OC) at (0,4); \coordinate (OR) at (4,4); \coordinate (ML) at (-4,0); \coordinate (MC) at (0,0); \coordinate (MR) at (4,0); \coordinate (UL) at (-4,-4); \coordinate (UC) at (0,-4); \coordinate (UR) at (4,-4); \coordinate (OL2) at (-2,2); \coordinate (OR2) at (2,2); \coordinate (UR2) at (2,-2); \coordinate (UL2) at (-2,-2); \coordinate (P1) at (-1,1); \coordinate (P2) at (1.8,-1.3); \coordinate (P3) at (0.4,-0.9); \coordinate (P4) at (1,0.7); \coordinate (P5) at (-1.3,-1.4); \coordinate (P6) at (-1.8,1.6); \coordinate (part_box) at (6,2); % Draw Boxes \draw[-] (OL) -- (OR) -- (UR) -- (UL) -- cycle; \draw[-] (OC) -- (UC); \draw[-] (ML) -- (MR); \draw[-,dashed] (OL2) -- (OR2) -- (UR2) -- (UL2) -- cycle; \draw[-, thick] (MC) -- (part_box); % Draw dots \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (OL) {}; \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (OC) {}; \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (OR) {}; \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (ML) {}; \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (MC) {}; \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (MR) {}; \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (UL) {}; \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (UC) {}; \node[circle, draw, fill, color=black, ultra thick, scale=0.3] at (UR) {}; \uncover<1>{\node[circle, draw, fill, color=red, ultra thick, scale=0.5] at (P1) {};} \uncover<1-2>{\node[circle, draw, fill, color=yellow, ultra thick, scale=0.5] at (P2) {};} \uncover<1-3>{\node[circle, draw, fill, color=green, ultra thick, scale=0.5] at (P3) {};} \uncover<1-4>{\node[circle, draw, fill, color=blue, ultra thick, scale=0.5] at (P4) {};} \uncover<1-5>{\node[circle, draw, fill, color=violet, ultra thick, scale=0.5] at (P5) {};} \uncover<1-6>{\node[circle, draw, fill, color=magenta, ultra thick, scale=0.5] at (P6) {};} \node[yshift=6.0, xshift=-15.0] at (OL) {\tiny \texttt{i-1,j+1}}; \node[yshift=6.0, xshift=-15.0] at (OC) {\tiny \texttt{i,j+1}}; \node[yshift=6.0, xshift=-15.0] at (OR) {\tiny \texttt{i+1,j+1}}; \node[yshift=6.0, xshift=-15.0] at (ML) {\tiny \texttt{i-1,j}}; \node[yshift=6.0, xshift=-15.0] at (MC) {\tiny \texttt{i,j}}; \node[yshift=6.0, xshift=-15.0] at (MR) {\tiny \texttt{i+1,j}}; \node[yshift=6.0, xshift=-15.0] at (UL) {\tiny \texttt{i-1,j-1}}; \node[yshift=6.0, xshift=-15.0] at (UC) {\tiny \texttt{i,j-1}}; \node[yshift=6.0, xshift=-15.0] at (UR) {\tiny \texttt{i+1,j-1}}; % draw particle box \node at (part_box) [scale=1.0] {% \begin{tikzpicture} \draw[-, thick, fill=white] (-0.2,0.2) -- (0.2,0.2) -- (0.2,-1.7) -- (-0.2,-1.7) -- cycle; \uncover<2->{\node[circle, draw, fill, color=red, ultra thick, scale=0.5] at (0,0) {};} \uncover<3->{\node[circle, draw, fill, color=yellow, ultra thick, scale=0.5] at (0,-0.3) {};} \uncover<4->{\node[circle, draw, fill, color=green, ultra thick, scale=0.5] at (0,-0.6) {};} \uncover<5->{\node[circle, draw, fill, color=blue, ultra thick, scale=0.5] at (0,-0.9) {};} \uncover<6->{\node[circle, draw, fill, color=violet, ultra thick, scale=0.5] at (0,-1.2) {};} \uncover<7->{\node[circle, draw, fill, color=magenta, ultra thick, scale=0.5] at (0,-1.5) {};} \end{tikzpicture} }; \uncover<1->{\node[text width=10em] at (10,0) {\scriptsize - All particles located in a certain grid-box are stored in a \textit{small} one-dimensional particle array permanently assigned to their grid-box\\ \ \\ - LPM CPU time decreases by 22\,\% (in comparison to storing particles in a one-dimensional array)\\ % \ \\ % - Available memory doubles, since no large additional arrays are needed for assigning the particles to their grid-box\\ };} \end{tikzpicture} \end{frame} % Folie 23 \begin{frame}[fragile] \frametitle{Storing Lagrangian particles (IV)} \scriptsize \begin{itemize} \item A \textbf{3D-array} of another FORTRAN derived data type: \texttt{grid\_particle\_def} \item This type contains, as an element, a \textbf{1D-array} of the FORTRAN derived data type \texttt{particle\_type}, in which the particles located at that grid box are stored \end{itemize} \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=1.05\textwidth, font=\scriptsize,scale=0.95] \vspace{-0.2mm} \begin{tikzpicture}\node[yellow]{\begin{lstlisting} TYPE grid_particle_def TYPE(particle_type), DIMENSION(:), ALLOCATABLE :: particles END TYPE grid_particle_def TYPE(grid_particle_def), DIMENSION(:,:,:), ALLOCATABLE :: & grid_particles \end{lstlisting}}; \vspace{-0.2mm} \end{tikzpicture} \vspace{-4mm} \begin{itemize} \item Particles can be accessed by the indices of their respective grid-box: \scriptsize \vspace{-2mm} \begin{lstlisting} DO i = nxl, nxr DO j = nys, nyn DO k = nzb+1, nzt n_par = prt_count(k,j,i) IF ( n_par <= 0 ) CYCLE particles(1:n_par) = & grid_particles(k,j,i)%particles(1:n_par) DO n = 1, n_par particles(n)%radius = 1.0E-6 ENDDO : \end{lstlisting} % ENDDO % ENDDO %ENDDO %\end{lstlisting} \end{itemize} \end{frame} % Folie 24 \begin{frame}[fragile] \frametitle{Storing Lagrangian Particles (V) -- Efficient interpolation} \begin{columns} \begin{column}{6cm} \footnotesize \begin{itemize} \item For interpolating any LES quantity on the location of a particle, the data from 8 grid points is needed \item The indices of these grid points have to be determined for each particle \item Depending on the particle's location within the grid box, the same set of indices is needed for all particles in the same sub-grid box \item Sorting the particles by their sub-grid box makes the determination of the indices for each particle unnecessary \item Sorting increases CPU time by 3\,\%, but efficient interpolation \textbf{speeds up the model by 22\,\%} \end{itemize} \end{column} \begin{column}{6cm} \begin{center} \includegraphics[scale=0.47]{particle_model_figures/interpolation_neu.pdf} \end{center} \end{column} \end{columns} \end{frame} % Folie 25 \begin{frame}[fragile] \frametitle{How to Read Particle Data from an External Program} \scriptsize \begin{itemize} \item An example program for reading \texttt{PARTICLE\_DATA} can be found in the PALM repository under \texttt{...../trunk/UTIL/analyze\underline{ }particle\underline{ }data.f90} \item For the format \texttt{PARTICLE\_DATA} see beginning of subroutine \texttt{lpm\_data\_output\_particles} (one file per PE, i.e. filenames \underline{ }0000, \underline{ }0001, etc.) \end{itemize} \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=1.05\textwidth, font=\scriptsize,scale=1.0] \begin{tikzpicture} \node [yellow] {\begin{lstlisting} WRITE ( 85 ) simulated_time WRITE ( 85 ) prt_count DO ip = nxl, nxr DO jp = nys, nyn DO kp = nzb+1, nzt n_par = prt_count(kp,jp,ip) particles(1:n_par) = & grid_particles(kp,jp,ip)%particles(1:n_par) IF ( n_par <= 0 ) CYCLE WRITE ( 85 ) particles ENDDO ENDDO ENDDO \end{lstlisting} }; \end{tikzpicture} \end{frame} % Folie 26 \begin{frame} \frametitle{Flow Chart of Particle Code (I)} \footnotesize \begin{tikzpicture}[scale=0.8, transform shape] % Define colours \tikzstyle{gelb1} = [draw, fill=yellow!60, text width=7em, text centered, minimum height=1.6em] \tikzstyle{orange} = [draw, fill=orange!60, text width=7em, text centered] % Define coordinates and draw nodes \node[gelb1, text width=5em] (PALM) at (0,0.1) {PALM}; \coordinate (A) at (0,-0.7); \node[gelb1, right=0.6cm of A] (init3d) {init\underline{ }3d\underline{ }model}; \coordinate[below=0.4cm of init3d] (B) ; \coordinate[below=1.0cm of init3d] (C) ; \coordinate[below=1.6cm of init3d] (D) ; \coordinate[below=2.2cm of init3d] (E) ; \coordinate[below=2.8cm of init3d] (F) ; \coordinate[below=4.2cm of init3d] (G) ; \coordinate[below=4.8cm of init3d] (H) ; \coordinate[below=6cm of init3d] (I) ; \coordinate (J) at (0,-8); \node[gelb1, right=0.5cm of B, text width=17em] (init1d) {init\underline{ }1d\underline{ }model (\textit{calls various subroutines})}; \node[gelb1, right=0.5cm of C] (initslope) {init\underline{ }slope}; \node[gelb1, right=0.5cm of D] (disturb) {disturb\underline{ }heatflux}; \node[gelb1, right=0.5cm of E] (initrankine) {init\underline{ }rankine}; \node[gelb1, right=0.0cm of initrankine] {init\underline{ }pt\underline{ }anomaly}; \node[gelb1, right=0.5cm of F] (disturbfield) {disturb\underline{ }field}; \node[gelb1, right=0.0cm of disturbfield] (pres) {pres}; \node[gelb1, right=0.5cm of G] (read3d) {read\underline{ }3d\underline{ }binary}; \node[gelb1, right=0.0cm of read3d] (initdvrp) {init\underline{ }dvrp}; \node[gelb1, right=0.0cm of initdvrp] (initocean) {init\underline{ }ocean}; \node[gelb1, right=0.0cm of initocean] {init\underline{ }cloud\underline{ }physics}; \node[orange, right=0.5cm of H] (initparticles) {lpm\underline{ }init}; \node[gelb1, right=0.5cm of I] (initadvec) {init\underline{ }advec}; \node[gelb1, right=0.0cm of initadvec] (userinit) {user\underline{ }init}; \node[gelb1, right=0.6cm of J] (dataoutput2d) {data\underline{ }output\underline{ }2d}; \node[gelb1, right=0.0cm of dataoutput2d] {data\underline{ }output\underline{ }3d}; \coordinate[below=0.15cm of pres] (K); \coordinate[right=0.2cm of K] (L); \coordinate[right=2cm of L] (M); \coordinate[right=2cm of M] (N); \node[gelb1, below=0.1cm of L, text width=4em] (poisfft) {poisfft}; \node[gelb1, below=0.1cm of M, text width=4em] (sor) {sor}; \node[gelb1, below=0.1cm of N, text width=4em] (poismg) {poismg}; \coordinate[below=0.1cm of initparticles] (O); \node[orange, right=1.5cm of O] (userinitparticles) {user\underline{ }lpm\underline{ }init}; % Draw lines \draw[dotted, thick] (PALM) -- (0,-0.5); \draw[-, thick] (0,-0.5) -- (0,-8.7); \draw[dotted, thick] (0,-8.7) -- (0,-9.0); \draw[-, thick] (init3d.west) -- (A) ; \draw[-, thick] (init3d.south) -- (I) ; \draw[dashed, thick] (B) -- (init1d.west); \draw[dashed, thick] (C) -- (initslope.west); \draw[dashed, thick] (D) -- (disturb.west); \draw[dashed, thick] (E) -- (initrankine.west); \draw[dashed, thick] (F) -- (disturbfield.west); \draw[dashed, thick] (G) -- (read3d.west); \draw[-, thick] (H) -- (initparticles.west); \draw[-, thick] (I) -- (initadvec.west); \draw[dashed, thick] (J) -- (dataoutput2d); \draw[-, thick] (pres.south) -- (K); \draw[-, thick] (K) -- (N); \draw[-, thick] (L) -- (poisfft.north); \draw[-, thick] (M) -- (sor.north); \draw[-, thick] (N) -- (poismg.north); \draw[-, thick] (initparticles.south) -- (O); \draw[-, thick] (O) -- (userinitparticles.west); \end{tikzpicture} \end{frame} % Folie 27 \begin{frame} \frametitle{Flow Chart of Particle Code (II)} \footnotesize \begin{tikzpicture}[scale=0.8, transform shape] % Define colours \tikzstyle{gelb1} = [draw, fill=yellow!60, text width=7em, text centered, minimum height=1.6em] \tikzstyle{orange} = [draw, fill=orange!60, text width=7em, text centered] % Define coordinates and draw nodes \coordinate (A) at (0,-0.7); \node[gelb1, right=0.6cm of A] (timeintegration) {time\underline{ }integration}; \coordinate[below=0.3 of timeintegration] (B); \coordinate[below=0.9 of timeintegration] (C); \node[gelb1, right=0.6cm of B] (timestep) {timestep}; \node[gelb1, right=0.6cm of C] (runcontrol) {run\underline{ }control}; \coordinate[below=0.2cm of runcontrol] (D); \node[gelb1, right=1.5cm of D] (flowstat) {flow\underline{ }statistics}; \coordinate[below=1.8cm of timeintegration] (E); \node[gelb1, right=0.6cm of E] (surface) {surface\underline{ }coupler}; \coordinate[below=2.4cm of timeintegration] (F); \node[gelb1, right=0.6cm of F, text width=13em] (useractions) {user\underline{ }actions (\textit{before\underline{ }timestep})}; \coordinate[below=3.0cm of timeintegration] (G); \node[gelb1, right=0.6cm of G, text width=11em] (timestepscheme) {timestep\underline{ }scheme\underline{ }steering}; \coordinate[below=3.5cm of timeintegration] (H); \coordinate[right=2.5cm of H] (I); \coordinate[right=4.25cm of I] (J); \node[draw, text width=26em,minimum height=4.5em,fill=black!15] (progframe) at (6.5,-5.3) {}; \node[draw, text width= 9.5em, right=0.3cm of progframe] {For details, see PALM Flow Chart (V).}; \node[gelb1, below=0.3cm of I, text width=11.5em] (prog) {prognostic\underline{ }equations\underline{ }vector}; \node[gelb1, below=0.3cm of J, text width=11.5em] (progfast) {prognostic\underline{ }equations\underline{ }cache}; \node[gelb1, below=0.1cm of progfast, text width=11.5em] (progvec) {prognostic\underline{ }equations\underline{ }acc}; \coordinate[below=5.5cm of timeintegration] (K); \node[orange, right=0.6cm of K] (advecparticles) {lpm}; \coordinate[below=0.2cm of advecparticles] (L); \node[orange, right=1.5cm of L, text width=13em] (userparticlesatt) {user\underline{ }lpm\underline{ }set\underline{ }attributes + more}; \coordinate[below=6.6cm of timeintegration] (M); \node[orange, right=0.6cm of M, text width=10em] (interaction) {interaction\underline{ }droplets\underline{ }ptq}; \coordinate[below=7.2cm of timeintegration] (N); \coordinate[below=7.2cm of timeintegration] (O); \node[gelb1, right=0.6cm of O] (boundary) {boundary\underline{ }conds}; \node[gelb1, right=0.0cm of boundary] {swap\underline{ }timelevel}; \coordinate[below=7.8cm of timeintegration] (P); \node[gelb1, right=0.6cm of P] (inflow) {inflow\underline{ }turbulence}; \node[gelb1, right=0.0cm of inflow] {disturb\underline{ }field}; % Draw lines \draw[dotted, thick] (0,-0.3) -- (0,-0.7); \draw[-, thick] (0,-0.7) -- (0,-7.7); \draw[dotted, thick] (0,-7.7) -- (0,-9.0); \draw[-, thick] (A) -- (timeintegration); \draw[-, thick] (B) -- (timestep); \draw[-, thick] (C) -- (runcontrol); \draw[-, thick] (runcontrol.south) -- (D); \draw[-, thick] (D) -- (flowstat); \draw[dashed, thick] (E) -- (surface); \draw[-, thick] (F) -- (useractions); \draw[-, thick] (G) -- (timestepscheme); \draw[-, thick] (H) -- (I); \draw[-, thick] (I) -- (prog.north); \draw[-, thick, color=red] (I) -- (J); \draw[->, thick, color=red] (J) -- (progfast.north); \draw[dashed, thick] (K) -- (advecparticles); \draw[-, thick] (advecparticles.south) -- (L); \draw[-, thick] (L) -- (userparticlesatt.west); \draw[dashed, thick] (M) -- (interaction.west); \draw[-, thick] (O) -- (boundary.west); \draw[dashed, thick] (P) -- (inflow.west); \draw[-, thick] (timeintegration.south) -- (O); \draw[dashed, thick] (O) -- (P); \end{tikzpicture} \end{frame} % Folie 28 \begin{frame} \frametitle{Detailed Flow Chart of \texttt{lpm} (I)} \scriptsize \begin{tikzpicture}[scale=0.87, transform shape] \node (0) at (0,0) {}; {\node[draw, right=0.0cm of 0, , yshift=-0.2cm, text width=29em] {write particle data on file (subroutine \texttt{lpm\underline{ }data\underline{ }output\underline{ }particles})};} \uncover<1->{\node[draw, right=0.0cm of 0, yshift=-0.78cm] {calculate exponential terms for particles groups with inertia};} \uncover<1->{\node[draw, right=0.0cm of 0, yshift=-1.35cm] {if necessary, release a new set of particles (subroutine \texttt{lpm\underline{ }release\underline{ }set})};} \uncover<1->{\node[draw, right=0.0cm of 0, yshift=-2.1cm, text width=30em] {particle growth by condensation/evaporation and collision\\ (subroutines \texttt{lpm\underline{ }droplet\underline{ }condensation} and \texttt{lpm\underline{ }droplet\underline{ }collision})};} \uncover<1->{\node[draw, right=0.0cm of 0, yshift=-2.85cm] {If SGS-velocities are used: calculate gradients of TKE (subroutine \texttt{lpm\underline{ }init\underline{ }sgs\underline{ }tke})};} \uncover<1->{\node[draw, right=0.0cm of 0, yshift=-3.6cm, text width=29em] {timestep loop\\ (repeated, unless each particle has reached the LES timestep \texttt{dt\underline{ }3d})};} \uncover<1->{\node[draw, right=0.5cm of 0, yshift=-4.65cm, text width=36em] {for each particle:\\ - interpolate resolved velocities and compute SGS velocities\\ - calculate the particle advection (subroutine \texttt{lpm\underline{ }advec})};} \uncover<1->{\node[draw, right=0.5cm of 0, yshift=-5.55cm] {calculate particle reflection from walls (subroutine \texttt{lpm\underline{ }boundary\underline{ }conds})};} \uncover<1->{\node[draw, right=0.5cm of 0, yshift=-6.15cm] {user defined actions (subroutine \texttt{user\underline{ }lpm\underline{ }advec})};} \uncover<1->{\node[draw, right=0.5cm of 0, yshift=-6.75cm] {boundary conditions at bottom and top (subroutine \texttt{lpm\underline{ }boundary\underline{ }conds})};} \uncover<1->{\node[draw, right=0.5cm of 0, yshift=-7.36cm] {particle exchange between gridpoints (subroutine \texttt{lpm\underline{ }move\underline{ }particle})};} \uncover<1->{\node[draw, right=0.5cm of 0, yshift=-7.9cm] {particle exchange between the subdomains (subroutine \texttt{lpm\underline{ }exchange\underline{ }horiz})};} \end{tikzpicture} \end{frame} % Folie 29 \begin{frame} \frametitle{Detailed Flow Chart of \texttt{lpm} (II)} \scriptsize \begin{tikzpicture}[auto, node distance=0] \node (0) at (0,0) {}; \uncover<1->{\node[draw, right=0.5cm of 0, yshift=-0.7cm, text width=25em] {delete and sort particles\\ (subroutines \texttt{lpm\_pack\_all\_arrays})};} \uncover<1->{\node[draw, right=0.0cm of 0, yshift=-1.6cm, text width=29em] {In case of cloud droplets: calculate the liquid water content\\ (subroutine \texttt{lpm\underline{ }calc\underline{ }liquid\underline{ }water\underline{ }content})};} \uncover<1->{\node[draw, right=0.0cm of 0, yshift=-2.3cm] {user defined setting of particle attributes (subroutine \texttt{user\underline{ }lpm\underline{ }set\underline{ }attributes})};} \uncover<1->{\node[draw, right=0.0cm of 0, yshift=-3.0cm, text width=29em] {write particle statistics on file \texttt{PARTICLE\underline{ }INFOS} (ASCII format)\\ (subroutine \texttt{lpm\underline{ }write\underline{ }exchange\underline{ }statistics})}; } \end{tikzpicture} \end{frame} \section{Application Example} \subsection{Application Example} % Folie 30 \begin{frame}[t] \frametitle{Application Examples of the LCM (I)} \textbf{The Lagrangian Cloud Model has many advantages:} \begin{itemize} \item Many microphysical processes are modeled by first principles \\ $\Rightarrow$ (almost) no parameterizations \item We are able to simulate cloud microphysics on a very accurate level, but we are also able to cope the macro-scale, i.\,e., a whole cloud or cloud ensemble by LES\\ \item The LCM provides detailed information, e.\,g., spatial and temporal evolution of the droplet spectrum, droplet trajectories, ... \end{itemize} \textbf{How to use these advantages?} \begin{itemize} \item Some application examples will show! \end{itemize} \vspace{1.5mm} \end{frame} % Folie 31 \begin{frame}[t] \frametitle{Application Examples of the LCM (I)} \footnotesize \textbf{How to Track Particles:} \begin{center} \includegraphics[scale=0.28]{particle_model_figures/traj.jpg} \end{center} $\rightarrow$ Find out what a droplet is experiencing during its life time \end{frame} % Folie 32 \begin{frame}[t] \frametitle{Application Examples of the LCM (II)} \footnotesize \textbf{From Hoffmann et al. (2015, AR):} \begin{center} \includegraphics[scale=0.25]{particle_model_figures/hoffmann.jpg} \end{center} $\rightarrow$ \textcolor{blue}{Laterally entrained aerosols} contribute about two-thirds to the activation above cloud base \end{frame} % Folie 33 \begin{frame} \frametitle{General Warning} \begin{itemize} \item Errors in the user interface routines for particles may cause problems which are very difficult to debug. Please be extremely careful with modifying the user interface and try to find out exactly how the default particle code works, before you make your modifications. \end{itemize} \end{frame} \end{document}