Le dossier 0

 

Ce dossier contient les valeurs initiales et les conditions limites des différentes grandeurs. Les conditions aux limites sous OpenFOAM est le point le plus délicat. Leur rôle dans la modélisation n'est pas simplement dans la géométrie, mais représentent une partie intégrale de la solution.  Dans cette partie nous allons nous focaliser sur ce point, et nous discuterons la façon dont elles sont traitées sous OpenFOAM. Chaque grandeur à résoudre (U,p,k...) par le solveur doit être initialisée sur toutes les zones du cas ainsi qu'à l'intérieur du domaine.

Il faut bien noter que toute frontière est généralement divisée en un ensemble de ce qu'on appelle "patch". Chaque patch peut contenir une ou plusieurs zones fermées de la frontière en question, qui ne sont pas nécessairement connectées physiquement.

Il y a trois attributs qu'on peut associer à un "patch" :

  • Base type : Cet attribut est purement géométrique. Il est défini dans le fichier boundary localisé dans le sous-dossier constant/polyMesh/. Il faut bien noter que pour cet attribut, tous les patches sont de type "patch", sauf ceux qui présentent une contrainte géométrique : empty, symmetryPlane, wall, wedge, cyclic,processor .

Brièvement nous allons expliquer ce que chaque type signifie.

patch : Concerne une frontière qui ne contient aucune information géométrique ou topologique (par exemple une entrée ou une sortie).

empty : Comme OpenFOAM ne génére que des maillages 3D, quand l'utilisateur veut résoudre un problème 2D, il faut spécifier une condition particulière vide sur les frontières qui nécessitent aucune solution.

cyclic : Permet de traiter deux patches comme étant connectés physiquement. Ceci est utile pour les géométries répétées (un faisceau de tubes par exemple).

processor : Cette option permet de diviser le maillage, afin que chaque partie soit traitée par un processeur si le code tourne en parallèle, ce qui est pratique pour les géométries compliquées avec un maillage très lourd.

Le fichier boundary qui contient cet attribut est de la forme suivante :                   

                      

 

  • Primitive et Derived type : Ces deux attributs sont spécifiés dans le dossier 0/ pour chaque grandeur. Bien évidemment ces types sont différents selon la grandeur. Une vitesse et une pression n'auront pas la même condition en la même frontière.

Il y a de nombreux types de zones possibles, les types classiques et leur description sont présentés dans le tableau suivant : 

    Type Description
fixedValue Valeur fixée par l'utilisateur.
zeroGradient Gradient normal à la zone nul.
fixedGradient Gradient normal à la zone fixé.
inletOutlet fixedValue lorsque la zone est une inlet et zeroGradient dans le cas contraire.
totalPressure La pression totale est constante, quand U changes, p est ajusté (vice-versa).

pressureInletVelocity

Quand p est connu à l'entrée, U est évaluée à partir du flux normal à la frontière en question.
pressureInletOutletVelocity Combinaison de pressureInletOutlet et InletOutlet.
calculated La grandeur est déduite des autres grandeurs.

Ces attributs sont présentées dans le dossier 0/ de la façon suivante (on considère la grandeur vitesse U) :