From 7dfcc480ba1e19bd3232349fc733caef94034292 Mon Sep 17 00:00:00 2001
From: stainer_t <thomas.stainer@oecd-nea.org>
Date: Mon, 8 Sep 2025 13:48:49 +0200
Subject: Initial commit from Polytechnique Montreal

---
 doc/IGE335/Section3.04_trivac.tex | 135 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 135 insertions(+)
 create mode 100644 doc/IGE335/Section3.04_trivac.tex

(limited to 'doc/IGE335/Section3.04_trivac.tex')

diff --git a/doc/IGE335/Section3.04_trivac.tex b/doc/IGE335/Section3.04_trivac.tex
new file mode 100644
index 0000000..0324f8f
--- /dev/null
+++ b/doc/IGE335/Section3.04_trivac.tex
@@ -0,0 +1,135 @@
+\subsubsection{The {\tt TRIVAT:} tracking module}\label{sect:TRIVACData}
+
+The {\tt TRIVAT:} module provides an implementation of the diffusion or simplified $P_n$ method. The {\tt TRIVAT:} module is
+used to perform a TRIVAC-type ``tracking"  on a 1D/2D/3D regular Cartesian or hexagonal geometry.\cite{BIVAC,TRIVAC} The
+geometry is analyzed and a LCM object with signature {\tt L\_TRIVAC} is created with the following information:
+
+\begin{itemize}
+\item Diagonal and hexagonal symmetries are unfolded and the mesh-splitting 
+operations are performed. Volumes, material mixture and averaged flux recovery
+indices are computed on the resulting geometry. \item A finite element
+discretization is performed and the corresponding numbering is saved. \item The
+unit finite element matrices (mass, stiffness, etc.) are recovered. \item
+Indices related to an ADI preconditioning with or without supervectorization
+are saved. \end{itemize}
+
+The calling specification for this module is:
+
+\begin{DataStructure}{Structure \dstr{TRIVAT:}}
+\dusa{TRKNAM}
+\moc{:=} \moc{TRIVAT:} $[$ \dusa{TRKNAM} $]$ 
+\dusa{GEONAM} \moc{::}  \dstr{desctrack} \dstr{descTRIVAC}
+\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{descTRIVAC}] structure describing the transport tracking data
+specific to \moc{TRIVAT:}.
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+The \moc{TRIVAT:} specific tracking data in \dstr{descTRIVAC} is defined as
+
+\begin{DataStructure}{Structure \dstr{descTRIVAC}}
+$[~\{$ \moc{PRIM} $[$ \dusa{ielem} $]~|$ \moc{DUAL} $[$ \dusa{ielem} \dusa{icol} $]~|$ \moc{MCFD} $[$ \dusa{ielem} $]~|$ \moc{LUMP} $[$ \dusa{ielem} $]~\}~]$ \\
+$[$ \moc{SPN} $[$ \moc{DIFF} $]$ \dusa{nlf} $[$ \moc{SCAT} \dusa{iscat} $]~[$ \moc{VOID} \dusa{nvd} $]~]$ \\
+$[$ \moc{ADI} \dusa{nadi} $]$ \\
+$[$ \moc{VECT} $[$ \dusa{iseg} $]~[$ \moc{PRTV} \dusa{impv} $]~]$ \\
+{\tt ;}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dstr{desctrack}] structure describing the general tracking data (see
+\Sect{TRKData})
+
+\item[\moc{PRIM}] key word to set a discretization based on the variational collocation method.
+
+\item[\moc{DUAL}] key word to set a mixed-dual finite element discretization. If the
+geometry is hexagonal, a Thomas-Raviart-Schneider method is used.
+
+\item[\moc{MCFD}] key word to set a discretization based  on the nodal
+collocation method. The mesh centered finite difference approximation is the
+default option and is generally set using {\tt MCFD~1}. The {\tt MCFD}
+approximations are numerically equivalent to the {\tt DUAL} approximations
+with \dusa{icol}=2; however, the {\tt MCFD} approximations are less
+expensive. 
+
+\item[\moc{LUMP}] key word to set a discretization  based on the nodal
+collocation method with serendipity approximation. The serendipity
+approximation is different from the \moc{MCFD} option in cases with \dusa{ielem}$\ge$2. This option is not available for hexagonal geometries.
+
+\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{SPN}] keyword to set a simplified spherical harmonics ($SP_n$) expansion
+of the flux.\cite{nse2005,ane10a} This option is available with 1D, 2D and 3D Cartesian geometries and with 2D and 3D
+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.
+
+\item[\moc{ADI}] keyword to set the number of ADI iterations at the inner
+iterative level.
+
+\item[\dusa{nadi}] number of ADI iterations (default: \dusa{nadi} $=2$).
+
+\item[\moc{VECT}] key word to set an ADI preconditionning with
+supervectorization. By default, TRIVAC uses an ADI preconditionning without
+supervectorization.
+
+\item[\dusa{iseg}] width of a vectorial register. \dusa{iseg} is generally a multiple of 64. By default, \dusa{iseg}=64.
+
+\item[\moc{PRTV}] key word used to set \dusa{impv}.
+
+\item[\dusa{impv}] index used to control the  printing in supervectorization
+subroutines. =0 for no print; =1 for minimum printing (default value); Larger
+values produce increasing amounts of output.
+
+\end{ListeDeDescription}
+
+Various finite element approximations can be obtained with different values of \dusa{ielem}.
+
+\eject
-- 
cgit v1.2.3

