Previous Up Next

Chapter 5  condli




0.1  Fonction

Il est nécessaire de disposer de conditions aux limites dans au moins trois cas principaux :

Les considérations présentes concernent uniquement les variables de calcul (vitesse, pression, tenseur de Reynolds, scalaires solution d’une équation de convection-diffusion). Pour ces grandeurs2, l’utilisateur doit définir les conditions aux limites en chaque face de bord (usclim ).

Le sous-programme condli permet de traduire les données utilisateur (fournies dans usclim ) au format interne de représentation des conditions aux limites. Des vérifications de complétude et de cohérence sont également menées (dans vericl ). Sont en particulier traitées les conditions aux limites de paroi (clptur ) et de symétrie pour les vitesses et le tenseur de Reynolds (clsyvt ).

Le sous-programme condli fournit en sortie des couples de coefficients Ab et Bb pour chaque variable f et chaque face de bord. Ils sont utilisés pour le calcul des termes discrétisés intervenant dans les équations à résoudre et permettent en particulier de déterminer une valeur de face de bord fb,int (localisée au “centre” de la face de bord, barycentre de ses sommets) par la relation fb,int = Ab+Bb fIfI est la valeur de la variable au point I, projeté du centre de la cellule jouxtant le bord sur la droite normale à la face de bord et passant par son centre (voir la figure II.0.1).


[height=8cm]./graphics/fluxbord
Figure II.0.1: Cellule de bord.

0.2  Discrétisation


Notation
On désignera dans la suite par
VarScalaire toute variable

La dénomination VarScalaire pourra en particulier désigner la température, un scalaire passif, une fraction massique ou (sauf mention contraire explicite) la variance des fluctuations d’une autre VarScalaire. Les variables d’état déduites (masse volumique, viscosité...) ne seront pas désignées par VarScalaire.


Représentation des conditions aux limites standard dans usclim
Des conditions aux limites standardisées peuvent être fournies par l’utilisateur dans
usclim . Il est pour cela nécessaire d’affecter un type aux faces de bord des cellules concernées3. Les conditions prévues par défaut sont les suivantes :


Représentation des conditions aux limites spécifiques dans usclim
On a vu que l’affectation à une face de bord d’un type standard (entrée, sortie, paroi, symétrie) permettait d’appliquer simplement à l’ensemble des variables un assortiment de conditions aux limites cohérentes entre elles pour les types usuels de frontière physique.

Une solution consiste à définir dans usclim , pour chaque face de bord et chaque variable, des conditions aux limites spécifiques8 (celles-ci, comme les conditions standards, se ramènent finalement à des conditions de type mixte).

Les deux approches ne sont pas nécessairement incompatibles et peuvent même se révéler complémentaires. En effet, les conditions aux limites standards peuvent être surchargées par l’utilisateur pour une ou plusieurs variables données. Il convient cependant de s’assurer que, d’une façon ou d’une autre, une condition à la limite a été définie pour chaque face de bord et chaque variable.

Des conditions de compatibilité existent également entre les différentes variables (voir vericl ):


Représentation interne des conditions aux limites

Objectif

Les conditions fournies par l’utilisateur sont retraduites sous forme de couples de coefficients Ab et Bb pour chaque variable f et chaque face de bord. Ces coefficients sont utilisés pour le calcul des termes discrets intervenant dans les équations à résoudre et permettent en particulier de déterminer une valeur de face de bord fb,int. Il est important d’insister dès à présent sur le fait que cette valeur est, de manière générale, une simple valeur numérique qui ne reflète pas nécessairement une réalité physique (en particulier aux parois, pour les grandeurs affectées par la couche limite turbulente). On détaille ci-dessous le calcul de Ab, Bb et de fb,int.

Notations


fα
symbolenomunitésymbolenomunité
uivitessem s−1µ ou µ+µtviscosité dynamiquekg m−1 s−1
ppressionkg m−1 s−2Δ tpas de tempss
TtempératureKλconductivité thermiquekg m s−3 K−1
     =W m−1 K−1
