Previous Up Next

Chapter 16  turbke




0.1  Fonction

Le but de ce sous-programme est de résoudre le système des équations de k et ε de manière semi-couplée.
Le système d’équations résolu est le suivant :

P est le terme de production par cisaillement moyen :

P=
 −ρ Rij
∂ ui
∂ xj
= −


−µt 


∂ ui
∂ xj
 +
∂ uj
∂ xi



+
2
3
µt
∂ uk
∂ xk
δij +
2
3
ρ kδij


∂ ui
∂ xj
 =
 µt 


∂ ui
∂ xj
 +
∂ uj
∂ xi



∂ ui
∂ xj
2
3
µt(div
u
)2
2
3
ρ k div(
u
)
 =
 µt 





2


∂ u
∂ x



2



 
+ 2


∂ v
∂ y



2



 
+ 2


∂ w
∂ z



2



 
+


∂ u
∂ y
+
∂ v
∂ x



2



 
+


∂ u
∂ z
+
∂ w
∂ x



2



 
+


∂ v
∂ z
+
∂ w
∂ y



2



 






 −
2
3
µt(div
u
)2
2
3
ρ k div(
u
)

G est le terme de production par gravité : G=−1/ρµtt ∂ρ/∂ xigi

La viscosité turbulente est µtCµk2.

Les constantes sont :
Cµ=0,09 ; Cε2=1,92 ; σk=1 ; σε=1,3
Cε3=0 si G0 (stratification instable) et Cε3=1 si G0 (stratification stable).

Γ est un éventuel terme source de masse (tel que l’équation de conservation de masse devienne ∂ ρ/∂ t+divu)=Γ). ϕi (ϕ=k ou ε) est la valeur de ϕ associée à la masse injectée ou retirée. Dans le cas où on retire de la masse (Γ<0), on a forcément ϕi. De même, quand on injecte de la masse, on spécifie souvent aussi ϕi. Dans ces deux cas, le terme disparaît de l’équation. Dans la suite du document, on qualifiera d’injection forcée les cas où on a Γ>0 et ϕi≠ϕ.

αk, βk, αε, βε sont des termes sources utilisateur éventuels, conduisant à une implicitation partielle, imposés le cas échéant par le sous-programme ustske .

0.2  Discrétisation

La résolution se fait en trois étapes, afin de coupler partiellement les deux variables k et ε. Pour simplifier, réécrivons le système de la façon suivante :

D est l’opérateur de convection/diffusion. Sk (resp. Sε) est le terme source de k (resp. ε).

Première phase : bilan explicite

On résout le bilan explicite :

(le terme en Γ n’est pris en compte que dans le cas de l’injection forcée)

Deuxième phase : couplage des termes sources

On implicite les termes sources de manière couplée : soit

Le terme en divu) n’est pas implicité car il est lié au terme D pour assurer que la matrice d’implicitation sera à diagonale dominante. Le terme en Γ et les termes sources utilisateur ne sont pas implicités non plus, mais ils le seront dans la troisième phase.

Et on écrit (pour ϕ=k ou ε)

On résout donc finalement le système 2× 2 :


Troisième phase : implicitation de la convection/diffusion

On résout le système : soit

Le terme en Γ n’est là encore pris en compte que dans le cas de l’injection forcée. Le terme en α n’est pris en compte que si α est négatif, pour éviter d’affaiblir la diagonale de la matrice qu’on va inverser.

Précisions sur le couplage

Lors de la phase de couplage, afin de privilégier la stabilité et la réalisabilité du résultat, tous les termes ne sont pas pris en compte. Plus précisément, on peut écrire :

en notant P = (ui/∂ xj + uj/∂ xi)ui/∂ xj2/3(divu)2
et
G = −1/ρσt ∂ρ/∂ xigi

On a donc en théorie

En pratique, on va chercher à assurer kts>0 et εts>0. En se basant sur un calcul simplifié, ainsi que sur le retour d’expérience d’ESTET, on montre qu’il est préférable de ne pas prendre en compte certains termes. Au final, on réalise le couplage suivant :

avec

(par définition de Cε3, P+(1−Cε3)G est toujours positif)

0.3  Mise en œuvre


Calcul du terme de production
On appelle trois fois
grdcel pour calculer les gradients de u, v et w. Au final, on a
TINSTK= 2(u/∂ x)2+ 2(v/∂ y)2+ 2(w/∂ z)2+ (u/∂ y+v/∂ x)2+ (u/∂ z+w/∂ x)2+ (v/∂ z+w/∂ y)2
et
DIVU= u/∂ x+v/∂ y +w/∂ z

(le terme div(u) n’est pas calculé par divmas , pour correspondre exactement à la trace du tenseur des déformations qui est calculé pour la production)


Lecture des termes sources utilisateur
Appel de
ustske pour charger les termes sources utilisateurs. Ils sont stockés dans les tableaux suivants :
W7=Ωβk
W8=Ωβε
DAM=Ωαk
W9=Ωαε

