\doxysection{PG\+\_\+\+Kernel\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{class_p_g___kernel}{}\label{class_p_g___kernel}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}


Represents a class for the proposed rough surface kernel applied to Poly-\/\+Gaussian surfaces.  




{\ttfamily \#include $<$PG\+\_\+\+Kernel.\+h$>$}

\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_p_g___kernel_af8e1efcc80359072e576592d13f977c3}{PG\+\_\+\+Kernel}} ()
\begin{DoxyCompactList}\small\item\em Default constructor for \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_p_g___kernel_a44101c4d46d0a26d186cb6035fec5124}{PG\+\_\+\+Kernel}} (\mbox{\hyperlink{class_surface}{Surface}}$<$ T $>$ surface, \mbox{\hyperlink{class_gas}{Gas}}$<$ T $>$ gas, void(\texorpdfstring{$\ast$}{*}local\+\_\+kernel)(T \texorpdfstring{$\ast$}{*}, T \texorpdfstring{$\ast$}{*}, T \texorpdfstring{$\ast$}{*}, T \texorpdfstring{$\ast$}{*}, T \texorpdfstring{$\ast$}{*}), \mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ incident\+\_\+velocity, unsigned long num\+\_\+particles, std\+::string sim\+\_\+name)
\begin{DoxyCompactList}\small\item\em Constructor for \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_p_g___kernel_a9e56ddb8940aff75ba812b5bdb04f491}{\texorpdfstring{$\sim$}{\string~}\+PG\+\_\+\+Kernel}} ()
\begin{DoxyCompactList}\small\item\em Destructor for \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_gas}{Gas}}$<$ T $>$ \& \mbox{\hyperlink{class_p_g___kernel_ad7dca39d3f859df100f70ba0f7032690}{get\+\_\+gas}} ()
\begin{DoxyCompactList}\small\item\em Get the \doxylink{class_gas}{Gas} object. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_surface}{Surface}}$<$ T $>$ \& \mbox{\hyperlink{class_p_g___kernel_ac506eb3f92a95d6fde2be3ef28474a48}{get\+\_\+surface}} ()
\begin{DoxyCompactList}\small\item\em Get the \doxylink{class_surface}{Surface} object. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{class_p_g___kernel_a830430d617d6b572d7b980a839e74c9b}{random\+\_\+sampler\+\_\+1D}} (T(PG\+\_\+\+Kernel\+::\texorpdfstring{$\ast$}{*}pdf)(T, std\+::vector$<$ T $>$), std\+::vector$<$ T $>$ parameters, T x0, T size, T domain\+\_\+x\mbox{[}$\,$\mbox{]})
\begin{DoxyCompactList}\small\item\em Perform random sampling in 1D using the Metropolis-\/\+Hastings algorithm. \end{DoxyCompactList}\item 
std\+::tuple$<$ T, T $>$ \mbox{\hyperlink{class_p_g___kernel_ac172804eafcceacb8535bacadde04b36}{random\+\_\+sampler\+\_\+2D}} (T(PG\+\_\+\+Kernel\+::\texorpdfstring{$\ast$}{*}pdf)(T, T, std\+::vector$<$ T $>$), std\+::vector$<$ T $>$ parameters, T x0, T y0, T size\+\_\+x, T size\+\_\+y, T domain\+\_\+x\mbox{[}$\,$\mbox{]}, T domain\+\_\+y\mbox{[}$\,$\mbox{]})
\begin{DoxyCompactList}\small\item\em Perform random sampling in 2D using the Metropolis-\/\+Hastings algorithm. \end{DoxyCompactList}\item 
std\+::tuple$<$ T, T $>$ \mbox{\hyperlink{class_p_g___kernel_a6d32fe0d3b3b9e27284baf3674b6d0d9}{random\+\_\+sampler\+\_\+angles}} (T(PG\+\_\+\+Kernel\+::\texorpdfstring{$\ast$}{*}pdf)(T, T, std\+::vector$<$ T $>$), std\+::vector$<$ T $>$ parameters, T x0, T y0, T size\+\_\+x, T size\+\_\+y, T domain\+\_\+x\mbox{[}$\,$\mbox{]}, T domain\+\_\+y\mbox{[}$\,$\mbox{]})
\begin{DoxyCompactList}\small\item\em Perform random sampling of angles in 2D using the Metropolis-\/\+Hastings algorithm. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{class_p_g___kernel_a484eadba3fd6f0093e0368715db490a7}{mixture\+\_\+pdf}} (T gamma, T gamma\+\_\+dot, std\+::vector$<$ T $>$ parameters)
\begin{DoxyCompactList}\small\item\em Calculate the PDF of the control process gamma and its derivative gamma\+\_\+dot, for Poly-\/\+Gaussian surfaces. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{class_p_g___kernel_ac52c90dbf2a4a04da725040557647cf4}{kirchhoff\+\_\+pdf}} (T theta\+\_\+r1, T theta\+\_\+r2, std\+::vector$<$ T $>$ parameters)
\begin{DoxyCompactList}\small\item\em Calculate the reflected particle angular PDF according to the Kirchhoff model. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{class_p_g___kernel_a73a86278a501f9b8159eccdf61976fba}{shadow}} (T theta\+\_\+r1, T height, int direction)
\begin{DoxyCompactList}\small\item\em Calculate the probability of a reflected particle to escape the surface. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{class_p_g___kernel_a8478689be7f623b43ed44a8ec78b6bfb}{occlusion}} (T theta\+\_\+r1, T height, T distance, int direction)
\begin{DoxyCompactList}\small\item\em Calculate the probability of a reflected particle to escape the surface, given a certain travelled horizontal distance. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{class_p_g___kernel_aa1515ed1da4367fa15c2ca383e84512e}{height\+\_\+0\+\_\+pdf}} (T height\+\_\+0, std\+::vector$<$ T $>$ parameters)
\begin{DoxyCompactList}\small\item\em Calculate the PDF for the height\+\_\+0 parameter. \end{DoxyCompactList}\item 
T \mbox{\hyperlink{class_p_g___kernel_a1b94000c5d48cc5a8a00b080de679095}{distance\+\_\+pdf}} (T distance, std\+::vector$<$ T $>$ parameters)
\begin{DoxyCompactList}\small\item\em Calculate the PDF for the distance parameter. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ \mbox{\hyperlink{class_p_g___kernel_ab0eac7ed14d09f00e969b0b275996806}{global\+\_\+to\+\_\+local}} (\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ global\+\_\+vector, T theta\+\_\+i, T theta\+\_\+r1, T theta\+\_\+r2)
\begin{DoxyCompactList}\small\item\em Convert global coordinates to local coordinates. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ \mbox{\hyperlink{class_p_g___kernel_a5b3eac0f0d9be8008a9685582adcb5e3}{local\+\_\+to\+\_\+global}} (\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ local\+\_\+vector, T theta\+\_\+i, T theta\+\_\+r1, T theta\+\_\+r2)
\begin{DoxyCompactList}\small\item\em Convert local coordinates to global coordinates. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ \mbox{\hyperlink{class_p_g___kernel_a606de8649b67946d749e55b867d5e3c4}{angles\+\_\+to\+\_\+slopes}} (T theta\+\_\+i, T theta\+\_\+r1, T theta\+\_\+r2)
\begin{DoxyCompactList}\small\item\em Convert angles to slopes. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structtrajectory}{trajectory}}$<$ T $>$ \mbox{\hyperlink{class_p_g___kernel_a0fddecf7d991d5593d31a18f9817a727}{sample\+\_\+particle}} ()
\begin{DoxyCompactList}\small\item\em Sample a single particle trajectory. \end{DoxyCompactList}\item 
std\+::vector$<$ \mbox{\hyperlink{structtrajectory}{trajectory}}$<$ T $>$ $>$ \mbox{\hyperlink{class_p_g___kernel_ab5ae1e66209c1a2cd2251d2c95c77994}{sample\+\_\+batch}} ()
\begin{DoxyCompactList}\small\item\em Sample a batch of particle trajectories. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_p_g___kernel_a4328bc06dde45b6abe1046fa8ac0f2aa}{save}} (std\+::vector$<$ \mbox{\hyperlink{structtrajectory}{trajectory}}$<$ T $>$ $>$ trajectories, std\+::string filename)
\begin{DoxyCompactList}\small\item\em Save the trajectories to a file. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_p_g___kernel_afffaa46fbc8a069857243c5db7159a38}{combine\+\_\+files}} (std\+::string filename, int num\+\_\+procs)
\begin{DoxyCompactList}\small\item\em Combine multiple trajectory files into one. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_p_g___kernel_a18705acb07a38d39fc28bfb53f5e3346}{set\+\_\+num\+\_\+particles}} (unsigned long num\+\_\+particles)
\begin{DoxyCompactList}\small\item\em Set the number of particles. \end{DoxyCompactList}\item 
std\+::vector$<$ \mbox{\hyperlink{structtrajectory}{trajectory}}$<$ T $>$ $>$ \mbox{\hyperlink{class_p_g___kernel_a463e12da151ed7f37ba3c42ac75307a7}{import\+\_\+data}} (std\+::string filename)
\begin{DoxyCompactList}\small\item\em Import trajectory data from a file. \end{DoxyCompactList}\item 
std\+::string \& \mbox{\hyperlink{class_p_g___kernel_a610798f60550f377858b8cddb372496c}{get\+\_\+sim\+\_\+name}} ()
\begin{DoxyCompactList}\small\item\em Get the simulation name. \end{DoxyCompactList}\item 
unsigned long \mbox{\hyperlink{class_p_g___kernel_a1d5521b8b9012ac1230f0997065c841f}{get\+\_\+num\+\_\+particles}} ()
\begin{DoxyCompactList}\small\item\em Get the number of particles. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename T$>$\newline
class PG\+\_\+\+Kernel$<$ T $>$}
Represents a class for the proposed rough surface kernel applied to Poly-\/\+Gaussian surfaces. 

