\subsection{The \moc{TAVG:} module}\label{sect:tavg}

\vskip 0.2cm
The \moc{TAVG:} module is used to compute the burnup integration limits for each
fuel bundle, the axial power-shape over the fuel lattice, the channel refuelling rates
and the reactor core-average exit burnup. All calculations using the \moc{TAVG:}
module are performed according to the time-average model for the equilibrium-core
conditions. The computing algorithm is based on bidirectional refuelling schemes of
channels and average exit burnups specified over the fuel lattice, which should be
recorded in the fuel map using the \moc{RESINI:} module.\\

Note that the complete time-average calculation is a complex and iterative procedure,
requiring of several full-core calculations (external iterations) to be performed. The main
steps of the time-average calculation using DONJON are briefly described at the end
of this section. The \moc{TAVG:} module can also be used to compute the instantaneous
fuel burnups according to the channel patterned-age-model, for the fuel management
and optimization purposes.\\

\noindent
The \moc{TAVG:} module specification is: 

\begin{DataStructure}{Structure \moc{TAVG:}}
\dusa{FMAP} \moc{:=} \moc{TAVG:} \dusa{FMAP}
\dusa{POWER} \moc{::} \dstr{desctavg}
\end{DataStructure}

\noindent where

\begin{ListeDeDescription}{mmmmmmmm}

\item[\dusa{FMAP}] \texttt{character*12} name of a \dds{fmap} object,
that will be updated by the \moc{TAVG:} module. The \dusa{FMAP} object
must contain the average exit burnups and refuelling schemes of channels.

\item[\dusa{POWER}] \texttt{character*12} name of a \dds{power} object
containing the channel and bundle powers, previously computed by the
\moc{FLPOW:} module. The channel and bundle powers are used by the
\moc{TAVG:} module to compute the normalized axial power-shape over
each channel. 

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

\end{ListeDeDescription}

\vskip 0.2cm
\subsubsection{Input data to the \moc{TAVG:} module}\label{sect:strtavg}

\noindent
Note that the input order must be respected. \\

\begin{DataStructure}{Structure \dstr{desctavg}}
$[$ \moc{EDIT} \dusa{iprint} $]$ \\
$[$ \moc{AX-SHAPE} $[$ \moc{RELAX} \dusa{relval} $]$ $]$ \\
$[$ \moc{B-EXIT} $]$ \\
 ;
\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 printing (default value); = 2 only the burnup limits
over each channel are printed; = 3 only the axial power-shape values over each channel
are printed; = 4 only the channel refuelling rates are printed; for larger values of
\dusa{iprint} everything will be printed.

\item[\moc{AX-SHAPE}] keyword used to indicate the calculation of the new
axial power-shape and corresponding burnups limits over each reactor channel.

\item[\moc{RELAX}] keyword used to set the relaxation parameter \dusa{relval}.

\item[\dusa{relval}] real value of the relaxation parameter, generally used to
control the axial-shape convergence over the external time-average iterations.
The optimal value, which corresponds to the minimal total number of such iterations,
can be found by performing several runs at different \dusa{relval}. The default
value of the relaxation parameter is set to 0.5

\item[\moc{B-EXIT}] keyword used to indicate the calculation of the core-average
exit burnup and the channel refuelling rates.

\end{ListeDeDescription}

\vskip 0.2cm
\subsubsection{Time-average calculation using DONJON}

When the average exit burnups are provided for each channel, the exact
burnup integration limits for each fuel bundle are unknown and need to be
determined. The burnups integration limits are function of the normalized
axial power-shape, which in turn depends on the flux solution over the fuel
lattice. Moreover, the flux solution depends on the fuel-map macrolib (i.e.
fuel properties), which in turn depends on the burnups integration limits for
each fuel bundle. Consequently, the time-average calculation is an iterative
procedure that consists to repeat all the steps required for the axial power-shape
computation. This repetition is to be made until the relative error between
the two (successives) axial power-shape calculations becomes as small
as required for the precision.\\

\noindent
The axial power-shape computing scheme is composed of several steps,
each step is performed using an appropriate DONJON or TRIVAC module:

\begin{enumerate}
\item An initial axial power-shape is set as a flat distribution over the fuel
lattice and the first burnup integration limits are calculated approximately,
using the \moc{RESINI:} module. 
\item A time-average integration is performed and a new fuel-map \dds{macrolib}
is created, using either \moc{NCR:}, \moc{CRE:} or \moc{AFM:} module.
\item An extended \dds{macrolib} over the whole reactor geometry is created,
using the \moc{MACINI:} module.
\item If the devices are inserted into the reactor core, then the previously
created \dds{macrolib} is to be updated for the devices properties using the
\moc{NEWMAC:} module. 
\item The complete \dds{macrolib} is subsequently used by the \moc{TRIVAA:}
module in order to create a matrix \dds{system}. 
\item The full-core numerical solution (i.e. fluxes and effective multiplication factor)
is computed, using the \moc{FLUD:} module.
\item The channel and bundle powers are next calculated, using the
\moc{FLPOW:} module. 
\item Finally, the new axial power-shape and burnup limits are computed,
using the \moc{TAVG:} module.
\end{enumerate}

\vskip 0.1cm
\noindent
Note that the steps from 2 to 8 are to be repeated until the required precision
for the axial power-shape convergence is satisfied.

\clearpage
