From d3a2856b5b271819a6a97bb35b5c03e99ddc2db2 Mon Sep 17 00:00:00 2001 From: Baptiste Mouginot <mouginot.baptiste@gmail.com> Date: Wed, 3 Sep 2014 08:43:28 +0000 Subject: [PATCH] Adding CLAS Facility description git-svn-id: svn+ssh://svn.in2p3.fr/class@375 0e7d625b-0364-4367-a6be-d5be4a48d228 --- documentation/USEGUIDE.tex | 74 ++++++++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 6 deletions(-) diff --git a/documentation/USEGUIDE.tex b/documentation/USEGUIDE.tex index b23f9d4ce..e925ad5a8 100755 --- a/documentation/USEGUIDE.tex +++ b/documentation/USEGUIDE.tex @@ -205,23 +205,85 @@ CLASS has a \href{https://forge.in2p3.fr/projects/classforge}{forge}\footnote{ht \item \href{https://forge.in2p3.fr/projects/classforge/embedded/annotated.html}{A doxygen}\footnote{https://forge.in2p3.fr/projects/classforge/embedded/annotated.html} where all the CLASS objects and methods are defined and explained. \item \href{https://forge.in2p3.fr/projects/classforge/news}{News}\footnote{https://forge.in2p3.fr/projects/classforge/news} : All the news related to CLASS \end{itemize} +A \href{classuser-l@ccpntc02.in2p3.fr}{Mailing List}\footnote{classuser-l@ccpntc02.in2p3.fr} also exist in order to be warned of all the change inside CLASS and to allow user to exchange directly on the code. One can join the mailing list through the following \href{http://listserv.in2p3.fr/cgi-bin/wa?SUBED1=classuser-l&A=1}{link}\footnote{http://listserv.in2p3.fr/cgi-bin/wa?SUBED1=classuser-l\&A=1}. %%%%%%%%%%%%%%%%%%%%%%%%% %% CHAPTER : GENERAL OVERVIEW %%%%%%%%%%%%%%%%%%%%%%%%% \part{CLASS : General overview} \chapter{Generalities} -Lister les unité +\section{Basic units\label{section:unit}} +All time in CLASS should be written in second. It corresponds to the cSecond, a CLASS c++ type, which are a \textbf{long long int} going, in 32bits \textbf{and} 64 bits, up to to $(2^{63} - 1)~\textrm{s}~ \sim 2.9\cdot 10^{11}$ years, enough for any electro-nuclear scenarios one can consider....\\ + \section{CLASS working process principle} image : shéma de principe de class \chapter{Facilities descriptions} -\section{Storage} -\section{Pool} -\section{Fabrication Plant} -\section{Reactor} +All the facility in CLASS project are regroup inside a large group called CLASSFacility (and inherit of all the properties of the CLASSFacility in a C++ way). Inside the CLASSFacility, 3 different types can be defined, the reactor, the FabricationPlant (or more generally, all the fuel cycle front-end facilities) and the backend facilities. +\section{CLASSFacility} +The CLASSFacility should never be used directly in the main CLASS program (the one made to perform the simulation). The aim of these object is to regroup all the common properties of the nuclear facilities, such as common variables, methods, and builder. +Its includes 2 variables needed by CLASS environment: +\begin{center} +\begin{minipage}{\textwidth} +\begin{lstlisting} +private : + int fId; //!< Identity of the Facility inside the Parc + int fFacilityType; ///< Type of facility : + /// \li 4 reactor, + /// \li 8 Pool, + /// \li 16 FabricationPlant. + Scenario* fParc; //!< Pointer to the main Parc +\end{lstlisting} +\end{minipage} +\end{center} +The \textit{fId} variable correspond to the unique identity number allowing to differentiate all the facility of a certain type. The \textit{fFacilityType} variable correspond to an identity number allowing to separate the different type of facilities. Those to variable are "\textbf{private}", which mean it is not possible to access to them directly, one \textbf{must} to use there Get-xxx() and the Set-xxx() function (even inside the daughter class such as reactor...). \textit{fParc} is a pointer to the main park, which allow to access to the rest of the park. Be careful the \textit{fParc} pointer main not be assigned if the facility is not included in a park...\\ +\\ +\\ +\\ +The CLASSFacility also includes all the generic variable and method for time and simple fuel management: +\begin{center} +\begin{minipage}{\textwidth} +\begin{lstlisting} +protected : + bool fIsStarted; ///< True if Running, False Otherwise + bool fIsShutDown; ///< True if the facility is stoped, False Otherwise + bool fIsShutDown; ///< True if Reaching the End of a Facility Cycle + + + cSecond fInternalTime; ///< Internal Clock + cSecond fInCycleTime; ///< Time spend since the beginning of the last Cycle + cSecond fCycleTime; ///< Cycle duration Time + + IsotopicVector fInsideIV; ///< All IV in the Facility (fuel for reactor, total for all others...) + IsotopicVector fCumulativeIVIn; ///< All IV in the Facility (fuel for reactor, total for all others...) + IsotopicVector fCumulativeIVOut; ///< All IV in the Facility (fuel for reactor, total for all others...) + + //********* Internal Parameter *********// +private : + [...] + cSecond fCreationTime; ///< CLASS Universal Time of Creation + cSecond fLifeTime; ///< Time of life Of the Reactor (Operating's Duration) + +\end{lstlisting} +\end{minipage} +\end{center} +\textit{fIsStarted}, \textit{fIsShutDown}, \textit{fIsShutDown} allows to the Dump() method to determine the state of the facility and do what is necessary.\\ +\textit{fInternalTime}, \textit{fInCycleTime}, \textit{fCycleTime} variable allows the \hyperref[section:unit]{time} the time management inside the facility. \textit{fInternalTime} correspond to the last time until the evolution of the facility as been calculated. \textit{fCycleTime} the time length of a cycle in this facility (note that it could be irradiation cycle in a \hyperref[section:reactor]{Reactor}, fabrication time in a \hyperref[section:FP]{FabricationPlant}, or cooling time in a \hyperref[section:pool]{Pool}). And \textit{fInCycleTime} correspond to the time already past in the current cycle.\\ +\textit{fCreationTime}, \textit{fLifeTime} are \textbf{private} and used to define the creation time of the facility, and its operation time length. + +Besides all the time management of the facility, it also contain the basic tool for fuel management the three \hyperref[section:IV]{IsotopicVector} : \textit{fInsideIV}, \textit{fCumulativeIVIn}, \textit{fCumulativeIVOut}, which correspond respectively to the isotopic vector present in the facility, to the cumulative income inside the facility, and the cumulative outcome outside the facility. + +By default af the Get-xxx() and Set-xxx() method associated to those variable are define, and some can be overloaded. + +The CLASSFacility also comes with 2 virtual method (which means one must overloading it when defining a new facility) : \textit{Evolution(cSecond t)} and \textit{Dump()}. They are both used to perform the evolution of the facility. Where the first one (\textit{Evolution}) is used to specify the change inside the facility (mainly fuel evolution), the second one (\textit{Dump}) is used to deal the exchange between facility, such as refilling a reactor or send a fuel to the stick at the end of cooling. + +\section{Reactor\label{section:reactor}} +\section{CLASSBackEnd} +\subsection{Storage} +\subsection{Pool\label{section:pool}} +\section{Fabrication Plant\label{section:FP}} \chapter{Other objects} \section{ZAI} -\section{IsotopicVector} +\section{IsotopicVector\label{section:IV}} \section{Log management : CLASSLogger}\label{sec:logclass} \section{EvolutionData}\label{sec:EvolutionData} \chapter{Decay data bases}\label{sec:DecayDB} -- GitLab