This class implements the rough GSI kernel algorithm for trajectory sampling. It returns the trajectories of free-\/molecular-\/flow gas particles on a rough surface.


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & The type of the elements in the \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel}. \\
\hline
\end{DoxyTemplParams}


\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{class_p_g___kernel_af8e1efcc80359072e576592d13f977c3}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!PG\_Kernel@{PG\_Kernel}}
\index{PG\_Kernel@{PG\_Kernel}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{PG\_Kernel()}{PG\_Kernel()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{class_p_g___kernel_af8e1efcc80359072e576592d13f977c3} 
template$<$typename T $>$ \\
\mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\mbox{\hyperlink{class_p_g___kernel}{\+::\+PG\+\_\+\+Kernel}} (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Default constructor for \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel}. 

Initializes the \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel} object with default values. \Hypertarget{class_p_g___kernel_a44101c4d46d0a26d186cb6035fec5124}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!PG\_Kernel@{PG\_Kernel}}
\index{PG\_Kernel@{PG\_Kernel}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{PG\_Kernel()}{PG\_Kernel()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a44101c4d46d0a26d186cb6035fec5124} 
template$<$typename T $>$ \\
\mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\mbox{\hyperlink{class_p_g___kernel}{\+::\+PG\+\_\+\+Kernel}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_surface}{Surface}}$<$ T $>$}]{surface}{, }\item[{\mbox{\hyperlink{class_gas}{Gas}}$<$ T $>$}]{gas}{, }\item[{void(\texorpdfstring{$\ast$}{*}}]{local\+\_\+kernel~}{)(T \texorpdfstring{$\ast$}{*}, T \texorpdfstring{$\ast$}{*}, T \texorpdfstring{$\ast$}{*}, T \texorpdfstring{$\ast$}{*}, T \texorpdfstring{$\ast$}{*}), }\item[{\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$}]{incident\+\_\+velocity}{, }\item[{unsigned long}]{num\+\_\+particles}{, }\item[{std\+::string}]{sim\+\_\+name}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Constructor for \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel}. 

