\subsection{The {\tt DMAC:} module}\label{sect:DMACData} This module is used to set fixed sources that can be used in the right hand term of an adjoint fixed source eigenvalue problem. This type of equation appears in generalized perturbation theory (GPT) applications. The fixed sources set in {\tt DMAC:} are corresponding to the gradient of a reference macrolib with respect to homogenization and condensation of the cross-section information. The gradient of a cross section $\Sigma(\bff(r))={\rm col}\{\Sigma_1(\bff(r)) \, , \ \Sigma_2(\bff(r))\}$ with respect to homogenization and condensation is defined as \begin{align*} \bff(\nabla)P\{\bff(\phi)(\zeta);\bff(r)\}=P\{\bff(\phi)(\bff(r))\} \left[\begin{matrix}{\Sigma_1(\bff(r))\over \left<\bff(\Sigma),\bff(\phi)\right>}-{1\over \left<\bff(\phi)\right>} \cr {\Sigma_2(\bff(r))\over \left<\bff(\Sigma),\bff(\phi)\right>}-{1\over \left<\bff(\phi)\right>}\end{matrix}\right] \end{align*} \noindent where the homogenized and condensed cross section is an homogeneous functional of the flux defined as $$ P\{\bff(\phi)(r)\}={\left<\bff(\Sigma),\bff(\phi)\right>\over \left<\bff(\phi)\right>} \ \ \ . $$ Each fixed source $\bff(\nabla)P\{\bff(\phi)(\zeta);\bff(r)\}$ is orthogonal to the flux $\bff(\phi)(\bff(r))$. \vskip 0.02cm The calling specifications are: \begin{DataStructure}{Structure \dstr{DMAC:}} \dusa{SOURCE}~\moc{:=}~\moc{DMAC:}~\dusa{FLUX}~$\{$~\dusa{MICRO}~$|$~\dusa{MACRO}~$\}$~\dusa{TRACK}~\moc{::}~\dstr{DMAC\_data} \\ \end{DataStructure} \noindent where \begin{ListeDeDescription}{mmmmmmm} \item[\dusa{SOURCE}] {\tt character*12} name of a {\sc fixed sources} (type {\tt L\_SOURCE}) object open in creation mode. This object contains a set of adjoint fixed sources corresponding to different macro-regions, macro-groups and cross-section types present in the reference macrolib. \item[\dusa{FLUX}] {\tt character*12} name of a reference {\sc flux} (type {\tt L\_FLUX}) object open in read-only mode. \item[\dusa{MICRO}] {\tt character*12} name of a reference {\sc microlib} (type {\tt L\_LIBRARY}) object open in read-only mode. The information on the embedded macrolib is used. \item[\dusa{MACRO}] {\tt character*12} name of a reference {\sc macrolib} (type {\tt L\_MACROLIB}) object open in read-only mode. \item[\dusa{TRACK}] {\tt character*12} name of a reference {\sc tracking} (type {\tt L\_TRACK}) object open in read-only mode. \item[\dusa{DMAC\_data}] input data structure containing specific data (see \Sect{descDMAC}). \end{ListeDeDescription} \subsubsection{Data input for module {\tt DMAC:}}\label{sect:descDMAC} \vskip -0.5cm \begin{DataStructure}{Structure \dstr{DMAC\_data}} $[$~\moc{EDIT} \dusa{iprint}~$]$ \\ $[$~\moc{RATE} \\ \hskip 1.0cm $[$ \moc{MERG} $\{$ \moc{COMP} $|$ \moc{NONE} $|$ \\ \hskip 2.0cm \moc{REGI} (\dusa{iregm}(ii),ii=1,nregio) $|$ \\ \hskip 2.0cm \moc{MIX} $[$ (\dusa{imixm}(ii),ii=1,nbmix) $]~\}$ $]$ \\ \hskip 1.0cm $[$ \moc{COND} $[~\{$ \moc{NONE} $|$ ( \dusa{icond}(ii), ii=1,ngcond) $\}~]~]$\\ \moc{ENDR} $]$ \\ {\tt ;} \end{DataStructure} \noindent where \begin{ListeDeDescription}{mmmmmmmm} \item[\moc{EDIT}] keyword used to set \dusa{iprint}. \item[\dusa{iprint}] index used to control the printing in module {\tt DMAC:}. =0 for no print; =1 for minimum printing (default value). \item[\moc{RATE}] keyword used to define the homogenization and condensation limits. \item[\moc{NONE}] keyword to deactivate the homogeneization or the condensation. \item[\moc{MERG}] keyword to specify that the neutron flux is to be homogenized over specified regions or mixtures. \item[\moc{REGI}] keyword to specify that the homogenization of the neutron flux will take place over the following regions. Here nregio$\le$\dusa{maxreg} with \dusa{maxreg} the maximum number of regions for which solutions were obtained. \item[\dusa{iregm}] array of homogenized region numbers to which are associated the old regions. In the editing routines a value of \dusa{iregm}=0 allows the corresponding region to be neglected. \item[\moc{MIX}] keyword to specify that the homogenization of the neutron flux will take place over the following mixtures. Here we must have nbmix$\le$\dusa{maxmix} where \dusa{maxmix} is the maximum number of mixtures in the macroscopic cross section library. \item[\dusa{imixm}] array of homogenized region numbers to which are associated the material mixtures. In the editing routines a value of \dusa{imixm}=0 allows the corresponding isotopic mixtures to be neglected. For a mixture in this library which is not used in the geometry one should insert a value of 0 for the new region number associated with this mixture. By default, if \moc{MIX} is set and \dusa{imixm} is not set, \dusa{imixm(ii)}$=$\dusa{ii} is assumed. \item[\moc{COMP}] keyword to specify that the a complete homogenization is to take place. \item[\moc{COND}] keyword to specify that a group condensation of the flux is to be performed. \item[\dusa{icond}] array of increasing energy group limits that will be associated with each of the ngcond condensed groups. The final value of \dusa{icond} will automatically be set to \dusa{ngroup} while the values of \dusa{icond}$>$\dusa{ngroup} will be droped from the condensation. We must have ngcond$\le$\dusa{ngroup}. By default, if \moc{COND} is set and \dusa{icond} is not set, all energy groups are condensed together. \item[\moc{ENDR}] keyword used to terminate the definition of the homogenization and condensation. \end{ListeDeDescription} \eject