%
%     This file is part of the Code_Saturne Preprocessor, element of the
%     Code_Saturne CFD tool.
%
%     Copyright (C) 1998-2010 EDF S.A., France
%
%     contact: saturne-support@edf.fr
%
%     The Code_Saturne Preprocessor is free software; you can redistribute it
%     and/or modify it under the terms of the GNU General Public License
%     as published by the Free Software Foundation; either version 2 of
%     the License, or (at your option) any later version.
%
%     The Code_Saturne Preprocessor is distributed in the hope that it will be
%     useful, but WITHOUT ANY WARRANTY; without even the implied warranty
%     of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%     GNU General Public License for more details.
%
%     You should have received a copy of the GNU General Public License
%     along with the Code_Saturne Preprocessor; if not, write to the
%     Free Software Foundation, Inc.,
%     51 Franklin St, Fifth Floor,
%     Boston, MA  02110-1301  USA
%
%---------------------------------------------------------------------
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                    %
% Titre :  Code_Saturne 2.0 :                                        %
%          manuel informatique du Préprocesseur                      %
%                                                                    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[a4paper,10pt,twoside]{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PACKAGES OBLIGATOIRES
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{csdoc}

% Les options de la classe noteCS.sty disponibles sont :
% - english (page de garde supplementaire en anglais)
% - pdftex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PACKAGES ET COMMANDES POUR LE DOCUMENTS PDF ET LES HYPERLIENS
\hypersetup{%
  pdftitle = {Code_Saturne 2.0 : manuel informatique du Préprocesseur},
  pdfauthor = {MFEE},
  pdfpagemode = UseOutlines
}
\pdfinfo{/CreationDate (D:20030429000000-01 00 )}

% To have thumbnails upon opening the document under ACROREAD
% pdfpagemode = UseThumbs

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% REALISATION D'UN INDEX
\usepackage{makeidx}
\makeindex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PACKAGES SUPPLEMENTAIRES
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{times} % plus joli en pdf (fortement recommandé)
\usepackage{xspace}
\usepackage{epic}
\usepackage{alltt}
\usepackage{float}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MACROS SUPPLEMENTAIRES
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \newcommand{/...}{...}

% repertoire et extension des images
\newcommand{\repgraphics}{../graphics}
\newcommand{\extgraphics}{pdf}

% Sigles et noms d'outils

\newcommand{\CGNS}{CGNS\xspace}
\newcommand{\CS}{%
{\fontfamily{ppl}\fontshape{it}\selectfont Code\_Saturne}\xspace}
\newcommand{\ensight}{\emph{EnSight}\xspace}
\newcommand{\ensightg}{\emph{EnSight Gold}\xspace}
\newcommand{\fvm}{FVM\xspace}
\newcommand{\ideas}{\emph{I-deas}\xspace}
\newcommand{\icemhexa}{\emph{ICEM~Hexa}\xspace}
\newcommand{\igghexa}{\emph{Igg~Hexa}\xspace}
\newcommand{\med}{\emph{MED}\xspace}
\newcommand{\Metis}{\emph{Metis}\xspace}
\newcommand{\noy}{Noyau\xspace}
\newcommand{\pcs}{Préprocesseur\xspace}
\newcommand{\syr}{SYRTHES\xspace}
\newcommand{\simail}{\emph{SIMAIL}\xspace}
%
\newcommand{\C}{\emph{C}\xspace}
\newcommand{\Cpp}{\emph{C++}\xspace}
\newcommand{\env}{Enveloppe\xspace}
\newcommand{\python}{\emph{Python}\xspace}
\newcommand{\uml}{\emph{UML}\xspace}
\newcommand{\zlib}{\emph{Zlib}\xspace}

% Polices

\newcommand{\fcla}[1]{{\sffamily #1}}
\newcommand{\fclaidx}[2]{\fcla{#1}\index{#2@\fcla{#1}}}
\newcommand{\fenv}[1]{{\slshape #1}}
\newcommand{\fenvidx}[3]{\fenv{#1}\index{#2@\fenv{#3}}}
\newcommand{\fobj}[1]{{\itshape #1}}
\newcommand{\fobjidx}[3]{\fobj{#1}\index{#2@\fobj{#3}}}
\newcommand{\fc}[1]{{\ttfamily #1}}
\newcommand{\fcidx}[1]{\fc{#1}\index{#1@\fc{#1}}}

\include{mi_ecs_macroindex}

% Références

\newcommand{\numpar}[1]{{\S}~\ref{#1} page~\pageref{#1}}
\newcommand{\refpar}[1]{(cf. {\S}~\ref{#1}, page~\pageref{#1})}
\newcommand{\refex}[1]{(cf. Exemple~\ref{#1}, page~\pageref{#1})}
\newcommand{\reffig}[1]{(cf. Figure~\ref{#1}, page~\pageref{#1})}


\newbox\tempbox
\newcommand{\motcle}[7]{%
   \noindent
   \setbox\tempbox\hbox{\hspace*{2.5cm}}
   \makebox[2.5cm][l]{#1}\index{#1}\makebox[1.3cm][l]{#2}\makebox[5.5cm][l]{#3}%
   \makebox[4.5cm][l]{[#4]}#5\hspace{1cm}#6\\
   \hangindent\wd\tempbox\quad\ignorespaces#7\bigskip}
\newcommand{\motcleb}[7]{%
   \noindent
   \setbox\tempbox\hbox{\hspace*{2.5cm}}
   \makebox[2.5cm][l]{\bf #1}\index{#1}\makebox[1.3cm][l]{#2}\makebox[5.5cm][l]{#3}%
   \makebox[4.5cm][l]{[#4]}#5\hspace{1cm}#6\\
   \hangindent\wd\tempbox\quad\ignorespaces#7\bigskip}
\newcommand{\varenv}[1]{\medskip\noindent{\ttfamily \large #1}}

% Commande utilitaire pour \raggedright dans tabular

\newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}

\newcommand{\partie}[2]{%
  \parbox[c][\textheight][c]{\textwidth}{%
    \bfseries
    \vfill
    {\huge #1}
    \vfill
    \centerline{\Huge #2}
    \vfill\vfill}}

\setlength{\parskip}{7pt plus 1pt minus 1pt}
\newenvironment{liste}{%
  \setlength{\parskip}{-6pt plus 1pt minus 1pt}
  \begin{itemize}
    \setlength{\itemsep}{-4pt plus 1pt minus 1pt}
    \setlength{\parskip}{7pt plus 1pt minus 1pt}}{%
  \end{itemize}}

\newlength{\lgregle}
\newcounter{numregle}
\newenvironment{regle}[1]{%
  \settowidth{\lgregle}{#1}
  \begin{list}{%
      \bfseries\upshape #1 \arabic{numregle}~:}{%
      \usecounter{numregle}
      \addtolength{\lgregle}{10truemm}
      \setlength{\labelwidth}{\lgregle}
      \setlength{\labelsep}{0.4truecm}
      \addtolength{\lgregle}{\labelsep}
      \setlength{\leftmargin}{\lgregle}}}{%
  \end{list}}

\floatname{exemplefloat}{Exemple}
\floatstyle{ruled}
\newfloat{exemplefloat}{H}{loe}[section]

\newenvironment{exemple}[1]
{\begin{exemplefloat}\renewcommand{\baselinestretch}{.75}
\captionfloat{#1}\vspace{1mm}\small\begin{alltt}}
{\end{alltt}\vspace{-3mm}\end{exemplefloat}}

\floatname{figfloat}{\bf Figure}
\floatstyle{plain}
\newfloat{figfloat}{H}{lof}[section]

\floatname{structurefloat}{Type défini}
\floatstyle{boxed}
\newfloat{structurefloat}{H}{los}

\newenvironment{structure}[2]
{\begin{structurefloat}\renewcommand{\baselinestretch}{.95}
\captionfloat{#1 (fichier source #2)}\vspace{-1mm}\noindent\small\begin{alltt}}
{\end{alltt}\vspace{-3mm}\end{structurefloat}}

\newcommand{\captionfloat}[1]{\caption{{\large #1}}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% INFO POUR PAGES DE GARDES

\titreCS{\CS version~\verscs~:\par manuel informatique du Préprocesseur}
%\titreCS{\CS\ version~\verscs: Preprocessor Programmer's Guide}

\docassociesCS{Voir aussi :
               \newline \CS version~\verscs :\par
	       guide pratique et théorique du Préprocesseur}

\resumeCS{Cette note constitue la description informatique de la version
2.0 du module \pcs de \CS.
Le \CS comprend deux modules exécutables~: le \noy (partie solveur proprement
dite) et le \pcs (filtres vers les formats d'entrée-sortie et recollements de maillages).
On décrit ici les éléments principaux dont la compréhension
est nécessaire à la maintenance du module \pcs.}
%\resumeCS{This document is the programmer's manual for version 1.4 of the
%Preprocessor module of \CS.
%\CS is based on two executable modules: the Kernel (solver) and the Preprocessor
%(input/output format filters and mesh joining).
%We describe the main elements whose comprehension is necessary to the
%maintenance of the Preprocessor module.}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DEBUT DU DOCUMENT
\begin{document}

%\def\bibname{Références}
\def\contentsname{\textbf{\normalsize SOMMAIRE}\pdfbookmark[1]{Sommaire}{contents}}
\def\indexname{Index}

\pdfbookmark[1]{Pages de garde}{pdg}
\large
\makepdgCS
\normalsize

\passepage
\input mi_ecs_synthese

%\passepage

\begin{center}\begin{singlespace}
\tableofcontents
\end{singlespace}\end{center}


\passepage

\listof{figfloat}{Liste des figures}
\listof{structurefloat}{Liste des types définis et des structures C}
\listof{exemplefloat}{Liste des exemples}

\vspace{2cm}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CORPS DU DOCUMENT
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\partie{Première partie}{Présentation du \pcs}

\include{mi_ecs_present_role}
\include{mi_ecs_present_util}

\partie{Deuxième partie}{Modélisation objet}

\include{mi_ecs_modelis_concept}
\include{mi_ecs_modelis_classe}
\include{mi_ecs_modelis_implem}

\partie{Troisième partie}{Programmation}

\include{mi_ecs_program_util}
\include{mi_ecs_program_regle}
\include{mi_ecs_program_debug}
\include{mi_ecs_program_perspect}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% REFERENCES
\include{mi_ecs_biblio}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% APPENDICES

\printindex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FIN DU DOCUMENT
\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