Initializes the \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel} object with the given parameters.


\begin{DoxyParams}{Parameters}
{\em surface} & The \doxylink{class_surface}{Surface} object representing the surface properties. \\
\hline
{\em gas} & The \doxylink{class_gas}{Gas} object representing the gas properties. \\
\hline
{\em local\+\_\+kernel} & Pointer to the local kernel function. \\
\hline
{\em incident\+\_\+velocity} & \doxylink{class_matrix}{Matrix} of incident velocities. \\
\hline
{\em num\+\_\+particles} & Number of particles. \\
\hline
{\em sim\+\_\+name} & Name of the simulation. \\
\hline
\end{DoxyParams}
\Hypertarget{class_p_g___kernel_a9e56ddb8940aff75ba812b5bdb04f491}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!````~PG\_Kernel@{\texorpdfstring{$\sim$}{\string~}PG\_Kernel}}
\index{````~PG\_Kernel@{\texorpdfstring{$\sim$}{\string~}PG\_Kernel}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}PG\_Kernel()}{\string~PG\_Kernel()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a9e56ddb8940aff75ba812b5bdb04f491} 
template$<$typename T $>$ \\
\mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::\texorpdfstring{$\sim$}{\string~}\mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}} (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Destructor for \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel}. 

Cleans up the \doxylink{class_p_g___kernel}{PG\+\_\+\+Kernel} object. 

