%
%     This file is part of the Code_Saturne Preprocessor, element of the
%     Code_Saturne CFD tool.
%
%     Copyright (C) 1998-2007 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
%


\section{Perspectives de développement\label{cha:dev}}

Par rapport aux versions 1.0 à 1.2 de l'\env, qui assurait le
post traitement des champs calculés par le \noy,
et servait d'intermédiare entre celui-ci et le code \syr en cas de
couplage,
le rôle de l'\env s'est considérablement réduit avec le version
1.3, les aspects post traitement et couplage étant maintenant directement
gérés par le \noy, en s'appuyant sur la librairie \fvm (d'où le
renommage de l'\env en \pcs).

On devrait pouvoir encore migrer certaines des fonctionnalité
du \pcs vers les \noy, ce qui permettra de simplifier progressivement
les structures et modèles du \pcs, dont le remplacement complet par \fvm
nécessitera plusieurs années.


\subsection{Améliorations du codage du \pcs\label{sec:dev.amelioration}}

La traduction du code source en Anglais et la mise en cohérence
de la mise en page avec le \noy et la librairie \fvm sont souhaitables~;
ce travail est lourd, mais peut être effectué \og au fil de l'eau \fg.


\subsection{Evolutions du code\label{sec:dev.fonct}}

On établit ici la liste des nouvelles évolutions à apporter, dans l'ordre
de leur priorité à ce jour~:

\begin{enumerate}

\item modifier la représentation des cellules de type \og polyèdre \fg
  en connectivité nodale~: plutôt que de repérer les frontières entre
  faces dans la connectivité cellules sommets en considérant que le
  premier sommet d'une face apparaît une deuxième fois pour indiquer
  une fin de face, on pourrait utiliser une connectivité secondaire
  (un deuxième champ principal de type définition) indiquant pour
  chaque polyèdre le nombre de sommets associés à chacune de ses faces.
  Ce tableau indexé n'existerait qu'en présence de polyèdres en
  connectivité nodale.

  On pourrait alors construir un maillage nodal de type \fvm en
  pointant sur les diverses zones de la définition principale
  principale de la connectivité, sans devoir dupliquer l'essentiel
  de la définition $faces \rightarrow sommets$,
  ce qui est important du point de vue consommation mémoire en cas
  de maillage polyédrique pur~; les connectivités
  $cellules \rightarrow faces$ devraient être renseignées pour les
  sections polygonales, ainsi que l'index de la connectivité
  $faces \rightarrow sommets$, mais ne représentent pas l'essentiel
  du coût mémoire (par exemple, pour un polyèdre avec 12 faces de 5
  sommets chacune, on a besoin de $(1 + 12) + 12 = 25$ entiers pour
  ces tableaux, contre $12 \times 5 = 60$ entiers pour la définition
  $faces \rightarrow sommets$).

\item Simplification de la structure globale.
  Il serait possible d'intégrer directement les fonctionnalités de type
  \vectint et \vectreal, dans les structures \champt, mais il faudrait dans
  ce cas réfléchir au problème du typage du champ. Un \og cast \fg initial
  pour accéder au tableau des valeurs n'est pas très pratique, il semble
  préférable soit de nommer différemment un tableau de valeurs entières d'un
  tableau de valeurs réelles, en groupant éventuellement de même les deux
  pointeurs correspondant dans une union anonyme afin de n'en permettre
  qu'un à la fois.

\item Renommer \champt en \tablet (et \Champ en \Table),
  pour une meilleure cohérence avec le vocabulaire usuel.

\end{enumerate}


%\passepage