Henthalpiem2 s−2λ/Cpconductivité thermique/Cpkg m−1 s−1
  =J kg−1   
fVarScalaireunité(f)αconductivité ou diffusivitékg m−1 s−1
Table 5.1: Valeurs et unités de α dans quelques cas particuliers usuels.

Condition de type Dirichlet simple : lorsque la condition est une condition de Dirichlet simple, on obtient naturellement (cas particulier de (??)) : Autres cas : lorsque la condition à la limite porte sur la donnée d’un flux, il s’agit d’un flux diffusif11. On a alors :

Le flux diffusif réel imposé peut être donné




Selon le type de condition (Dirichlet ou Neumann) et en prenant pour hypothèse la conservation du flux dans la direction normale au bord, on peut alors écrire (voir figure
II.0.1) :

Le rapport entre le coefficient hb et le coefficient hint rend compte de l’importance de la traversée de la zone proche du bord et revêt une importance particulière dans le cas des parois le long desquelles se développe une couche limite (dont les propriétés sont alors prises en compte par hb : se reporter à clptur ). Dans le cadre plus simple considéré ici, on se limitera au cas hb=hint et fb,ext=fb,int=fb. La relation (??) s’écrit alors :

En réarrangeant, on obtient la valeur de bord :

Conclusion : on notera donc les conditions aux limites de manière générale sous la forme : avec Ab et Bb définis selon le type des conditions :

Remarques

Exemples de cas particuliers

Valeur et unité des données à fournir
Le tableau
5.2 permet d’identifier les unités de h (himp,ext ou hint) et φimp,ext pour quelques variables classiques. La variable d représente une longueur (égale, pour hint, à IF). Il est également important de noter qu’un flux “sortant” doit être positif.


fh
symbolenomunitéhomogène àunité
uivitessem s−1(µ+µt)/dkg m−2 s−1
ppressionkg m−1 s−2t)/ds m−1
TtempératureK(λ+Cpµtt)/dkg s−3 K−1
     =W m−2 K−1