\doxysubsection{Member Function Documentation}
\Hypertarget{class_p_g___kernel_a606de8649b67946d749e55b867d5e3c4}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!angles\_to\_slopes@{angles\_to\_slopes}}
\index{angles\_to\_slopes@{angles\_to\_slopes}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{angles\_to\_slopes()}{angles\_to\_slopes()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a606de8649b67946d749e55b867d5e3c4} 
template$<$typename T $>$ \\
\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::angles\+\_\+to\+\_\+slopes (\begin{DoxyParamCaption}\item[{T}]{theta\+\_\+i}{, }\item[{T}]{theta\+\_\+r1}{, }\item[{T}]{theta\+\_\+r2}{}\end{DoxyParamCaption})}



Convert angles to slopes. 


\begin{DoxyParams}{Parameters}
{\em theta\+\_\+i} & The theta\+\_\+i value. \\
\hline
{\em theta\+\_\+r1} & The theta\+\_\+r1 value. \\
\hline
{\em theta\+\_\+r2} & The theta\+\_\+r2 value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Matrix$<$\+T$>$ The slopes. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_afffaa46fbc8a069857243c5db7159a38}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!combine\_files@{combine\_files}}
\index{combine\_files@{combine\_files}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{combine\_files()}{combine\_files()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_afffaa46fbc8a069857243c5db7159a38} 
template$<$typename T $>$ \\
void \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::combine\+\_\+files (\begin{DoxyParamCaption}\item[{std\+::string}]{filename}{, }\item[{int}]{num\+\_\+procs}{}\end{DoxyParamCaption})}



Combine multiple trajectory files into one. 


\begin{DoxyParams}{Parameters}
{\em filename} & The name of the file. \\
\hline
{\em num\+\_\+procs} & The number of processes. \\
\hline
\end{DoxyParams}
\Hypertarget{class_p_g___kernel_a1b94000c5d48cc5a8a00b080de679095}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!distance\_pdf@{distance\_pdf}}
\index{distance\_pdf@{distance\_pdf}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{distance\_pdf()}{distance\_pdf()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a1b94000c5d48cc5a8a00b080de679095} 
template$<$typename T $>$ \\
T \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::distance\+\_\+pdf (\begin{DoxyParamCaption}\item[{T}]{distance}{, }\item[{std\+::vector$<$ T $>$}]{parameters}{}\end{DoxyParamCaption})}



Calculate the PDF for the distance parameter. 


