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_mccg.tex | 152 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 152 insertions(+)
 create mode 100644 doc/IGE335/Section3.04_mccg.tex

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

diff --git a/doc/IGE335/Section3.04_mccg.tex b/doc/IGE335/Section3.04_mccg.tex
new file mode 100644
index 0000000..0940733
--- /dev/null
+++ b/doc/IGE335/Section3.04_mccg.tex
@@ -0,0 +1,152 @@
+\subsubsection{The {\tt MCCGT:} tracking module}\label{sect:MCCGData}
+
+This module {\sl must} follow a call to module \moc{EXCELT:}, \moc{NXT:} or \moc{SALT:} in case the method of characteristics (MOC) is needed. Its calling
+specification is:
+
+\begin{DataStructure}{Structure \dstr{MCCGT:}}
+\dusa{TRKNAM} \moc{:=} \moc{MCCGT:} \dusa{TRKNAM} \dusa{TRKFIL} 
+$[$ \dusa{GEONAM} $]$ \moc{::} \dstr{descmccg}
+\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. It is provided by \moc{EXCELT:} or \moc{NXT:} operator and modified by \moc{MCCGT:} operator.
+
+\item[\dusa{TRKFIL}] {\tt character*12} name of the sequential binary tracking file used to store the tracks lengths. This file is provided by \moc{EXCELT:} or \moc{NXT:} operator and used without modification by \moc{MCCGT:} operator.
+
+\item[\dusa{GEONAM}] {\tt character*12} name of the optional \dds{geometry} data
+structure. This structure is only required to recover double-heterogeneity data.
+
+\item[\dstr{descmccg}] structure describing the transport tracking data
+specific to \moc{MCCGT:}.
+
+\end{ListeDeDescription}
+
+\vskip 0.15cm
+
+The \moc{MCCGT:} specific tracking data in \dstr{descmccg} is defined as
+
+\begin{DataStructure}{Structure \dstr{descmccg}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ $\{$ \moc{LCMD} $|$ \moc{OPP1} $|$ \moc{OGAU} $|$ \moc{GAUS} $|$ \moc{DGAU} $|$ \moc{CACA} $|$ \moc{CACB} $\}~[$ \dusa{nmu} $]~]$ \\
+$\{$ \moc{DIFC} $[~\{$ \moc{NONE} $|$ \moc{DIAG} $|$ \moc{FULL} $|$ \moc{ILU0} $\}~]$ $~[$ \moc{TMT} $]$ $~[$ \moc{LEXA} $]$ \\
+$~~~~~|$ \\
+$~~~~~[~[$ \moc{AAC} \dusa{iaca} $[~\{$ \moc{NONE} $|$ \moc{DIAG} $|$ \moc{FULL} $|$ \moc{ILU0} $\}~]~[$ \moc{TMT} $]~]~[$ \moc{SCR} \dusa{iscr} $]~[$ \moc{LEXA} $]~]$ \\
+$~~~~~[$ \moc{KRYL} \dusa{ikryl} $]$ \\
+$~~~~~[$ \moc{MCU} \dusa{imcu} $]$ \\
+$~~~~~[$ \moc{HDD} \dusa{xhdd} $]$ \\
+$~~~~~[~\{$ \moc{SC} $|$ \moc{LDC} $\}~]$ \\
+$~~~~~[$ \moc{LEXF} $]$ \\
+$~~~~~[$ \moc{STIS} \dusa{istis} $]$ \\
+$\}~$ \\
+$~~~~~[$ \moc{MAXI} \dusa{nmaxi} $]$ \\
+$~~~~~[$ \moc{EPSI} \dusa{xepsi} $]$ \\
+$~~~~~[$ \moc{ADJ} $]$ \\
+ {\tt ;}
+\end{DataStructure}
+\vskip -0.4cm
+\noindent where
+
+\begin{ListeDeDescription}{mmmmmmmm}
+
+\item[\moc{EDIT}] keyword used to modify the print level iprint.
+
+\item[\dusa{iprint}] index used to control the printing in this operator.
+
+\item[\moc{LCMD}] keyword to specify that optimized (McDaniel--type) polar integration angles are to be
+selected for the method of characteristics.\cite{LCMD} 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 method of characteristics.\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[\moc{GAUS}] keyword to specify that the polar integration angles are to be selected as a single Gauss-Legendre quadrature for the method of characteristics in interval ($-\pi/2$, $\pi/2$). The conservation is ensured up to $P_{\dusa{nmu}-1}$ scattering. This is the default option.
+
+\item[\moc{DGAU}] keyword to specify that the polar integration angles are to be selected as a double Gauss-Legendre quadrature for the method of characteristics in intervals ($-\pi/2$, $0$) and ($0$, $\pi/2$). 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 method of characteristics.\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 method of characteristics.\cite{CACTUS} The conservation is ensured only for isotropic scattering.
+
+\item[\dusa{nmu}] user-defined number of polar angles for the integration of the tracks with the method of characteristics for 2D geometries. 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{DIFC}] keyword used to specify that only an ACA-simplified transport flux calculation is to be performed (not by default). In this case, the maximum
+number of ACA iterations is set to \dusa{nmaxi}.
+
+\item[\moc{LEXA}] keyword used to force the usage of exact exponentials in the preconditioner calculation (not by default).
+
+\item[\moc{MAXI}] keyword to specify the maximum number of scattering iterations performed in each energy group. This keyword is also used to set the number of Bi-CGSTAB iterations to solve the ACA-simplified system if \moc{DIFC} is present.
+
+\item[\dusa{nmaxi}] the maximum number of iterations. The default value is \dusa{nmaxi}=20.
+
+\item[\moc{EPSI}] keyword to specify the convergence criterion on inner
+iterations (or ACA-simplified flux calculation if \moc{DIFC} is present).
+
+\item[\dusa{xepsi}] convergence criterion. The default value is \dusa{xepsi}=1.0$\times$10$^{-5}$.
+
+\item[\moc{AAC}] keyword to set the ACA preconditioning of inner/multigroup
+iterations in case where a transport solution is selected.\cite{cdd,suslov2}
+
+\item[\dusa{iaca}] $0$/$>0$: ACA preconditioning of inner or multigroup iterations off/on. The default value is \dusa{iaca}=1. If \moc{MAXI} is set to 1, ACA is used as a rebalancing technique for multigroup-inner mixed iterations and \dusa{iaca} is the maximum number of iterations allowed to solve the ACA system (e.g. 100).
+
+\item[\moc{NONE}] no preconditioning for the iterative resolution by Bi-CGSTAB of the ACA system.
+
+\item[\moc{DIAG}] diagonal preconditioning for the iterative resolution by Bi-CGSTAB of the ACA system.
+
+\item[\moc{FULL}] full-matrix preconditioning for the iterative resolution by Bi-CGSTAB of the ACA system.
+
+\item[\moc{ILU0}] ILU0 preconditioning for the iterative resolution by Bi-CGSTAB of the ACA system (This is the default option).
+
+\item[\moc{TMT}] two-step collapsing version of ACA which uses a tracking merging technique while building the ACA matrices. 
+
+\item[\moc{SCR}] keyword to set the SCR preconditioning of inner/multigroup
+iterations.\cite{gmres}
+
+\item[\dusa{iscr}] $0$/$>0$: SCR preconditioning of inner or multigroup iterations off/on. The default value is \dusa{iscr}=0. If \moc{MAXI} is set to 1, SCR is used as a rebalancing technique for multigroup-inner mixed iterations and \dusa{iscr} is the maximum number of iterations allowed to solve the SCR system. When anisotropic scattering is considered, SCR provides an acceleration of anisotropic flux moments. If both ACA and SCR are selected (\dusa{iscr}$>0$ and \dusa{iaca}$>0$), a two-step acceleration scheme (equivalent to ACA when isotropic scattering is considered) involving both methods is used.
+
+\item[\moc{KRYL}] keyword to enable the Krylov acceleration of scattering iterations performed in each energy group.\cite{gmres}
+
+\item[\dusa{ikryl}] $0$: GMRES/Bi-CGSTAB acceleration not used; $>0$: dimension of the Krylov subspace in GMRES; $<0$: Bi-CGSTAB is used.
+The default value is \dusa{ikryl}=10.
+
+\item[\moc{MCU}] keyword used to specify the maximum dimension of the connection matrix for memory allocation.
+
+\item[\dusa{imcu}] The default value is eight (resp. twelve) times the number of volumes and external surfaces for 2D (resp. 3D) geometries.
+
+\item[\moc{HDD}] keyword to select the integration scheme along the tracking lines.
+
+\item[\dusa{xhdd}] selection criterion:
+
+$$
+xhdd = \left\{
+\begin{array}{rl}
+ 0.0 & \textrm{step characteristics scheme} \\
+>0.0 & \textrm{diamond differencing scheme.}
+\end{array} \right.
+$$
+
+The default value is \dusa{xhdd}=0.0 so that the step characteristics method is used.
+
+\item[\moc{LEXF}] keyword used to force the usage of exact exponentials in the flux calculation (not by default).
+
+\item[\moc{SC}] keyword used to select the step characteristics (SC) or DD0 diamond differencing approximation. This
+option is a flat source approximation (default option).
+
+\item[\moc{LDC}] keyword used to select the linear discontinuous characteristics (LDC) or DD1 diamond differencing approximation. This
+option is a linear source approximation.
+
+\item[\moc{STIS}] keyword to select the tracking integration strategy.
+
+\item[\dusa{istis}] $0$: a direct approach with asymptotical treatment is used; $1$: a ``source term isolation'' approach with asymptotical treatment is used (this technique tends to reduce the computational cost and increase the numerical stability but requires the calculation of angular mode-to-mode self-collision probabilities); $-1$:  an "MOCC/MCI"-like approach is used (it tends to reduce further more the computational cost as it doesn't feature any asymptotical treatment for vanishing optical thicknesses). Note that when a zero total cross section is found with \dusa{istis}=-1, it is reset to 1. The default value is \dusa{istis}=1 for $P_{L \le 3}$ anisotropy and 0 otherwise.
+
+\item[\moc{ADJ}] keyword to select an adjoint solution of ACA and characteristics systems. A direct solution is
+set by default.
+
+\end{ListeDeDescription}
+\eject
-- 
cgit v1.2.3