Puis on ajoute le terme en (divu)2 à TINSTK. On a donc
TINSTK=P


Calcul du terme de gravité
Calcul uniquement si
IGRAKE=1.
On appelle
grdcel pour ROM, avec comme conditions aux limites COEFA=ROMB et COEFB=VISCB=0.
PRDTURt est mis à 1 si on n’a pas de scalaire température.

G est calculé et les termes sources sont mis à jour :
TINSTK=P+G
TINSTE=P+Max[G,0] =P+(1−Cε3)G

Si IGRAKE=0, on a simplement
TINSTK=TINSTE=P


Calcul du terme d’accumulation de masse
On stocke
W1divu) calculé par divmas (pour correspondre aux termes de convection de la matrice).


Calcul des termes sources explicites
On affecte les termes sources explicites de
k et ε pour la première étape.
SMBRK=Ω(µt(P+G) −2/3ρ(n) k(n)divu −ρ(n) ε(n))+Ω k(n)divu)
SMBREε(n)/k(n) (Cε1( µt(P+(1−Cε3)G) −2/3ρ(n) k(n)divu) −Cε2ρ(n)ε(n)) +Ωε(n)divu)

soit SMBRKSk(n)k(n)divu) et SMBRESε(n)+Ωε(n)divu).


Calcul des termes sources utilisateur
On ajoute les termes sources utilisateur explicites à
SMBRK et SMBRE, soit :
SMBRKSk(n)k(n)divu)+Ωαk k(n) +Ωβk
SMBRESε(n)+Ωε(n)divu) +Ωαεε(n) +Ωβε

Les tableaux W7 et W8 sont libérés, DAM et W9 sont conservés pour être utilisés dans la troisième phase de résolution.


Calcul des termes de convection/diffusion explicites
bilsc2 est appelé deux fois, pour k et pour ε, afin d’ajouter à SMBRK et SMBRE les termes de convection/diffusion explicites D(k(n)) et D(n)). Ces termes sont d’abord stockés dans W7 et W8, pour être conservés et réutilisés dans la troisième phase de résolution.


Termes source de masse
Dans le cas d’une injection forcée de matière, on passe deux fois dans
catsma pour ajouter les termes en Ω Γ (kik(n)) et Ω Γ (εi−ε(n)) à SMBRK et SMBRE. La partie implicite (ΩΓ) est stockée dans les variables W2 et W3, qui seront utilisées lors de la troisième phase (les deux variables sont bien nécessaires, au cas où on aurait une injection forcée sur k et pas sur ε, par exemple).


Fin de la première phase
Ceci termine la première phase. On a
SMBRK=Ω ρ(n)kek(n)t
SMBRE=Ω ρ(n)εe−ε(n)t


Phase de couplage
(uniquement si
IKECOU=1)

On renormalise SMBRK et SMBRE qui deviennent les seconds membres du système de couplage.
SMBRK=1/Ωρ(n)SMBRK =kek(n)t
SMBRE=1/Ωρ(n)SMBRE =εe−ε(n)t
et
DIVP23=2/3Max[div(u),0].

On remplit la matrice de couplage
A11=1/Δ t −2 Cµk(n)(n) Min[(P+G),0] +2/3Max[div(u),0]
A12= 1
A21= − Cε1 Cµ(P +(1−Cε3)G) − Cε2(ε(n)/k(n))2
A22=1/Δ t +2/3Cε1Max[div(u),0] +2 Cε2ε(n)/k(n)

On inverse le système 2× 2, et on récupère :
DELTK=ktsk(n)
DELTEts−ε(n)


Fin de la deuxième phase
On met à jour les variables
SMBRK et SMBRE.
SMBRK=Ω ρ(n)ktsk(n)t
SMBRE= Ω ρ(n)εts−ε(n)t

Dans le cas où on ne couple pas (IKECOU=0), ces deux variables gardent la même valeur qu’à la fin de la première étape.


Calcul des termes implicites
On retire à
SMBRK et SMBRE la partie en convection diffusion au temps n, qui était stockée dans W7 et W8.
SMBRK=Ω ρ(n)ktsk(n)t −Ω D(k(n))
SMBRE= Ω ρ(n)εts−ε(n)t −Ω D(n))

On calcule les termes implicites, hors convection/diffusion, qui correspondent à la diagonale de la matrice.
TINSTK=Ω ρ(n)t −Ωdivu)+ΩΓ+ΩMax[−αk,0]
TINSTE=Ω ρ(n)t −Ωdivu)+ΩΓ+ΩMax[−αε,0]
(
Γ n’est pris en compte qu’en injection forcée, c’est-à-dire qu’il est forcément positif et ne risque pas d’affaiblir la diagonale de la matrice).


Résolution finale
On passe alors deux fois dans
codits , pour k et ε, pour résoudre les équations du type :

TINST×(ϕ(n+1)−ϕ(n)) = D(n+1))+SMBR.


clipping final
On passe enfin dans la routine
clipke pour faire un clipping éventuel de k(n+1) et ε(n+1).


Previous Up Next