\begin{DoxyParams}{Parameters}
{\em distance} & The distance value. \\
\hline
{\em parameters} & Vector of parameters for the PDF function. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The PDF value. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_ad7dca39d3f859df100f70ba0f7032690}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!get\_gas@{get\_gas}}
\index{get\_gas@{get\_gas}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{get\_gas()}{get\_gas()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_ad7dca39d3f859df100f70ba0f7032690} 
template$<$typename T $>$ \\
\mbox{\hyperlink{class_gas}{Gas}}$<$ T $>$ \& \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::get\+\_\+gas (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Get the \doxylink{class_gas}{Gas} object. 

\begin{DoxyReturn}{Returns}
Gas$<$\+T$>$\& The \doxylink{class_gas}{Gas} object. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a1d5521b8b9012ac1230f0997065c841f}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!get\_num\_particles@{get\_num\_particles}}
\index{get\_num\_particles@{get\_num\_particles}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{get\_num\_particles()}{get\_num\_particles()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a1d5521b8b9012ac1230f0997065c841f} 
template$<$typename T $>$ \\
unsigned long \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::get\+\_\+num\+\_\+particles (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of particles. 

\begin{DoxyReturn}{Returns}
unsigned long The number of particles. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a610798f60550f377858b8cddb372496c}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!get\_sim\_name@{get\_sim\_name}}
\index{get\_sim\_name@{get\_sim\_name}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{get\_sim\_name()}{get\_sim\_name()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a610798f60550f377858b8cddb372496c} 
template$<$typename T $>$ \\
std\+::string \& \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::get\+\_\+sim\+\_\+name (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Get the simulation name. 

\begin{DoxyReturn}{Returns}
std\+::string\& The simulation name. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_ac506eb3f92a95d6fde2be3ef28474a48}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!get\_surface@{get\_surface}}
\index{get\_surface@{get\_surface}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{get\_surface()}{get\_surface()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_ac506eb3f92a95d6fde2be3ef28474a48} 
template$<$typename T $>$ \\
\mbox{\hyperlink{class_surface}{Surface}}$<$ T $>$ \& \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::get\+\_\+surface (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Get the \doxylink{class_surface}{Surface} object. 

\begin{DoxyReturn}{Returns}
Surface$<$\+T$>$\& The \doxylink{class_surface}{Surface} object. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_ab0eac7ed14d09f00e969b0b275996806}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!global\_to\_local@{global\_to\_local}}
\index{global\_to\_local@{global\_to\_local}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{global\_to\_local()}{global\_to\_local()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_ab0eac7ed14d09f00e969b0b275996806} 
template$<$typename T $>$ \\
\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::global\+\_\+to\+\_\+local (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$}]{global\+\_\+vector}{, }\item[{T}]{theta\+\_\+i}{, }\item[{T}]{theta\+\_\+r1}{, }\item[{T}]{theta\+\_\+r2}{}\end{DoxyParamCaption})}



Convert global coordinates to local coordinates. 


\begin{DoxyParams}{Parameters}
{\em global\+\_\+vector} & The global vector. \\
\hline
{\em theta\+\_\+i} & The theta\+\_\+i value. \\
\hline
{\em theta\+\_\+r1} & The theta\+\_\+r1 value. \\
\hline
{\em theta\+\_\+r2} & The theta\+\_\+r2 value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Matrix$<$\+T$>$ The local vector. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_aa1515ed1da4367fa15c2ca383e84512e}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!height\_0\_pdf@{height\_0\_pdf}}
\index{height\_0\_pdf@{height\_0\_pdf}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{height\_0\_pdf()}{height\_0\_pdf()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_aa1515ed1da4367fa15c2ca383e84512e} 
template$<$typename T $>$ \\
T \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::height\+\_\+0\+\_\+pdf (\begin{DoxyParamCaption}\item[{T}]{height\+\_\+0}{, }\item[{std\+::vector$<$ T $>$}]{parameters}{}\end{DoxyParamCaption})}



Calculate the PDF for the height\+\_\+0 parameter. 


\begin{DoxyParams}{Parameters}
{\em height\+\_\+0} & The height\+\_\+0 value. \\
\hline
{\em parameters} & Vector of parameters for the PDF function. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The PDF value. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a463e12da151ed7f37ba3c42ac75307a7}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!import\_data@{import\_data}}
\index{import\_data@{import\_data}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{import\_data()}{import\_data()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a463e12da151ed7f37ba3c42ac75307a7} 
template$<$typename T $>$ \\
std\+::vector$<$ \mbox{\hyperlink{structtrajectory}{trajectory}}$<$ T $>$ $>$ \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::import\+\_\+data (\begin{DoxyParamCaption}\item[{std\+::string}]{filename}{}\end{DoxyParamCaption})}



Import trajectory data from a file. 


\begin{DoxyParams}{Parameters}
{\em filename} & The name of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::vector$<$trajectory$<$\+T$>$$>$ The imported trajectories. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_ac52c90dbf2a4a04da725040557647cf4}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!kirchhoff\_pdf@{kirchhoff\_pdf}}
\index{kirchhoff\_pdf@{kirchhoff\_pdf}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{kirchhoff\_pdf()}{kirchhoff\_pdf()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_ac52c90dbf2a4a04da725040557647cf4} 
template$<$typename T $>$ \\
T \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::kirchhoff\+\_\+pdf (\begin{DoxyParamCaption}\item[{T}]{theta\+\_\+r1}{, }\item[{T}]{theta\+\_\+r2}{, }\item[{std\+::vector$<$ T $>$}]{parameters}{}\end{DoxyParamCaption})}



