\subsection{The \moc{FLPOW:} module}\label{sect:flpow}

\vskip 0.2cm
The \moc{FLPOW:} module is used to compute and print the flux and power
distributions over the reactor core. It also computes and prints some additional
information, for example: the fluxes ratios with respect to the thermal energy-group
fluxes; the mean power density; the power- and flux-form factors; etc. The computed
fluxes and powers are printed either on files or on the screen. Note that the calculation
using the \moc{FLPOW:} module can be performed once the numerical solution has
been previously established using the \moc{FLUD:} or \moc{KINSOL:} module.\\

According to the user-selected module specification, the average fluxes and
powers can be computed per each fuel region over the fuel lattice \dusa{and/or}
per each material region over the whole reactor geometry. In either case, all fluxes
are normalized to the given total reactor power corresponding to the reactor nominal
conditions at core equilibrium. If the reactor is perturbed from its initial state, then a
new total reactor power can be recomputed and, accordingly, the flux and power
distributions will be updated using the previously computed normalization factor.\\

The \moc{FLPOW:} module will create a new \moc{POWER} object that will store
the information related to the reactor fluxes and powers (see \Sect{power}). In addition,
the \moc{POWER} object will store several parameters that can be used as power
and criticity constraints for the optimization and fuel management purposes, namely:
the maximum channel and bundle powers; the channel and bundle power-form factors;
the effective multiplication factor (recovered from the \dds{flux} or \dds{kinet} data structure).\\

\noindent
The \moc{FLPOW:} module specifications are:

\begin{DataStructure}{Structure \moc{FLPOW:}}
$\{$ \\
~~~\dusa{POWER} $[$ \dusa{NRMFLUX} $]~[$ \dusa{FMAP} $]$ \\
~~~~~~~~\moc{:=} \moc{FLPOW:}  $[$ \dusa{POWOLD} $]$ \dusa{FMAP}
$\{$ \dusa{FLUX} $|$ \dusa{KINET} $\}$ \dusa{TRACK} \dusa{MATEX} $[$ \dusa{MACRO} $]$ \\
~~~~~~~~\moc{::} \dstr{descflpow} \\
$|$ \\
~~~\dusa{POWER} \moc{:=} \moc{FLPOW:}  $[$ \dusa{POWOLD} $]$
$\{$ \dusa{FLUX} $|$ \dusa{KINET} $\}$ \dusa{TRACK} \dusa{MACRO} \\
~~~~~~~~\moc{::} \dstr{descflpow} \\
 $\}$
 \end{DataStructure}

\noindent where

\begin{ListeDeDescription}{mmmmmmmm}

\item[\dusa{POWER}] \texttt{character*12} name of the \dds{power} object
that will be created by the module. It will contain the information related to the
reactor fluxes and powers.

\item[\dusa{NRMFLUX}] \texttt{character*12} name of the \dds{flux} object,
in creation mode. According to the chosen option, this object contains either 
the fluxes normalized to the given total reactor power or the fluxes per bundle. 
Is it useful if you want to compute the detectors readings with the \moc{DETECT:} module.

\item[\dusa{POWOLD}] \texttt{character*12} name of the read-only \dds{power}
object. It must contain the previously computed flux normalization factor, which
corresponds to the reactor nominal or equilibrium conditions.

\item[\dusa{FMAP}] \texttt{character*12} name of the \dds{fmap} object
containing the fuel lattice specification. When \dusa{FMAP} is specified on the RHS,
the fluxes and powers calculations are performed over the fuel lattice as well
as over the whole reactor geometry. If \dusa{FMAP} is specified on the LHS, its
records \moc{'BUND-PW'} and \moc{'FLUX-AV'} will be set according to the
information present in \dusa{POWER}.

\item[\dusa{FLUX}] \texttt{character*12} name of the \dds{flux} object,
previously created by the \moc{FLUD:} module. The numerical flux solution
contained in \dusa{FLUX} is recovered and all flux are normalized to the
given total reactor power.

\item[\dusa{KINET}] \texttt{character*12} name of the \dds{kinet} object,
previously created by the \moc{KINSOL:} module. The numerical flux solution
contained in \dusa{KINET} is recovered.

\item[\dusa{TRACK}] \texttt{character*12} name of the \dds{track} object,
created by the \moc{TRIVAT:} module. The information stored in \dusa{TRACK}
is recovered and used for the average flux calculation.

\item[\dusa{MATEX}] \texttt{character*12} name of the \dds{matex} object,
containing the reactor material index and the h-factors that will be recovered
and used for the power calculation.

\item[\dusa{MACRO}] \texttt{character*12} name of the \dds{macrolib} object,
containing the h-factors that will be recovered and used for the power calculation.

