solutions fabriquées pour Navier-Stokes incompressible - comment trouver des champs de vitesse sans divergence?

10

Dans la méthode des solutions fabriquées (MMS), on postule une solution exacte, la substitue dans les équations et calcule le terme source correspondant. La solution est ensuite utilisée pour la vérification du code.

Pour les équations de Navier-Stokes incompressibles, le MMS conduit facilement à un terme source (non nul) dans l'équation de continuité. Mais tous les codes ne permettent pas les termes sources dans les équations de continuité, donc pour ces codes, seules les solutions fabriquées avec des champs de vitesse sans divergence feront l'affaire. J'ai trouvé cet exemple pour un domaine u 1Ω=[0,1]2 Dans les cas généraux en 3D, comment fabrique-t-on un champ de vitesse sans divergence?

u1=cos(πx)sin(πy)u2=sin(πx)cos(πy)
chris
la source

Réponses:

7

u=×A
A
u=f×g
fg

Il est difficile à la fois que la vitesse soit sans divergence et prescrive les conditions aux limites, mais tant que votre code vous permet de définir des fonctions arbitraires pour vos conditions aux limites, vous devriez être OK.

ETA: Bien sûr, votre équation de momentum devra accepter une fonction de forçage, mais je me suis toujours senti mieux à propos de forcer l'équation de momentum que d'ajouter un côté droit à l'équation de continuité.

Bill Barth
la source
Merci! (pour autant que je sache, le forçage de l'équation de continuité ne se produit que dans la modélisation de la cavitation)
Chris
5

Ce n'est pas une réponse générale, mais pour les équations de Navier-Stokes, il existe des solutions fabriquées qui décrivent le flux réel. Par exemple, le champ d'écoulement Kovasznay est un choix populaire:

http://link.springer.com/article/10.1007/BF00948290

La référence d'origine est: Kovasznay LIG, "Flux laminaire derrière une grille bidimensionnelle". Proc. Cambridge Philos. Soc., Page 44, 1948.

Wolfgang Bangerth
la source
1948 (!) Je ne savais pas que c'était du "vrai flux". Vous voulez dire par là qu'il peut être réellement mesuré dans une expérience physique (par opposition à simulé dans une expérience numérique)?
chris
Je crois que oui.
Wolfgang Bangerth
Non. Il s'agit d'un flux idéalisé à distance derrière une grille. Mais personne ne sait à quoi ressemble la grille et très probablement elle doit être faite d'un matériau "très doux"
Guido Kanschat
2

C'est ce que je fais d'habitude.

Définissez la fonction de rationalisation:

Ψ=[ψxψyψz]

la vitesse est égale à:

u=×Ψ=[ux=yψzzψyuy=zψxxψzuz=xψyyψx].

Vous pouvez maintenant choisir n'importe quelle pression moyenne nulle et construire un terme de forçage.

Ω=[0,1]3

 from sympy import *

 x,y,z = symbols('x y z')

 X = Matrix([[x],[y],[z]])

 psi = zeros(3,1)
 psi[0,0] = sin(2*pi*x)*y**2*(1-y)**2*z**2*(1-z)**2
 psi[2,0] = x**2*(1-x)**2*y**2*(1-y)**2*sin(2*pi*z)

 curl_psi = zeros(3,1)
 curl_psi[0] = diff(psi[2],X[1]) - diff(psi[1],X[2])
 curl_psi[1] = diff(psi[0],X[2]) - diff(psi[2],X[0])
 curl_psi[2] = diff(psi[1],X[0]) - diff(psi[0],X[1])
Nicola Cavallini
la source