Calculate the reflected particle angular PDF according to the Kirchhoff model. 


\begin{DoxyParams}{Parameters}
{\em theta\+\_\+r1} & The theta\+\_\+r1 angle value. \\
\hline
{\em theta\+\_\+r2} & The theta\+\_\+r2 angle value. \\
\hline
{\em parameters} & Auxiliary parameters required\+: incidence angle and control process values. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The PDF value. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a5b3eac0f0d9be8008a9685582adcb5e3}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!local\_to\_global@{local\_to\_global}}
\index{local\_to\_global@{local\_to\_global}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{local\_to\_global()}{local\_to\_global()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a5b3eac0f0d9be8008a9685582adcb5e3} 
template$<$typename T $>$ \\
\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$ \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::local\+\_\+to\+\_\+global (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_matrix}{Matrix}}$<$ T $>$}]{local\+\_\+vector}{, }\item[{T}]{theta\+\_\+i}{, }\item[{T}]{theta\+\_\+r1}{, }\item[{T}]{theta\+\_\+r2}{}\end{DoxyParamCaption})}



Convert local coordinates to global coordinates. 


\begin{DoxyParams}{Parameters}
{\em local\+\_\+vector} & The local vector. \\
\hline
{\em theta\+\_\+i} & The theta\+\_\+i value. \\
\hline
{\em theta\+\_\+r1} & The theta\+\_\+r1 value. \\
\hline
{\em theta\+\_\+r2} & The theta\+\_\+r2 value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Matrix$<$\+T$>$ The global vector. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a484eadba3fd6f0093e0368715db490a7}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!mixture\_pdf@{mixture\_pdf}}
\index{mixture\_pdf@{mixture\_pdf}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{mixture\_pdf()}{mixture\_pdf()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a484eadba3fd6f0093e0368715db490a7} 
template$<$typename T $>$ \\
T \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::mixture\+\_\+pdf (\begin{DoxyParamCaption}\item[{T}]{gamma}{, }\item[{T}]{gamma\+\_\+dot}{, }\item[{std\+::vector$<$ T $>$}]{parameters}{}\end{DoxyParamCaption})}



Calculate the PDF of the control process gamma and its derivative gamma\+\_\+dot, for Poly-\/\+Gaussian surfaces. 


\begin{DoxyParams}{Parameters}
{\em gamma} & The gamma value. \\
\hline
{\em gamma\+\_\+dot} & The gamma\+\_\+dot value. \\
\hline
{\em parameters} & Vector of parameters for the PDF function. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The PDF value. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a8478689be7f623b43ed44a8ec78b6bfb}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!occlusion@{occlusion}}
\index{occlusion@{occlusion}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{occlusion()}{occlusion()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a8478689be7f623b43ed44a8ec78b6bfb} 
template$<$typename T $>$ \\
T \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::occlusion (\begin{DoxyParamCaption}\item[{T}]{theta\+\_\+r1}{, }\item[{T}]{height}{, }\item[{T}]{distance}{, }\item[{int}]{direction}{}\end{DoxyParamCaption})}



Calculate the probability of a reflected particle to escape the surface, given a certain travelled horizontal distance. 


\begin{DoxyParams}{Parameters}
{\em theta\+\_\+r1} & The theta\+\_\+r1 angle. \\
\hline
{\em height} & The non-\/dimensional height of the particle. \\
\hline
{\em distance} & The horizontal distance value. \\
\hline
{\em direction} & The direction of the particle trajectory. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The value of the probability. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a830430d617d6b572d7b980a839e74c9b}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!random\_sampler\_1D@{random\_sampler\_1D}}
\index{random\_sampler\_1D@{random\_sampler\_1D}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{random\_sampler\_1D()}{random\_sampler\_1D()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a830430d617d6b572d7b980a839e74c9b} 
template$<$typename T $>$ \\
T \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::random\+\_\+sampler\+\_\+1D (\begin{DoxyParamCaption}\item[{T(\mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::\texorpdfstring{$\ast$}{*}}]{pdf~}{)(T, std\+::vector$<$ T $>$), }\item[{std\+::vector$<$ T $>$}]{parameters}{, }\item[{T}]{x0}{, }\item[{T}]{size}{, }\item[{T}]{domain\+\_\+x}{\mbox{[}$\,$\mbox{]}}\end{DoxyParamCaption})}