Henthalpiem2 s−2=J kg−1(λ/Cptt)/dkg m−2 s−1
fscalaireunité(f)α/dkg m−2 s−1
fφimp,ext
symbolenomunitéhomogène àunité
uivitessem s−1(µ+µtgrad (ui).nkg m−1 s−2
ppressionkg m−1 s−2tgrad (p).nkg m−2 s−1
TtempératureK(λ+Cpµttgrad (T).nkg s−3=W m−2
Henthalpiem2 s−2=J kg−1(λ/Cpttgrad (H).nkg s−3=W m−2
fscalaireunité(f)α grad (f).nkg m−2 s−1 unité(f)
Table 5.2: Valeur et unité de h et φimp,ext dans quelques cas particuliers usuels.



Condition de sortie pour la pression
On précise ici la condition de sortie appliquée à la pression dans le cas des sorties standards. Il est nécessaire d’imposer une condition de type Dirichlet (accompagnée d’une condition de type Neumann homogène sur les composantes de la vitesse). On la calcule à partir des valeurs de la variable au pas de temps précédent.

On constate donc que la condition de pression en sortie est une condition de Dirichlet dont les valeurs sont égales aux valeurs de la pression (prises au pas de temps précédent) sur le plan amont des points I et recalées pour obtenir P0 en un point de sortie arbitraire.

0.3  Mise en œuvre


Mode de prescription des conditions aux limites dans usclim
L’utilisateur fournit pour chaque face un moyen de déterminer les conditions aux limites de toutes les variables de calcul. Comme on l’a vu, plusieurs méthodes sont envisageables.

La plus simple consiste à renseigner, pour chaque face, un code désignant une condition à la limite standard (dans le tableau ITYPFB de dimension NFABOR) et les informations complémentaires éventuelles. Les valeurs de ITYPFB suivantes sont prédéfinies13 : IENTRE (entrée), ISOR09 (sortie de type 9), ISOR10 (sortie de type 10), ISYMET (symétrie), IPAROI (paroi). Dans le cas des entrées (et des sorties de type 10), il est nécessaire de fournir une valeur de Dirichlet.

L’utilisateur peut également renseigner un entier (tableau ICODCL de dimension NFABOR×NVAR) désignant le type de condition à appliquer à une variable donnée : les valeurs 1 (pour Dirichlet) et 3 (pour Neumann) sont souvent utilisées, plus rarement 5 (pour les conditions de paroi) et exceptionnellement 4 (pour la symétrie d’une vitesse ou du tenseur de Reynolds), 9 ou 10 (pour les sorties de type 9 ou 10). Lorsque ICODCL est renseigné pour une variable donnée, il prend alors le pas sur ITYPFB sur la face considérée. L’utilisateur doit dans ce cas également fournir, suivant les cas, zéro, un ou deux réels (dans le tableau RCODCL de dimension NFABOR×NVAR× 3). Pour une face et une variable f données, les 3 valeurs de RCODCL désignent respectivement les grandeurs fimp,ext, himp,ext et φimp,ext.

On indique dans le tableau 5.3 le mode de traitement des variables pour les différents types de conditions aux limites standards. La liste des valeurs complémentaires à fournir est également précisée. Le tableau 5.4 propose le même type d’information pour les conditions aux limites spécifiques plus complexes, définies à partir de la valeur de ICODCL. Enfin, le tableau 5.5 synthétise les valeurs admissibles de ICODCL pour chaque variable de calcul.


ITYPFBtypevariables traitéestype de conditiondonnées complémentaires
IENTREentréevariables transportéesDirichletRCODCL(.,.,1)valeur d’entréenulle par défaut
  pressionNeumann homogène   
ISYMETsymétrievitessesymétrie vecteur   
  tensions de Reynoldssymétrie tenseur   
  autres variablesNeumann homogène   
IPAROIparoipressionNeumann homogènea   
  vitesseslois de paroi (Dirichlet)bRCODCL(.,.,1)vitesse de défilementnulle par défaut
  grandeurs turbulenteslois de paroic   
  autres variables    
   transportéesNeumann homogèned   
ISOR09sortiepression2P/∂ nτi=0   
  vitessesNeumann homogène   
    (flux de masse sortant)   
   Dirichlet homogène   
    (flux de masse entrant)   
  autres variables    
   transportéesNeumann homogène   
ISOR10sortiepression2P/∂ nτi=0   
  vitessesNeumann homogène   
    (flux de masse sortant)   
   Dirichlet homogène   
    (flux de masse entrant)   
  autres variablesNeumann homogène   
   transportées (flux de masse sortant)   
   DirichleteRCODCL(.,.,1)valeur d’entréenulle par défaut
    (flux de masse entrant)   
aLe gradient peut être extrapolé en paroi selon les valeurs de EXTRAP : voir gradrc
bvoir clptur
cvoir également clptur
dLa condition de Neumann homogène est obtenue lorsque l’utilisateur ne précise rien d’autre que le type de frontière IPAROI ; d’autres conditions sont possibles : le tableau 5.4 les précise.
eLa valeur est imposée par l’utilisateur. Il n’y a pas d’implicitation temporelle.
Table 5.3: Conditions aux limites standards.


ICODCLvariablestype de conditiondonnées complémentaires nécessaires et suffisantes
1toutesDirichletRCODCL(.,.,1)fimp,extvaleurnulle par défaut
   RCODCL(.,.,2)himp,extcoef. d’échange=RINFIN=1030 par défaut
3toutesNeumannRCODCL(.,.,3)φimp,extvaleurnulle par défaut
4vitesseSymétrie vecteur    
 RijSymétrie tenseur    
5vitesseLoi de paroiRCODCL(.,.,1) vitesse de défilementnulle par défaut
 k, Rij, ε, ϕ, f, ωLoi de paroi    
 VarScalaireLoi de paroiRCODCL(.,.,1)fimp,extvaleur en paroinulle par défaut
  (sauf variance) RCODCL(.,.,2)himp,extcoef. d’échange=RINFIN=1030 par défaut
9vitesseNeumann homogène    
   (flux de masse sortant)    
  Dirichlet homogène    
   (flux de masse entrant)    
10k, Rij, ε, ϕ, f, ωDirichletRCODCL(.,.,1)fimp,extvaleurnulle par défaut
 VarScalaire (flux de masse entrant)RCODCL(.,.,2)himp,extcoef. d’échange=RINFIN=1030 par défaut
  NeumannRCODCL(.,.,3)φimp,extvaleurnulle par défaut
   (flux de masse sortant)    
Table 5.4: Conditions aux limites spécifiques.


VariableValeurs de ICODCL admissibles
VitesseU13459 
Pressionp13    
Variable scalaire de turbulencek, ε, ϕ, f, ω13 5 10
Tenseur de ReynoldsRij1345 10
VarScalaire (hormis variances) 13 5 10
Variance des fluctuations d’une VarScalaire 13   10
Table 5.5: Valeurs admissibles de ICODCL pour chaque variable.

Il est important de connaître également les compatibilités à assurer entre les valeurs de ICODCL associées aux différentes variables (Cf. Points à traiter).


Conversion des données utilisateur
Une première étape (
TYPECL) permet essentiellement de convertir les données des utilisateurs. Plus précisément, les actions suivantes sont réalisées :


Vérifications
Une vérification des conditions aux limites est ensuite menée (
vericl ) (l’utilisateur est prévenu et le programme interrompu en cas de problème).


Calculs préliminaires
Différentes grandeurs sont ensuite construites pour préparer le traitement ultérieur des conditions aux limites.


Conditions aux limites de paroi
On détermine alors (
clptur ) les conditions aux limites de paroi pour la vitesse et les grandeurs turbulentes. Les VarScalaires (excepté les variances) peuvent également recevoir un traitement particulier prenant en compte la couche limite si la condition qui leur est appliquée est de type Dirichlet (ICODCL=5). On traite donc en particulier dans clptur les conditions portant sur la température lorsque la paroi est à température imposée. Par contre, les conditions de flux sont traitées plus tard dans condli .

Le sous-programme clptur remplit les tableaux COEFA et COEFB pour les faces de paroi et les variables traitées. Ces tableaux représentent les coefficients Ab et Bb. Plus précisément, pour une face IFAC et une variable IVAR donnée, les valeurs renseignées sont COEFA(IFAC,ICLVAF) et COEFB(IFAC,ICLVAF) avec ICLVAF=ICLRTP(IVAR,ICOEFF). Deux autres valeurs sont également renseignées :
COEFA(IFAC,ICLVAR) et COEFB(IFAC,ICLVAR) avec ICLVAR=ICLRTP(IVAR,ICOEF).
Elles ne diffèrent des précédentes qu’en
k−ε et représentent des coefficients Ab et Bb particuliers pour le calcul des gradients intervenant dans le terme de production turbulente (il y a donc bien deux types de conditions aux limites pour la vitesse dans ce cas, et chacun est utilisé lors du traitement d’un terme particulier : on se reportera à clptur ).


Conditions aux limites de symétrie
On détermine également (
clsyvt ) les conditions aux limites de symétrie pour les vecteurs (vitesse) et les tenseurs (de Reynolds). Elles nécessitent des rotations pour s’exprimer dans le repère lié au bord et le traitement lourd qui en résulte a donc été encapsulé. Le sous-programme complète les tableaux COEFA et COEFB aux faces de symétries pour la vitesse et les tensions de Reynolds (contrairement aux faces de paroi en k−ε, les valeurs COEFA(IFAC,ICLVAF) et COEFB(IFAC,ICLVAF) sont égales à COEFA(IFAC,ICLVAR) et COEFB(IFAC,ICLVAR)).


Autres conditions aux limites pour la vitesse
On détermine, pour la vitesse, les conditions aux limites en sortie. On traite en outre les conditions restantes de type Dirichlet et Neumann. Ici également, on fournit une valeur de
COEFA et de COEFB pour chaque face concernée (les valeurs COEFA(IFAC,ICLVAF) et COEFB(IFAC,ICLVAF) sont égales à COEFA(IFAC,ICLVAR) et COEFB(IFAC,ICLVAR)). Notons que, si le flux de masse est entrant à travers une face de sortie, on impose un Dirichlet homogène sur la vitesse (COEFA(IFAC,ICLVAF)=0, COEFB(IFAC,ICLVAF)=0) au lieu de la condition de Neumann homogène (COEFA(IFAC,ICLVAF)=0, COEFB(IFAC,ICLVAF)=1), lorsque le flux de masse est sortant.


Autres conditions aux limites
On détermine enfin, pour la pression, les grandeurs turbulentes et les autres scalaires, les conditions aux limites de type Dirichlet et Neumann restantes. Ici également, on fournit donc une valeur de
COEFA et de COEFB pour chaque face concernée (les valeurs COEFA(IFAC,ICLVAF) et COEFB(IFAC,ICLVAF) sont égales à COEFA(IFAC,ICLVAR) et COEFB(IFAC,ICLVAR)).

0.4  Points à traiter


Représentation des conditions par une valeur de face
Bien que la méthode utilisée permette une simplicité et une homogénéité de traitement de toutes les conditions aux limites, elle est relativement restrictive au sens où une seule valeur ne suffit pas toujours pour représenter les conditions à appliquer lors du calcul de termes différents.

Ainsi, en k−ε a-t-il été nécessaire, lors du calcul des conditions aux limites de paroi, de disposer de deux couples (Ab, Bb) afin de prendre en compte les conditions à appliquer pour le calcul de la contrainte tangentielle et celles à utiliser lors du calcul du terme de production (et un troisième jeu de coefficients serait nécessaire pour permettre le traitement des gradients intervenant dans les termes de gradient transposé, dans vissec ).

Peut-être pourrait-il être utile de mettre en place une méthode permettant d’utiliser (au moins en certains points stratégiques du code) directement des forces, des contraintes ou des flux, sans passer nécessairement par le calcul d’une valeur de face.


Difficultés liées à la donnée d’un flux (entrée des données peu intuitive)
L’utilisateur est invité à fournir, dans le cas d’une condition de Neumann, une valeur de flux en
W m−2 pour la température ou l’enthalpie. Par souci de cohérence, lorsqu’il souhaite fournir une condition de Neumann sur une autre variable, il est amené à fournir une grandeur similaire (en fait homogène à α grad f.n, si f est la variable), ce qui est peu naturel pour la vitesse, la pression ou un scalaire, dans le cas où l’on souhaite imposer la valeur du gradient normal à la face et non pas la valeur de (µ+µt)grad uj.n, de Δ t grad (p).n ou de α/C grad (f).n.


Condition de sortie en pression
La condition de pression en sortie se traduit par
pf=pI+R1 et le profil obtenu correspond au profil amont pris aux points I et recalé pour obtenir p0 en un point A arbitraire. Ce type de condition est appliqué sans précautions, mais n’est pas toujours justifié (une condition de Dirichlet basée sur la valeur calculée directement aux faces de bord pourrait être plus adaptée). Les hypothèses sont en particulier mises en défaut dans les cas suivants :

On pourrait également tester la méthode d’Orlansky (équation de convection sur la pression).

Par ailleurs, en l’absence de condition de sortie, il pourrait peut-être se révéler utile de fixer une valeur de référence sur une cellule donnée ou de ramener la moyenne de la pression à une valeur de référence (avec le décalage du spectre, on assure l’inversibilité de la matrice à chaque pas de temps, mais il faudrait vérifier si la pression n’est pas susceptible de dériver au cours du calcul).


Termes non pris en compte
Les conditions aux limites actuelles semblent causer des difficultés lors du traitement du terme de gradient transposé de la vitesse dans l’équation de Navier-Stokes (terme traité de manière explicite en temps). Il est possible de “débrancher” ce terme en positionnant le mot clé
IVISSE à 0. Sa valeur par défaut est 1 (les termes en gradient transposé sont pris en compte).
On remarquera que l’indicateur
IVISSE active non seulement les termes de gradient transposé en ( tgrad v), mais également le terme en − 2/3 grad ( µ tot div v) avec :


1
sauf en module compressible, cf. cfxtcl
2
Les autres grandeurs (propriétés physiques par exemple) font l’objet d’un traitement différent qui ne sera pas détaillé ici (par exemple, pour la masse volumique, l’utilisateur définit directement les valeurs aux bord, information qui est conservée telle quelle ; on pourra se reportera à usphyv ou phyvar ).
3
L’affectation d’un type se fait en renseignant le tableau ITYPFB.
4
Lorsqu’il n’y a pas de sortie, le spectre des valeurs propres de la matrice est décalé d’une valeur constante afin de rendre le système inversible : voir matrix .
5
Un message indique à l’utilisateur combien de faces de sortie voient un flux de masse entrer dans le domaine.
6
On doit alors fournir les composantes de la vitesse de la paroi.
7
On pourra se reporter à gradrc pour la condition conduisant à l’extrapolation de la pression au bord, condition pilotable par l’utilisation de la variable EXTRAP.
8
Les conditions aux limites spécifiques sont codées en renseignant directement les tableaux ICODCL et RCODCL pour chaque face de bord et chaque variable : des exemples sont fournis dans usclim .
9
Le nombre de Prandtl turbulent est sans dimension et, dans certains cas usuels, pris égal à 0,7.
10
Plus exactement, on a C=Cp pour toutes les VarScalaires f que l’on souhaite traiter comme la température pour les conditions aux limites. Ces VarScalaires sont repérables par l’utilisateur au moyen de l’indicateur ISCSTH=1. Par défaut cet indicateur est positionné à la valeur 0 pour toutes les VarScalaires (qui sont alors traitées comme des scalaires passifs avec C=1) hormis pour la variable thermique éventuelle (ISCALTième VarScalaire), pour laquelle on a ISCSTH=1 : on suppose par défaut que la variable thermique est la température et non l’enthalpie. Si l’on souhaite résoudre en enthalpie, il faut positionner ISCSTH à la valeur 2 pour la variable thermique. Pour le compressible, la variable thermique est l’énergie, identifiée par ISCSTH=3. On se reportera à cfxtcl pour le traitement des conditions aux limites.
11
En effet, le flux total sortant du domaine est donné par la somme du flux convectif (si la variable est effectivement convectée) et du flux diffusif. Néanmoins, pour les parois étanches et les symétries, le flux de masse est nul et la condition se réduit à une contrainte sur le flux diffusif. De plus, pour les sorties (flux de masse sortant), la condition à la limite ne porte que sur le flux diffusif (souvent une condition de Neumann homogène), le flux convectif dépendant des conditions amont (il n’a donc pas besoin de condition à la limite). Enfin, aux entrées, c’est le plus souvent une condition de Dirichlet simple qui est appliquée et le flux diffusif s’en déduit.
12
première face de sortie rencontrée en parcourant les faces de bord dans l’ordre naturel induit par la numérotation interne au code
13
L’utilisateur peut définir d’autres types (i.e. affecter à ITYPFB d’autres valeurs entières), mais elles ne recouvrent pas de conditions aux limites par défaut. Les faces de bord ainsi repérées sont cependant traitées comme un ensemble particulier lors de l’impression d’informations de type flux de masse par exemple.
14
Le test contient une référence à ICODCL = 2 qui est un héritage d’une version dans laquelle les conditions de Dirichlet avec coefficient d’échange étaient distinguées des conditions de Dirichlet sans coefficient d’échange.
15
On ne dispose pas encore de conditions aux limites permettant le calcul du gradient lors du passage dans condli au premier pas de temps.
16
ce qui est le cas par défaut

Previous Up Next