\item[\dstr{descflpow}] structure describing the input data to the \moc{FLPOW:}
module .

\end{ListeDeDescription}

\vskip 0.2cm

\subsubsection{Input data to the \moc{FLPOW:} module}

\noindent
Note that the fuel-lattice power distribution can be printed only on the screen.\\

\begin{DataStructure}{Structure \dstr{descflpow}}

$[$ \moc{EDIT} \dusa{iprint} $]$ \\
$[~\{$ \moc{PTOT} \dusa{power}  $|$  \moc{P-NEW} $\}~]$ \\
$[$ \moc{FSTH} \dusa{fsth} $]~[$ \moc{INIT} $]$ \\
$[~\{$ \moc{NORM}  $|$  \moc{BUND} $\}~]$ \\
$[$ \moc{PRINT} $\{$ \moc{MAP} $|$ \moc{DISTR} $[$ \moc{FLUX} $]$
$[$ \moc{RATIO} $]$ $[$ \moc{POWER} $]$ $|$ \moc{ALL} $\}$ $]$ \\
;
\end{DataStructure}

\noindent where
\begin{ListeDeDescription}{mmmmmmmm}

\item[\moc{EDIT}] keyword used to set \dusa{iprint}.

\item[\dusa{iprint}] integer index used to control the printing on screen:
 = 0 for no print; = 1 for minimum editing (default value); = 2 only channel powers in radial
plane are printed; = 3 only bundle powers per each radial plane are printed; = 10 only bundle powers per each channel are printed. Any combination of the values 2, 3 and 10 is possible, for example 5 = 2+3. Note that any other value of \dusa{iprint} behaves as the first lower possible value, for example 7 gives the same output as 5. Moreover channel and bundle powers can be printed only if the \dusa{FMAP} object was provided in the calling specification.

\item[\moc{PTOT}] keyword used to specify the input of \dusa{power}. By default, a power is recovered from the \dusa{KINET} object.

\item[\dusa{power}] real total reactor power, given in MW. This value
must correspond to the reactor nominal conditions.

\item[\moc{FSTH}] keyword to specify the thermal to fission power ratio.

\item[\dusa{fsth}] thermal to fission power ratio. By default this value is not used, and the total
power is the one given after the \moc{PTOT} keyword.

\item[\moc{INIT}] keyword used to save the actual power distribution in the {\tt BUND-PW-INI}
record of the fuel map object \dusa{FMAP}. It is used by the \moc{AFM:} module to apply power
feedback during a fast transient using the initial power distribution instead of the actual power.

\item[\moc{P-NEW}] keyword used to indicate that a new total reactor power
is to be recomputed, based on the previously calculated flux normalization factor.
The flux and power distributions over the reactor core are updated, accordingly.
Note that this option is valid only if a read-only \dusa{POWOLD} object is provided.

\item[\moc{PRINT}] keyword used to indicate the printing on files. Note
that all produced files will have the same extension ``\moc{.res}".

\item[\moc{MAP}] keyword used to specify the printing of the average fluxes
and flux ratios per fuel bundle. The normalized bundle fluxes are computed
and printed for each reactor channel and per each energy group. The flux
ratios are computed with respect to the thermal energy-group fluxes; they
are printed on the same file.

\item[\moc{DISTR}] keyword used to indicate the printing of data
computed over the whole reactor geometry. 

\item[\moc{FLUX}] keyword used to specify the printing of flux distribution.
The normalized fluxes are printed in separated files, one file per energy
group; the number of produced files will then equal to the total number
of energy groups. The flux values are printed for each mesh-splitted volume,
in X, Y and Z planes; the virtual regions will have the fluxes values set to 0.

\item[\moc{RATIO}] keyword used to specify the printing of flux-ratio
distribution. The flux ratios are computed with respect to the thermal
energy-group fluxes per each mesh-splitted volume. They are printed
in separated files; the number of produced files will equal to the total
number of energy groups less one.

\item[\moc{POWER}] keyword used to specify the printing of power
distribution. The power values are printed for each mesh-splitted volume,
in X, Y, and Z planes; the non-fuel regions will have the power values set to 0.

\item[\moc{ALL}] keyword used to indicate the printing of all available
information, i.e. without particular selection of data.

\item[\moc{NORM}] keyword to specify that the output flux object will contain a value per mesh-splitted element, normalized 
to the given power, as required by the \moc{DETECT:} module. This is the default option.

\item[\moc{BUND}] keyword to specify that the output flux object will contain a value per bundle, normalized 
to the given power.

\end{ListeDeDescription}
\clearpage