Perform random sampling in 1D using the Metropolis-\/\+Hastings algorithm. 


\begin{DoxyParams}{Parameters}
{\em pdf} & Pointer to the PDF function. \\
\hline
{\em parameters} & Vector of parameters for the PDF function. \\
\hline
{\em x0} & Initial position. \\
\hline
{\em size} & Size of the sampling range. \\
\hline
{\em domain\+\_\+x} & Array of domain limits. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The sampled value. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_ac172804eafcceacb8535bacadde04b36}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!random\_sampler\_2D@{random\_sampler\_2D}}
\index{random\_sampler\_2D@{random\_sampler\_2D}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{random\_sampler\_2D()}{random\_sampler\_2D()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_ac172804eafcceacb8535bacadde04b36} 
template$<$typename T $>$ \\
std\+::tuple$<$ T, T $>$ \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::random\+\_\+sampler\+\_\+2D (\begin{DoxyParamCaption}\item[{T(\mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::\texorpdfstring{$\ast$}{*}}]{pdf~}{)(T, T, std\+::vector$<$ T $>$), }\item[{std\+::vector$<$ T $>$}]{parameters}{, }\item[{T}]{x0}{, }\item[{T}]{y0}{, }\item[{T}]{size\+\_\+x}{, }\item[{T}]{size\+\_\+y}{, }\item[{T}]{domain\+\_\+x}{\mbox{[}$\,$\mbox{]}, }\item[{T}]{domain\+\_\+y}{\mbox{[}$\,$\mbox{]}}\end{DoxyParamCaption})}



Perform random sampling in 2D using the Metropolis-\/\+Hastings algorithm. 


\begin{DoxyParams}{Parameters}
{\em pdf} & Pointer to the PDF function. \\
\hline
{\em parameters} & Vector of parameters for the PDF function. \\
\hline
{\em x0} & Initial x position. \\
\hline
{\em y0} & Initial y position. \\
\hline
{\em size\+\_\+x} & Size of the x sampling range. \\
\hline
{\em size\+\_\+y} & Size of the y sampling range. \\
\hline
{\em domain\+\_\+x} & Array of x domain limits. \\
\hline
{\em domain\+\_\+y} & Array of y domain limits. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::tuple$<$\+T, T$>$ The sampled x and y values. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a6d32fe0d3b3b9e27284baf3674b6d0d9}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!random\_sampler\_angles@{random\_sampler\_angles}}
\index{random\_sampler\_angles@{random\_sampler\_angles}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{random\_sampler\_angles()}{random\_sampler\_angles()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a6d32fe0d3b3b9e27284baf3674b6d0d9} 
template$<$typename T $>$ \\
std\+::tuple$<$ T, T $>$ \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::random\+\_\+sampler\+\_\+angles (\begin{DoxyParamCaption}\item[{T(\mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::\texorpdfstring{$\ast$}{*}}]{pdf~}{)(T, T, std\+::vector$<$ T $>$), }\item[{std\+::vector$<$ T $>$}]{parameters}{, }\item[{T}]{x0}{, }\item[{T}]{y0}{, }\item[{T}]{size\+\_\+x}{, }\item[{T}]{size\+\_\+y}{, }\item[{T}]{domain\+\_\+x}{\mbox{[}$\,$\mbox{]}, }\item[{T}]{domain\+\_\+y}{\mbox{[}$\,$\mbox{]}}\end{DoxyParamCaption})}



Perform random sampling of angles in 2D using the Metropolis-\/\+Hastings algorithm. 


