\subsubsection{The {\tt SALT:} tracking module}\label{sect:SALTData1} The {\tt SALT:} tracking module supports solutions of the Boltzmann transport equation based on a {\sl surfacic} representation of the geometry. Supported solutions are: \begin{itemize} \item the collision probability method (PIJ) \item the method of characteristics (MOC) \item the multicell surfacic approximation where macro geometries are coupled using incoming and outgoing interface currents. This option is enabled automatically if macro geometries are defined in the SALOMON--formatted file \dusa{SURFIL}. Macro geometries lying on a symmetry axis of the domain are unfolded. \end{itemize} The \moc{{\tt SALT:}} module can process general 2-D geometries defined from {\sl surfacic elements}. It is used to compute the tracking information requested in flux solution. Two types of tracking are supported: \begin{itemize} \item The {\tt SALT:} module with keyword {\tt TISO} produces non-cycling tracks distributed uniformally over the domain. \item The {\tt SALT:} module with keyword {\tt TSPC} has the capability to perform {\sl cyclic tracking} over a closed square, rectangular or equilateral triangular domain. Each track cover a certain surface before going back to the starting point after a distance $L$, as depicted in Figs.~\ref{fig:cart_tspc} and~\ref{fig:hex_tspc}. Only specific angles, function of integer values $n$ and $m$, make possible the cycling of trajectories. The {\tt TSPC} option is not available with the multicell surfacic approximation. \end{itemize} \begin{figure}[h!] \begin{center} \epsfxsize=9cm \centerline{ \epsffile{cart_tspc.eps}} \parbox{14.0cm}{\caption{Cycling tracking over a Cartesian domain.}\label{fig:cart_tspc}} \end{center} \end{figure} \begin{figure}[h!] \begin{center} \epsfxsize=14cm \centerline{ \epsffile{hex_tspc.eps}} \parbox{14.0cm}{\caption{Cycling tracking over an hexagonal domain.}\label{fig:hex_tspc}} \end{center} \end{figure} The calling specification for this module is: \begin{DataStructure}{Structure \dstr{SALT:}} \dusa{TRKNAM} \dusa{TRKFIL} \moc{:=} \moc{SALT:}~\dusa{SURFIL} $[$ \dusa{GEONAM} $]$ \moc{::} \dstr{desctrack} \dstr{descsalt} \end{DataStructure} \noindent where \begin{ListeDeDescription}{mmmmmmm} \item[\dusa{TRKNAM}] \texttt{character*12} name of the SALT \dds{tracking} data structure that will contain region volume and surface area vectors in addition to region identification pointers and other tracking information. \item[\dusa{TRKFIL}] \texttt{character*12} name of the sequential binary tracking file used to store the tracks lengths. \item[\dusa{SURFIL}] \texttt{character*12} name of the SALOMON--formatted sequential {\sc ascii} file used to store the surfacic elements of the geometry. This file may be build using the operator {\tt G2S:} (see \Sect{G2SData}) or recovered from SALOME. \item[\dusa{GEONAM}] {\tt character*12} name of the \dds{geometry} data structure containing the double heterogeneity (Bihet) data. \item[\dstr{desctrack}] structure describing the general tracking data (see \Sect{TRKData}) \item[\dstr{descsalt}] structure describing the transport tracking data specific to \moc{SALT:}. \end{ListeDeDescription} \vskip 0.2cm All information for the modelization used can be found in \citen{salt}. The \moc{{\tt SALT:}} specific tracking data in \dstr{descsalt} is defined as : \begin{DataStructure}{Structure \dstr{descsalt}} $[$ \moc{ANIS} \dusa{nanis} $]$ \\ $[~\{$ \moc{ONEG} $|$ \moc{ALLG} $[$ \moc{BATCH} \dusa{nbatch} $]~\}~]$\\ $[~[$ \moc{QUAB} \dusa{iquab} $]~[~\{$ \moc{SAPO} $|$ \moc{HEBE} $|$ \moc{SLSI} $[$ \dusa{frtm} $]~\}~]~]$ \\ $[~\{$ \moc{PISO} $|$ \moc{PSPC} $[$ \moc{CUT} \dusa{pcut} $]$ $\}~]$ \\ $[$ $\{$ \moc{GAUS} $|$ \moc{CACA} $|$ \moc{CACB} $|$ \moc{LCMD} $|$ \moc{OPP1} $|$ \moc{OGAU} $\}~[$ \dusa{nmu} $]~]$ \\ $\{$ \moc{TISO} $[~\{$ \moc{EQW} $|$ \moc{GAUS} $|$ \moc{PNTN} $|$ \moc{SMS} $|$ \moc{LSN} $|$ \moc{QRN} $\}~]$ \dusa{nangl} \dusa{dens} \\ $~~~~~|$ \moc{TSPC} $[~\{$ \moc{MEDI} $|$ \moc{EQW2} $\}~]$ \dusa{nangl} \dusa{dens} $\}$ \\ $[$ \moc{CORN} \dusa{pcorn} $]$ \\ $[$ \moc{NOTR} $]$\\ $[$ \moc{NBSLIN} \dusa{nbslin} $]$ \\ $[$ \moc{MERGMIX} $]$\\ $[$ \moc{LONG} $]$\\ $[~\{$ \moc{IC} $|$ \moc{NOIC} $\}~]~[$ \moc{EPSJ} \dusa{epsj} $]$ \\ {\tt ;} \end{DataStructure} \noindent where \begin{ListeDeDescription}{mmmmmmmm} \item[\moc{ANIS}] keyword to specify the order of scattering anisotropy. \item[\dusa{nanis}] order of anisotropy in transport calculation. A default value of 1 represents isotropic (or transport-corrected) scattering while a value of 2 correspond to linearly anisotropic scattering. \item[\moc{ONEG}] keyword to specify that the tracking is read before computing each group-dependent collision probability or algebraic collapsing matrix (default value if \dusa{TRKFIL} is set). The tracking file is read in each energy group if the method of characteristics (MOC) is used. \item[\moc{ALLG}] keyword to specify that the tracking is read once and the collision probability or algebraic collapsing matrices are computed in many energy groups. The tracking file is read once if the method of characteristics (MOC) is used. \item[\moc{BATCH}] keyword to specify the number of tracks processed by each core for each energy group. OpenMP parallelization is processing each energy group on a different core. The default value is \dusa{nbatch} $=1$. \item[\dusa{nbatch}] the number of tracks processed by each core. Usually, a value \dusa{nbatch} $\ge 100$ is recommended. \item[\moc{QUAB}] keyword to specify the number of basis point for the numerical integration of each micro-structure in cases involving double heterogeneity (Bihet). \item[\dusa{iquab}] the number of basis point for the numerical integration of the collision probabilities in the micro-volumes using the Gauss-Jacobi formula. The values permitted are: 1 to 20, 24, 28, 32 or 64. The default value is \dusa{iquab} = 5. If \dusa{iquab} is negative, its absolute value will be used in the She-Liu-Shi approach to determine the split level in the tracking used to compute the probability collisions. \item[\moc{SAPO}] use the Sanchez-Pomraning double-heterogeneity model.\cite{sapo} \item[\moc{HEBE}] use the Hebert double-heterogeneity model (default option).\cite{BIHET} \item[\moc{SLSI}] use the She-Liu-Shi double-heterogeneity model without shadow effect.\cite{She2017} \item[\dusa{frtm}] the minimum microstructure volume fraction used to compute the size of the equivalent cylinder in She-Liu-Shi approach. The default value is \dusa{frtm} $=0.05$. \item[\moc{PISO}] keyword to specify that a collision probability calculation with isotropic reflection boundary conditions is required. It is the default option if a \moc{TISO} type integration is chosen. To obtain accurate transmission probabilities for the isotropic case it is recommended that the normalization options in the \moc{ASM:} module be used. \item[\moc{PSPC}] keyword to specify that a collision probability calculation with mirror like reflection or periodic boundary conditions is required; this is the default option if a \moc{TSPC} type integration is chosen. This calculation is only possible if the file was initially constructed using the \moc{TSPC} option. \item[\moc{CUT}] keyword to specify the input of cutting parameters for the specular collision probability of characteristic integration. \item[\dusa{pcut}] real value representing the maximum error allowed on the exponential function used for specular collision probability calculations. Tracks will be cut at a length such that the error in the probabilities resulting from this reduced track will be of the order of pcut. By default, the tracks are extended to infinity and \dusa{pcut} = 0.0. If this option is used in an entirely reflected case, it is recommended to use the \moc{NORM} command in the \moc{ASM:} module. \item[\moc{GAUS}] keyword to specify that Gauss-Legendre polar integration angles are to be selected for the polar quadrature when a prismatic tracking is considered. The conservation is ensured up to $P_{\dusa{nmu}-1}$ scattering. \item[\moc{CACA}] keyword to specify that CACTUS type equal weight polar integration angles are to be selected for the polar quadrature when a prismatic tracking is considered.\cite{CACTUS} The conservation is ensured only for isotropic scattering. \item[\moc{CACB}] keyword to specify that CACTUS type uniformly distributed integration polar angles are to be selected for the polar quadrature when a prismatic tracking is considered.\cite{CACTUS} The conservation is ensured only for isotropic scattering. \item[\moc{LCMD}] keyword to specify that optimized (McDaniel--type) polar integration angles are to be selected for the polar quadrature when a prismatic tracking is considered.\cite{LCMD} This is the default option. The conservation is ensured only for isotropic scattering. \item[\moc{OPP1}] keyword to specify that $P_1$ constrained optimized (McDaniel--type) polar integration angles are to be selected for the polar quadrature when a prismatic tracking is considered.\cite{LeTellierpa} The conservation is ensured only for isotropic and linearly anisotropic scattering. \item[\moc{OGAU}] keyword to specify that Optimized Gauss polar integration angles are to be selected for the method of characteristics.\cite{LCMD,LeTellierpa} The conservation is ensured up to $P_{\dusa{nmu}-1}$ scattering. \item[\dusa{nmu}] user-defined number of polar angles. By default, a value consistent with \dusa{nangl} is computed by the code. For \moc{LCMD}, \moc{OPP1}, \moc{OGAU} quadratures, \dusa{nmu} is limited to 2, 3 or 4. \item[\moc{TISO}] keyword to specify that isotropic tracking parameters will be supplied. This is the default tracking option for cluster geometries. \item[\moc{TSPC}] keyword to specify that specular tracking parameters will be supplied. \item[\moc{EQW}] keyword to specify the use of equal weight quadrature.\cite{eqn} The conservation is ensured up to $P_{\dusa{nangl}/2}$ scattering. \item[\moc{GAUS}] (after \moc{TISO} keyword) keyword to specify the use of the Gauss-Legendre quadrature. This option is valid only if an hexagonal geometry is considered. \item[\moc{PNTN}] keyword to specify that Legendre-Techbychev quadrature quadrature will be selected.\cite{pntn} The conservation is ensured only for isotropic and linearly anisotropic scattering. \item[\moc{SMS}] keyword to specify that Legendre-trapezoidal quadrature quadrature will be selected.\cite{sms} The conservation is ensured up to $P_{\dusa{nangl}-1}$ scattering. \item[\moc{LSN}] keyword to specify the use of the $\mu_1$--optimized level-symmetric quadrature. The conservation is ensured up to $P_{\dusa{nangl}/2}$ scattering. \item[\moc{QRN}] keyword to specify the use of the quadrupole range (QR) quadrature.\cite{quadrupole} \item[\moc{MEDI}] keyword to specify the use of a median angle quadrature in \moc{TSPC} cases. For a rectangular Cartesian domain of size $X \times Y$, the azimuthal angles in $(0,\pi/2)$ interval are obtained from formula $$ \phi_k=\tan^{-1}{\displaystyle kY\over\displaystyle (2p+2-k)X} \, , \ \ k=1,\, 3,\, 5, \, \dots, \, 2p+1 . $$ \item[\moc{EQW2}] keyword to specify the use of a standard cyclic quadrature without angles $\phi=0$ and $\phi=\pi/2$ in \moc{TSPC} cases. For a rectangular Cartesian domain of size $X \times Y$, the azimuthal angles in $(0,\pi/2)$ interval are obtained from formula $$ \phi_k=\tan^{-1}{\displaystyle k Y\over\displaystyle (p+2-k)X} \, , \ \ k=1,\, 2,\, 3, \, \dots, \, p+1 . $$ This is the default option. \item[\dusa{nangl}] angular quadrature parameter. For a 3-D \moc{EQW} option, the choices are \dusa{nangl} = 2, 4, 8, 10, 12, 14 or 16. For a 3-D \moc{PNTN} or \moc{SMS} option, \dusa{nangl} is an even number smaller than 46.\cite{ige260} For 2-D isotropic applications, any value of \dusa{nangl} may be used, equidistant angles will be selected. For 2-D specular applications the input value must be of the form $p + 1$ where $p$ is a prime number, as proposed in Ref.~\citen{DragonPIJS3}. In this case, the choice of \dusa{nangl} = 2, 6, 8, 12, 14, 18, 20, 24, or 30 are allowed. For hexagonal lattices, including equilateral triangular and lozenge geometry, the choice of \dusa{nangl} = 3, 6, 12 or 18 are allowed. \item[\dusa{dens}] real value representing the density of the integration lines (in cm$^{-1}$ for 2-D Cartesian cases. This choice of density along the plan perpendicular to each angle depends on the geometry of the cell to be analyzed. If there are zones of very small volume, a high line density is essential. This value will be readjusted by \moc{SALT:}. \item[\moc{CORN}] keyword to specify the meaningful distance (cm) between a tracking line and a surfacic element. \item[\dusa{pcorn}] meaningful distance (cm) between a tracking line and a surfacic element. By default, \dusa{pcorn} $=1.0 \times 10^{-5}$ cm. \item[\moc{NOTR}] keyword to specify that the geometry will not be tracked. This is useful for 2-D geometries to generate a tracking data structure that can be used by the \moc{PSP:} module (see \Sect{PSPData}). One can then verify visually if the geometry is adequate before the tracking process as such is undertaken. \item[\moc{NBSLIN}] keyword to set the maximum number of segments in a single tracking line. \item[\dusa{nbsl}] integer value representing the maximum number of segments in a single tracking line. The default value is \dusa{nbsl} = 100000. \item[\moc{MERGMIX}] keyword to specify that all regions belonging to the same mixture will be merged together. This option should only be used as an attempt to reduce CPU costs in resonance self-shielding calculations. \item[\moc{LONG}] keyword to specify that a ``long'' tracking file will be generated. This option is required if the tracking file is to be used by the \moc{TLM:} module (see \Sect{TLMData}). \item[\moc{IC}] keyword to force the use of the multicell surfacic approximation. By default, the multicell surfacic approximation is used if the number of macro geometries in the SALOMON--formatted file \dusa{SURFIL} is greater than one. \item[\moc{NOIC}] keyword to avoid using the multicell surfacic approximation. By default, the multicell surfacic approximation is used if the number of macro geometries in the SALOMON--formatted file \dusa{SURFIL} is greater than one. \item[\moc{EPSJ}] keyword to specify the stopping criterion for the flux-current iterations of the multicell surfacic approximation, in case where the {\tt ARM} keyword is set in the {\tt ASM:} module or in a resonance self-shielding module ({\tt SHI:}, {\tt USS:}, etc.). \item[\dusa{epsj}] the stopping criterion value. The default value is \dusa{epsj} $= 0.5 \times 10^{-5}$. \end{ListeDeDescription} \clearpage