\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