\begin{DoxyParams}{Parameters}
{\em pdf} & Pointer to the PDF function. \\
\hline
{\em parameters} & Vector of parameters for the PDF function. \\
\hline
{\em x0} & Initial x position. \\
\hline
{\em y0} & Initial y position. \\
\hline
{\em size\+\_\+x} & Size of the x sampling range. \\
\hline
{\em size\+\_\+y} & Size of the y sampling range. \\
\hline
{\em domain\+\_\+x} & Array of x domain limits. \\
\hline
{\em domain\+\_\+y} & Array of y domain limits. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
std\+::tuple$<$\+T, T$>$ The sampled theta\+\_\+r1 and theta\+\_\+r2 values. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_ab5ae1e66209c1a2cd2251d2c95c77994}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!sample\_batch@{sample\_batch}}
\index{sample\_batch@{sample\_batch}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{sample\_batch()}{sample\_batch()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_ab5ae1e66209c1a2cd2251d2c95c77994} 
template$<$typename T $>$ \\
std\+::vector$<$ \mbox{\hyperlink{structtrajectory}{trajectory}}$<$ T $>$ $>$ \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::sample\+\_\+batch (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



Sample a batch of particle trajectories. 

\begin{DoxyReturn}{Returns}
std\+::vector$<$trajectory$<$\+T$>$$>$ The sampled trajectories. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a0fddecf7d991d5593d31a18f9817a727}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!sample\_particle@{sample\_particle}}
\index{sample\_particle@{sample\_particle}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{sample\_particle()}{sample\_particle()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a0fddecf7d991d5593d31a18f9817a727} 
template$<$typename T $>$ \\
\mbox{\hyperlink{structtrajectory}{trajectory}}$<$ T $>$ \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::sample\+\_\+particle (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



Sample a single particle trajectory. 

\begin{DoxyReturn}{Returns}
trajectory$<$\+T$>$ The sampled trajectory. 
\end{DoxyReturn}
\Hypertarget{class_p_g___kernel_a4328bc06dde45b6abe1046fa8ac0f2aa}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!save@{save}}
\index{save@{save}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{save()}{save()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a4328bc06dde45b6abe1046fa8ac0f2aa} 
template$<$typename T $>$ \\
void \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::save (\begin{DoxyParamCaption}\item[{std\+::vector$<$ \mbox{\hyperlink{structtrajectory}{trajectory}}$<$ T $>$ $>$}]{trajectories}{, }\item[{std\+::string}]{filename}{}\end{DoxyParamCaption})}



Save the trajectories to a file. 


\begin{DoxyParams}{Parameters}
{\em trajectories} & The trajectories to save. \\
\hline
{\em filename} & The name of the file. \\
\hline
\end{DoxyParams}
\Hypertarget{class_p_g___kernel_a18705acb07a38d39fc28bfb53f5e3346}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!set\_num\_particles@{set\_num\_particles}}
\index{set\_num\_particles@{set\_num\_particles}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{set\_num\_particles()}{set\_num\_particles()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a18705acb07a38d39fc28bfb53f5e3346} 
template$<$typename T $>$ \\
void \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::set\+\_\+num\+\_\+particles (\begin{DoxyParamCaption}\item[{unsigned long}]{num\+\_\+particles}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the number of particles. 


\begin{DoxyParams}{Parameters}
{\em num\+\_\+particles} & The number of particles. \\
\hline
\end{DoxyParams}
\Hypertarget{class_p_g___kernel_a73a86278a501f9b8159eccdf61976fba}\index{PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}!shadow@{shadow}}
\index{shadow@{shadow}!PG\_Kernel$<$ T $>$@{PG\_Kernel$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{shadow()}{shadow()}}
{\footnotesize\ttfamily \label{class_p_g___kernel_a73a86278a501f9b8159eccdf61976fba} 
template$<$typename T $>$ \\
T \mbox{\hyperlink{class_p_g___kernel}{PG\+\_\+\+Kernel}}$<$ T $>$\+::shadow (\begin{DoxyParamCaption}\item[{T}]{theta\+\_\+r1}{, }\item[{T}]{height}{, }\item[{int}]{direction}{}\end{DoxyParamCaption})}



Calculate the probability of a reflected particle to escape the surface. 


\begin{DoxyParams}{Parameters}
{\em theta\+\_\+r1} & The theta\+\_\+r1 angle. \\
\hline
{\em height} & The non-\/dimensional height of the particle. \\
\hline
{\em direction} & The direction of the particle trajectory. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T The value of the probability. 
\end{DoxyReturn}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/PG\+\_\+\+Kernel.\+h\end{DoxyCompactItemize}
