\subsubsection{The {\tt BIVACT:} tracking module}\label{sect:BIVACData}

The {\tt BIVACT:} module provides an implementation of the diffusion or simplified $P_n$ method. The {\tt BIVACT:} module can only process
1D/2D regular geometries of type \moc{CAR1D}, \moc{CAR2D} and \moc{HEX}. The geometry is analyzed and
a LCM object with signature {\tt L\_BIVAC} is created with the tracking information.

\vskip 0.2cm

The calling specification for this module is:

\begin{DataStructure}{Structure \dstr{BIVACT:}}
\dusa{TRKNAM}
\moc{:=} \moc{BIVACT:} $[$ \dusa{TRKNAM} $]$ 
\dusa{GEONAM} \moc{::}  \dstr{desctrack} \dstr{descbivac}
\end{DataStructure}

\noindent  where
\begin{ListeDeDescription}{mmmmmmm}

\item[\dusa{TRKNAM}] {\tt character*12} name of the \dds{tracking} data
structure that will contain region volume and surface area vectors in
addition to region identification pointers and other tracking information.
If \dusa{TRKNAM} also appears on the RHS, the previous tracking 
parameters will be applied by default on the current geometry.

\item[\dusa{GEONAM}] {\tt character*12} name of the \dds{geometry} data
structure.

\item[\dstr{desctrack}] structure describing the general tracking data (see
\Sect{TRKData})

\item[\dstr{descbivac}] structure describing the transport tracking data
specific to \moc{BIVACT:}.

\end{ListeDeDescription}

\vskip 0.2cm

The \moc{BIVACT:} specific tracking data in \dstr{descbivac} is defined as

\begin{DataStructure}{Structure \dstr{descbivac}}
$[$ $\{$ \moc{PRIM} $[$ \dusa{ielem} \dusa{icol} $]$ \\
~~~~$|$ \moc{DUAL} $[$ \dusa{ielem} \dusa{icol} $]$ \\
~~~~$|$ \moc{MCFD} $\}~]$ \\
$[~\{$ \moc{PN} $|$ \moc{SPN} $\}$ $[$ \moc{DIFF} $]$ \dusa{nlf} $[$ \moc{SCAT} \dusa{iscat} $]~[$ \moc{VOID} \dusa{nvd}~$]~]$ \\
{\tt ;}
\end{DataStructure}

\noindent where

\begin{ListeDeDescription}{mmmmmmm}

\item[\dstr{desctrack}] structure describing the general tracking data (see
\Sect{TRKData})

\item[\moc{PRIM}] keyword to set a primal finite element (classical)
discretization.

\item[\moc{DUAL}] keyword to set a mixed-dual finite element discretization. If the
geometry is hexagonal, a Thomas-Raviart-Schneider method is used.

\item[\moc{MCFD}] keyword to set a mesh-centered finite difference discretization
in hexagonal geometry.

\item[\dusa{ielem}] order of the finite element representation.  The values
permitted are: 1 (linear polynomials), 2 (parabolic polynomials), 3 (cubic
polynomials) or 4 (quartic polynomials). By default \dusa{ielem}=1.

\item[\dusa{icol}] type of quadrature used to integrate the mass matrices. The
values permitted are: 1 (analytical integration), 2  (Gauss-Lobatto quadrature)
or 3 (Gauss-Legendre quadrature). By default \dusa{icol}=2. The analytical
integration corresponds to classical finite elements; the Gauss-Lobatto
quadrature corresponds to a variational or nodal type collocation and the
Gauss-Legendre quadrature corresponds to superconvergent finite elements.

\item[\moc{PN}] keyword to set a spherical harmonics ($P_n$) expansion of the flux.\cite{nse2005} This option is currently limited to 1D
and 2D Cartesian geometries.

\item[\moc{SPN}] keyword to set a simplified spherical harmonics ($SP_n$) expansion
of the flux.\cite{nse2005,ane10a} This option is currently available with 1D and 2D Cartesian geometries
and with 2D hexagonal geometries.

\item[\moc{DIFF}] keyword to force using $1/3D^{g}$ as $\Sigma_1^{g}-\Sigma_{{\rm s}1}^{g}$ cross sections. A $P_1$ or $SP_1$ method
will therefore behave as diffusion theory.

\item[\dusa{nlf}] order of the $P_n$ or $SP_n$ expansion (odd number). Set to zero for diffusion theory (default value).

\item[\moc{SCAT}] keyword to limit the anisotropy of scattering sources.

\item[\dusa{iscat}] number of terms in the scattering sources. \dusa{iscat} $=1$ is used for
isotropic scattering in the laboratory system. \dusa{iscat} $=2$ is used for
linearly anisotropic scattering in the laboratory system. The default value is set to $n+1$
in $P_n$ or $SP_n$ case.

\item[\moc{VOID}] key word to set the number of base points in the Gauss-Legendre quadrature used to integrate
void boundary conditions if \dusa{icol} $=3$ and \dusa{n} $\ne 0$.

\item[\dusa{nvd}] type of quadrature. The values
permitted are: 0 (use a (\dusa{n}$+2$)--point quadrature consistent with $P_{{\rm n}}$ theory),
1 (use a (\dusa{n}$+1$)--point quadrature consistent with $S_{{\rm n}+1}$ theory),
2 (use an analytical integration of the void boundary conditions). By default \dusa{nvd}=0.

\end{ListeDeDescription}

Various finite element approximations can be obtained by combining different
values of \dusa{ielem} and \dusa{icol}:

\begin{itemize}

\item {\tt PRIM 1 1~:} Linear finite elements;

\item {\tt PRIM 1 2~:} Mesh corner finite differences;

\item {\tt PRIM 1 3~:} Linear superconvergent finite elements;

\item {\tt PRIM 2 1~:} Quadratic finite elements;

\item {\tt PRIM 2 2~:} Quadratic variational collocation method;

\item {\tt PRIM 2 3~:} Quadratic superconvergent finite elements;

\item {\tt PRIM 3 1~:} Cubic finite elements;

\item {\tt PRIM 3 2~:} Cubic variational collocation method;

\item {\tt PRIM 3 3~:} Cubic superconvergent finite elements;

\item {\tt PRIM 4 2~:} Quartic variational collocation method;

\item {\tt DUAL 1 1~:} Mixed-dual linear finite elements;

\item {\tt DUAL 1 2~:} Mesh centered finite differences;

\item {\tt DUAL 1 3~:} Mixed-dual linear superconvergent finite elements

(numerically equivalent to {\tt PRIM~1~3});

\item {\tt DUAL 2 1~:} Mixed-dual quadratic finite elements;

\item {\tt DUAL 2 2~:} Quadratic nodal collocation method;

\item {\tt DUAL 2 3~:} Mixed-dual quadratic superconvergent finite elements

(numerically equivalent to {\tt PRIM~2~3});

\item {\tt DUAL 3 1~:} Mixed-dual cubic finite elements;

\item {\tt DUAL 3 2~:} Cubic nodal collocation method;

\item {\tt DUAL 3 3~:} Mixed-dual cubic superconvergent finite elements

(numerically equivalent to {\tt PRIM~3~3});

\item {\tt DUAL 4 2~:} Quartic nodal collocation method;

\end{itemize}
\eject
