\select@language {french} \contentsline {section}{\numberline {1}R{\^o}le de l'Enveloppe\xspace dans le {\fontfamily {ppl}\fontshape {it}\selectfont Code\_Saturne}\xspace }{15}{section.1} \contentsline {subsection}{\numberline {1.1}{\fontfamily {ppl}\fontshape {it}\selectfont Code\_Saturne}\xspace }{15}{subsection.1.1} \contentsline {subsection}{\numberline {1.2}\'Echanges avec l'Enveloppe\xspace }{15}{subsection.1.2} \contentsline {section}{\numberline {2}Cas d'utilisation de l'Enveloppe\xspace }{17}{section.2} \contentsline {subsection}{\numberline {2.1}Acteurs}{17}{subsection.2.1} \contentsline {subsection}{\numberline {2.2}Cas d'utilisation}{17}{subsection.2.2} \contentsline {paragraph}{Cas d'utilisation 1 : Lecture des donn\'ees des {\slshape maillages}\xspace }{17}{section*.5} \contentsline {paragraph}{Cas d'utilisation 2~: Mise en repr\'esentation interne des donn\'ees d'un {\slshape maillage}\xspace }{17}{section*.6} \contentsline {paragraph}{Cas d'utilisation 3 : Concat\'enation de {\slshape maillages}\xspace }{17}{section*.7} \contentsline {paragraph}{Cas d'utilisation 4 : Recollement de {\slshape maillages}\xspace ou p\'eriodicit\'e}{18}{section*.8} \contentsline {paragraph}{Cas d'utilisation 5 : D\'ecoupage du domaine}{18}{section*.9} \contentsline {paragraph}{Cas d'utilisation 6 : V\'erification de maillage}{18}{section*.10} \contentsline {paragraph}{Cas d'utilisation 7 : \'Ecriture du {\slshape maillage}\xspace pour le post-traitement}{18}{section*.11} \contentsline {paragraph}{Cas d'utilisation 8 : \'Ecriture des donn\'ees sp\'ecifiques au Noyau\xspace }{18}{section*.12} \contentsline {section}{\numberline {3}Choix techniques}{21}{section.3} \contentsline {subsection}{\numberline {3.1}Mod\'elisation objet}{21}{subsection.3.1} \contentsline {subsection}{\numberline {3.2}Interface avec l'utilisateur}{21}{subsection.3.2} \contentsline {subsection}{\numberline {3.3}Langage de programmation}{21}{subsection.3.3} \contentsline {section}{\numberline {4}D\'efinition des concepts cl\'es}{25}{section.4} \contentsline {subsection}{\numberline {4.1}Maillage}{25}{subsection.4.1} \contentsline {subsubsection}{\numberline {4.1.1}Connectivit\'e}{25}{subsubsection.4.1.1} \contentsline {subsubsection}{\numberline {4.1.2}Type g\'eom\'etrique}{26}{subsubsection.4.1.2} \contentsline {subsubsection}{\numberline {4.1.3}\'Etiquette}{26}{subsubsection.4.1.3} \contentsline {subsubsection}{\numberline {4.1.4}Propri\'et\'e}{26}{subsubsection.4.1.4} \contentsline {subsubsection}{\numberline {4.1.5}Filiation}{26}{subsubsection.4.1.5} \contentsline {subsection}{\numberline {4.2}Entit\'e de maillage}{27}{subsection.4.2} \contentsline {subsection}{\numberline {4.3}Champ}{27}{subsection.4.3} \contentsline {subsection}{\numberline {4.4}Famille}{28}{subsection.4.4} \contentsline {section}{\numberline {5}Classes}{29}{section.5} \contentsline {subsection}{\numberline {5.1}Maillage}{29}{subsection.5.1} \contentsline {subsubsection}{\numberline {5.1.1}Relations de la classe {\sffamily Maillage}\xspace }{29}{subsubsection.5.1.1} \contentsline {subsubsection}{\numberline {5.1.2}Attributs et m\'ethodes de la classe {\sffamily Maillage}\xspace }{30}{subsubsection.5.1.2} \contentsline {subsection}{\numberline {5.2}Entit\'eMaillage}{31}{subsection.5.2} \contentsline {subsubsection}{\numberline {5.2.1}G\'en\'eralisation des entit\'es de maillage }{31}{subsubsection.5.2.1} \contentsline {subsubsection}{\numberline {5.2.2}Relations de la classe {\sffamily Entit\'eMaillage}\xspace }{31}{subsubsection.5.2.2} \contentsline {subsection}{\numberline {5.3}Connectivit\'e}{31}{subsection.5.3} \contentsline {subsubsection}{\numberline {5.3.1}G\'en\'eralisation des connectivit\'es }{31}{subsubsection.5.3.1} \contentsline {subsubsection}{\numberline {5.3.2}Relations de la classe Connectivit\'e }{32}{subsubsection.5.3.2} \contentsline {subsection}{\numberline {5.4}Famille}{32}{subsection.5.4} \contentsline {subsection}{\numberline {5.5}Champ}{33}{subsection.5.5} \contentsline {subsubsection}{\numberline {5.5.1}Classification des {\slshape champs}\xspace }{33}{subsubsection.5.5.1} \contentsline {subsubsection}{\numberline {5.5.2}Attributs de la classe Champ}{33}{subsubsection.5.5.2} \contentsline {subsubsection}{\numberline {5.5.3}Relations de la classe {\sffamily Champ}\xspace }{34}{subsubsection.5.5.3} \contentsline {subsection}{\numberline {5.6}Descripteur}{36}{subsection.5.6} \contentsline {section}{\numberline {6}Impl\'ementation et configuration logicielle en langage~C }{39}{section.6} \contentsline {subsection}{\numberline {6.1}Impl\'ementation en~C}{39}{subsection.6.1} \contentsline {subsubsection}{\numberline {6.1.1}Approche objet}{39}{subsubsection.6.1.1} \contentsline {paragraph}{Modularit\'e}{39}{section*.13} \contentsline {paragraph}{Encapsulation et masquage de l'information}{39}{section*.14} \contentsline {paragraph}{Classification}{40}{section*.15} \contentsline {subsubsection}{\numberline {6.1.2}Approche objet en~C}{40}{subsubsection.6.1.2} \contentsline {paragraph}{Module}{40}{section*.16} \contentsline {paragraph}{Classe}{40}{section*.17} \contentsline {paragraph}{Encapsulation et masquage de l'information}{40}{section*.18} \contentsline {subsubsection}{\numberline {6.1.3}Impl\'ementation de l'approche objet dans l'Enveloppe\xspace }{41}{subsubsection.6.1.3} \contentsline {paragraph}{Masquage de l'information}{41}{section*.19} \contentsline {paragraph}{Relations entre classes}{41}{section*.20} \contentsline {subsection}{\numberline {6.2}Configuration logicielle}{42}{subsection.6.2} \contentsline {subsubsection}{\numberline {6.2.1}Organisation de l'Enveloppe\xspace en sous-syst\`emes}{42}{subsubsection.6.2.1} \contentsline {subsubsection}{\numberline {6.2.2}Visibilit\'e des classes}{43}{subsubsection.6.2.2} \contentsline {paragraph}{R\`egles de visibilit\'e intra-{\itshape paquetage}\xspace }{44}{section*.21} \contentsline {paragraph}{R\`egles de visibilit\'e inter-{\itshape paquetages}\xspace }{45}{section*.22} \contentsline {subsection}{\numberline {6.3}Correspondance entre structures~C et classes}{46}{subsection.6.3} \contentsline {subsubsection}{\numberline {6.3.1}Types de base}{46}{subsubsection.6.3.1} \contentsline {subsubsection}{\numberline {6.3.2}Maillage}{47}{subsubsection.6.3.2} \contentsline {subsubsection}{\numberline {6.3.3}Entit\'e de maillage}{48}{subsubsection.6.3.3} \contentsline {subsubsection}{\numberline {6.3.4}Connectivit\'e}{48}{subsubsection.6.3.4} \contentsline {subsubsection}{\numberline {6.3.5}Famille}{49}{subsubsection.6.3.5} \contentsline {subsubsection}{\numberline {6.3.6}Champ}{49}{subsubsection.6.3.6} \contentsline {paragraph}{Description de la structure}{49}{section*.23} \contentsline {paragraph}{Caract\'eristiques des champs}{50}{section*.24} \contentsline {paragraph}{R\'epartition des fonctions dans les fichiers}{50}{section*.25} \contentsline {subsubsection}{\numberline {6.3.7}Descripteur}{51}{subsubsection.6.3.7} \contentsline {subsection}{\numberline {6.4}Structures Vecteur Index\'e}{51}{subsection.6.4} \contentsline {subsubsection}{\numberline {6.4.1}Vecteur Index\'e}{52}{subsubsection.6.4.1} \contentsline {subsubsection}{\numberline {6.4.2}Lien entre les \begin@guill positions \end@guill et les \begin@guill valeurs \end@guill }{53}{subsubsection.6.4.2} \contentsline {subsection}{\numberline {6.5}Autres structures}{55}{subsection.6.5} \contentsline {section}{\numberline {7}Utilisation de la structure objet}{59}{section.7} \contentsline {subsection}{\numberline {7.1}Mise en place des relations de visibilit\'e}{59}{subsection.7.1} \contentsline {subsection}{\numberline {7.2}Utilisation des relations entre paquetages}{59}{subsection.7.2} \contentsline {subsubsection}{\numberline {7.2.1}Fonctions li\'ees \`a une structure~C}{59}{subsubsection.7.2.1} \contentsline {subsubsection}{\numberline {7.2.2}Appel d'une fonction sur une structure visible}{60}{subsubsection.7.2.2} \contentsline {subsection}{\numberline {7.3}Utilisation de la structure {\slshape champ}\xspace }{61}{subsection.7.3} \contentsline {subsubsection}{\numberline {7.3.1}Utilisation d'un {\slshape champ}\xspace existant non modifi\'e}{62}{subsubsection.7.3.1} \contentsline {subsubsection}{\numberline {7.3.2}Utilisation d'un {\slshape champ}\xspace existant \`a modifier}{62}{subsubsection.7.3.2} \contentsline {subsubsection}{\numberline {7.3.3}Cr\'eation d'un champ}{63}{subsubsection.7.3.3} \contentsline {paragraph}{Cr\'eation d'un {\slshape champ}\xspace \`a partir d'un {\slshape vecteur index\'e}\xspace }{63}{section*.26} \contentsline {paragraph}{Cr\'eation compl\`ete d'un {\slshape champ}\xspace }{63}{section*.27} \contentsline {subsubsection}{\numberline {7.3.4}Rattachement d'un champ \`a une {\slshape entit\'e de maillage}\xspace }{64}{subsubsection.7.3.4} \contentsline {subsection}{\numberline {7.4}Utilisation de la structure {\slshape vecteur index\'e}\xspace }{66}{subsection.7.4} \contentsline {section}{\numberline {8}Conventions et r\`egles}{67}{section.8} \contentsline {subsection}{\numberline {8.1}Nommage}{67}{subsection.8.1} \contentsline {subsubsection}{\numberline {8.1.1}G\'en\'eralit\'es}{67}{subsubsection.8.1.1} \contentsline {subsubsection}{\numberline {8.1.2}Nommage des \'enum\'erations}{67}{subsubsection.8.1.2} \contentsline {subsubsection}{\numberline {8.1.3}Nommage des {\itshape classes}\xspace }{67}{subsubsection.8.1.3} \contentsline {subsection}{\numberline {8.2}Pr\'esentation des sources}{68}{subsection.8.2} \contentsline {subsubsection}{\numberline {8.2.1}G\'en\'eralit\'es}{68}{subsubsection.8.2.1} \contentsline {subsubsection}{\numberline {8.2.2}Pr\'esentation des fonctions}{68}{subsubsection.8.2.2} \contentsline {subsection}{\numberline {8.3}Programmation}{69}{subsection.8.3} \contentsline {subsubsection}{\numberline {8.3.1}Langage}{69}{subsubsection.8.3.1} \contentsline {subsubsection}{\numberline {8.3.2}R\`egles de programmation}{69}{subsubsection.8.3.2} \contentsline {subsubsection}{\numberline {8.3.3}Assertions}{70}{subsubsection.8.3.3} \contentsline {subsubsection}{\numberline {8.3.4}Constantes nomm\'ees}{70}{subsubsection.8.3.4} \contentsline {subsubsection}{\numberline {8.3.5}Internationalisation}{70}{subsubsection.8.3.5} \contentsline {subsubsection}{\numberline {8.3.6}Fonctions utilitaires}{71}{subsubsection.8.3.6} \contentsline {section}{\numberline {9}Compilation et aide au d\'ebogage}{73}{section.9} \contentsline {subsection}{\numberline {9.1}Compilation}{73}{subsection.9.1} \contentsline {subsubsection}{\numberline {9.1.1}Configuration pour la compilation}{73}{subsubsection.9.1.1} \contentsline {subsubsection}{\numberline {9.1.2}Options de compilation}{74}{subsubsection.9.1.2} \contentsline {subsubsection}{\numberline {9.1.3}Variables d'environnement d\'ependantes du syst\`eme d'exploitation }{74}{subsubsection.9.1.3} \contentsline {subsection}{\numberline {9.2}M\'emoire et chronom\'etrie}{75}{subsection.9.2} \contentsline {subsubsection}{\numberline {9.2.1}M\'emoire}{75}{subsubsection.9.2.1} \contentsline {subsubsection}{\numberline {9.2.2}Chronom\'etrie}{75}{subsubsection.9.2.2} \contentsline {subsection}{\numberline {9.3}Impression de la structure Maillage}{76}{subsection.9.3} \contentsline {section}{\numberline {10}Perspectives de d\'eveloppement}{77}{section.10} \contentsline {subsection}{\numberline {10.1}Am\'eliorations du codage de l'Enveloppe\xspace }{77}{subsection.10.1} \contentsline {subsection}{\numberline {10.2}Evolutions du code}{77}{subsection.10.2} \contentsline {section}{\numberline {A}Fichier impression de la structure maillage et de ses structures composantes}{81}{section.A}