\subsection{The {\tt ASM:} module}\label{sect:ASMData}

We will now describe the assembly modules which can be used to prepare the
group-dependent complete collision probability or the assembly matrices required
by the flux solution module of DRAGON.  The assembly module {\tt ASM:} is
generally called after a tracking module; it recovers tracking lengths and
material numbers from the sequential tracking file and then computes the
collision probability or group--dependent system matrices under various
normalizations. The calling specifications are:

\begin{DataStructure}{Structure \dstr{ASM:}}
\dusa{PIJNAM} \moc{:=} \moc{ASM:} $[$ \dusa{PIJNAM} $]$ \dusa{LIBNAM} 
\dusa{TRKNAM} $[$ \dusa{TRKFIL} $]$ \moc{::} \dstr{descasm}
\end{DataStructure}

\noindent where
\begin{ListeDeDescription}{mmmmmmmm}

\item[\dusa{PIJNAM}] {\tt character*12} name of \dds{asmpij} data
structure containing the system matrices. If \dusa{PIJNAM} appears on the RHS,
the \dstr{descasm} information previously stored in \dusa{PIJNAM} is kept.

\item[\dusa{LIBNAM}] {\tt character*12} name of the \dds{macrolib} or
\dds{microlib} data structure that contains the
macroscopic cross sections (see \Sectand{MACData}{LIBData}).

\item[\dusa{TRKNAM}] {\tt character*12} name of the \dds{tracking} data
structure containing the tracking (see \Sect{TRKData}).

\item[\dusa{TRKFIL}] {\tt character*12} name of the sequential binary tracking
file used to store the tracks lengths. This file is given if and only if it was
required in the previous tracking module call (see \Sect{TRKData}).

\item[\dstr{descasm}] structure containing the input data to this module (see
\Sect{descasm}).

\end{ListeDeDescription}

\subsubsection{Data input for module {\tt ASM:}}\label{sect:descasm}

\begin{DataStructure}{Structure \dstr{descasm}}
$[$ \moc{EDIT} \dusa{iprint} $]$ \\
$[$ $\{$ \moc{ARM} $|$ \\
~~~~$\{$ \moc{PIJ} $|$ \moc{PIJK} $\}$ $[$ \moc{SKIP} $]$ \\
~~~~$[$ $\{$ \moc{NORM} $|$ \moc{ALBS} $\}$ $]$ \\
~~~~$[$ \moc{PNOR} $\{$ \moc{NONE} $|$ \moc{DIAG} $|$ \moc{GELB} $|$ \moc{HELI} $|$ \moc{NONL} $\}$ $]$ \\
$\}$ $]$ \\
$[~\{$ \moc{ECCO} $|$ \moc{HETE} $\}~]$ \\
{\tt ;}
\end{DataStructure}

\noindent
where

\begin{ListeDeDescription}{mmmmmmmm}

\item[\moc{EDIT}] keyword used to modify the print level \dusa{iprint}.

\item[\dusa{iprint}] index used to control the printing of this module. The
amount of output produced by this tracking module will vary substantially
depending on the print level specified. 

\item[\moc{ARM}] keyword to specify that an assembly calculation is carried out without
building the full collision probability matrices. This option can only be used for a geometry
tracked using the interface current method (with EURYDICE-2 option within \moc{SYBILT:} or
with the multicell surfacic approximation within \moc{SALT:}), \moc{MCCGT:} or \moc{SNT:} module.
By default, the \moc{PIJ} option is used.

\item[\moc{PIJ}] keyword to specify that the standard scattering-reduced collision
probabilities must be computed. This option cannot be used with the \moc{MCCGT:} and \moc{SNT:}
modules. This is the default option.

\item[\moc{PIJK}] keyword to specify that both the directional and standard
scattering-reduced collision probabilities must be computed. Moreover, the additional directional
collision probability matrix can only be used if \moc{HETE} is activated in
\Sect{FLUData}. Finally, the \moc{PIJK}
option is only available for 2--D geometries analyzed with the operator
\moc{EXCELT:} with collision probability option. By default, the \moc{PIJ}
option is used.

\item[\moc{SKIP}] keyword to specify that only the reduced collision
probability matrix $p^{g}_{ij}$ is to be computed. In general, the scattering
modified collision probability matrix $p^{g}_{s,ij}$ is also computed using:
  $$
p^{g}_{s,ij}=\left[ I-p^{g}_{ij} \Sigma^{g\to g}_{s0} \right] ^{-1}
p^{g}_{ij}
  $$
where $\Sigma^{g\to g}_{s0}$ is the within group isotropic scattering cross
section. When available, $p^{g}_{s,ij}$ is used in the flux solution module in
such a way that for the groups where there is no up-scattering, the thermal
iteration is automatically deactivated. In the case where the \moc{SKIP} option
is activated, the $p^{g}_{ij}$ matrix is used and thermal iterations are
required in every energy group. Consequently, the total number of inner
iterations is greatly increased.

\item[\moc{NORM}] keyword to specify that the scattering-reduced collision probability matrix is
to be normalized in such a way as to eliminate all neutron loss (even if the
region under consideration has external albedo boundary conditions which should
result in neutron loss). When used with a void boundary condition (zero reentrant
current), this option is equivalent to imposing  {\it a posteriori} a uniform
reentrant current.

\item[\moc{ALBS}] keyword to specify that a consistent Selengut normalization
of the scattering-reduced collision probability matrix is to be used both for the flux solution
module (see \Sect{FLUData}) and in the equivalence calculation (see
\Sect{EDIData}). This keyword results in storing the scattering-reduced escape probabilities
$W_{iS}$ in the record named {\tt 'DRAGON-WIS'}. For all the cases where this option is used, it is necessary to
define a geometry with \moc{VOID} external boundary conditions (see
\Sect{GEOData}).

\item[\moc{PNOR}] keyword to specify that the collision, leakage and escape
probability matrices are to be normalized in such a way as to satisfy explicitly
the neutron conservation laws. This option compensates for the errors which will
arise in the numerical evaluation of these probabilities and may result in
non-conservative collision probability matrices. The default option is now \moc{HELI} while it was
formerly \moc{GELB} ({\bf Revision 3.03}).

\item[\moc{NONE}] keyword to specify that the probability matrices are not to
be renormalized.

\item[\moc{DIAG}] keyword to specify that only the diagonal element of the
probability matrices will be modified in order to insure the validity of the
conservation laws.

\item[\moc{GELB}] keyword to specify that the Gelbard algorithm will be used
to normalize the collision probability matrices.\cite{RENOR} 

\item[\moc{HELI}] keyword to specify that the Helios algorithm will be used
to normalize the collision probability matrices.\cite{Helios} 

\item[\moc{NONL}] keyword to specify that a non-linear multiplicative
algorithm will be used to normalize the collision probability
matrices.\cite{RENOR} 

\item[\moc{ECCO}] keyword used to compute the $P_1$--scattering reduced
collision probability or system matrices required by the ECCO isotropic
streaming model. By default, this information is not calculated.

\item[\moc{HETE}] keyword used to compute the information required by a
method of characteristics (MOC) solution of the TIBERE anisotropic
streaming model. By default, this information is not calculated.

\end{ListeDeDescription}
\eject
