OPENFOAM Ecoulements conduites cylindriques Laminaire Turbulent Tutorials crées par Rajesh Bhaskaran sous fluent et adaptés par Bence Somogyi sous OF.
Cas Laminaire Conduite de 20 cm de diamètre et 8 mètres de long. Vitesse d entrée moyenne (V avg ) : 1 m/s Densité du gaz : 1 kg/m 3, viscosité : 2.10-3 kg/(ms)
Objectifs Résoudre ce problème avec OpenFoam Tracer la vitesse le long de la ligne centrale Tracer le coefficient de frottement Tracer le profil de vitesse en sortie Validez vos résultats Utiliser les profils analytiques pour les couches limites
Maillage et données physiques Configuration axisymétrique (calcul 2D, coordonnées cylindriques) Donnée physique : passage du cas laminaire au cas turbulent en modifiant la viscosité du fluide.
Etape 1 : Maillage Tutorial Openfoam de départ : pitzdaily Calcul 2D axisymetrique (en théorie). Avec OF : calcul 3D sur une portion de cylindre.
Maillage - blockmesh Ouvrir le fichier blockmeshdict Le modifier tel que : 6 sommets (vertices) soient définis en fonction des données du cylindre sachant que converttometers est positionné à 1
3eme point de l arc z 3 4 2 5 x 1 0 cos(2.5 ) = 0,99905 sin(2.5 ) = 0,04362 y
Maillages : 5 éléments selon z et 100 selon x. 1 seul selon y (calcul 2D). Pour des cas 2D Axisymétriques (cylindre) la géométrie est nommée «wedge» (cale) pour un angle <= 5. Quand le fichier est modifié, lancer «blockmesh»
Conditions limites Dans le répertoire 0 du pas de temps initial Cas laminaire, on efface tout sauf p et U Conditions limites
(User guide 3.7 Standard libraries) Propriétés transport Fichier : constant/transportproperties Viscosité du fluide : 2e -03 Note : CrossPowerLawCoeffs et BirdCarreauCoeffs sont des coefficients pour les fluides non-newtoniens. Fichier : constant/rasproperties : paramètres de la turbulence. (Nous utilisons le fichier pour passer facilement au cas turbulent ensuite.) RASModel laminar;
(User guide 4.5 Solution and algorithm control) Paramètres solveur System/fvSolution
(User guide 4.4 Numerical Scheme) Schéma numérique Interpolation linéaire pour calculer les gradients, nu est dans le Laplacien gradschemes, laplacianschemes Dérivée upwind pour la divergence divschemes Schéma corrigé (correction explicite non-orthogonale) pour la surface normale aux gradients sngradschemes, laplacianschemes
(User guide 4.3 Time and data input/output control) Options de calcul application simplefoam > nom du solveur startfrom starttime > temps de départ. Autres options (e.g. latesttime pour redémarrer un calcul depuis la dernière sauvegarde)iteration/time step). starttime 0 > On démare un nouveau calcul. Si redémarrage on indique le numéro du pas. stopat endtime > endtime doit être spécifié. Autres options (e.g. writenow arrêtera le solveur à l itération suivante et écrira le resultat à cette itération même si ce n était pas prévu à l origine). endtime 3000 > Nous allons effectuer 3000 itérations deltat 1 > même paramètre pour calcul stationnaire et instationnaire. En instationnaire l pas de temps doit être indiqué en secondes [s], en stationnaire, la valeur doit être fixée à 1. writecontrol timestep > Résultats écrits à tous les pas de temps writeinterval 1000 > résultats écrits à toutes les itérations
Contrôle calcul
Calcul Lancement de simplefoam, donnée de sorties dans le fichier log simplefoam > log & Pour voir la progression du calcul (200 dernières lignes de log) tail -200f log
Suivi Calcul - Résidus Dans gnuplot : utilisez les lignes suivantes que vous écrivez dans un script. http://www.cfd-online.com/forums/openfoam-solving/ 64146-tutorial-how-plot-residuals.html gnuplot > load Residuals-lam.txt
http://www.cfd-online.com/forums/openfoam-solving/64146-tutorial-how-plot-residuals.html Suivi Calcul - Résidus Tracer les résidus de calcul
http://www.openfoam.com/docs/user/standard-utilities.php Post-Processing Exports de profils xy Ensuite : sample Ou sample -latesttime
sampledict Sortie xy text, utiliser gnuplot Profil le long de l axe central Profil transversal à la sortie
Validation - Analytique Recherchez les expressions des profils analytiques de type Blasius, utilisez les données physiques de la configuration openfoam pour tracer les profils analytiques (via un petit code fortran) Comparer les profils openfoam / analytiques.
Calcul de données fondamentales En aérodynamique, une des données fondamentales à calculer est le coefficient de frottement.
Modif. de sampledict
Coeff. De Frottement Analyse du Cisaillement????
https://confluence.cornell.edu/display/simulation/fluent+-+turbulent+pipe+flow+-+problem+specification Cas Turbulent Conduite de 20 cm de diamètre et 8 mètres de long. Vitesse d entrée moyenne (V avg ) : 1 m/s Densité du gaz : 1 kg/m 3, viscosité : 2.10-5 kg/(ms)
Mise en place Configuration 1/ Recopier le repertoire de travail config lam. 2/ Le maillage doit être modifié selon le rayon : passage de 5 à 10 points.
5 Maillage Executer blockmesh Le mailleur va rajouter un élément vide qu il faudra retirer (modifier aussi le 6 en 5)
User guide 7.2 : turbulence model Initialisation Calcul Nous avons besoin des champs initiaux des variables de la turbulence * (k, ε, ν t ) Nous devons indiquer une loi de paroi *: nutwallfunction (pour la variable ν t ) epsilonwallfunction (pour la dissipation ε) kqrwallfunction (pour l énergie k) * cf. cours sur la turbulence
Initialisation Calcul Vitesse d entrée: V=1 m/s Nombre de Reynolds: Re=V*D/ν=10000 Intensité de la turbulence: I=0.01 Echelle de la turbulence: ~7% du diamètre, l sc =0.07*D=0.014 m Energie cinétique de la turbulence: k=3/2*(v*i) 2 =1.5e-4 m 2 /s 2 Taux de dissipation de la turbulence: ε=c µ 3/4 *k 3/2 /l sc =2.1562e-5 m 2 /s 3, avec C µ =0.09.
k ε Boundary V ν t nutkwallfunction
K file
ε file
ν t file
U file
P file
Modification de la viscosité Ouvrir constant/transportproperties
Modèle turbulent Le modèle kepsilon va être utilisé pour les calculs. Modification du fichier constant/rasproperties
Solveur fvsolution #1
Solveur fvsolution #2 fvscheme : inchangé
Calcul
Calcul Lancement de simplefoam, donnée de sorties dans le fichier log simplefoam > log & Pour voir la progression du calcul (200 dernières lignes de log) tail -200f log
Calcul
Suivi Calcul - Résidus Dans gnuplot : utilisez les lignes suivantes que vous écrivez dans un script «trace_res». Puis: gnuplot trace_red
http://www.cfd-online.com/forums/openfoam-solving/64146-tutorial-how-plot-residuals.html Suivi Calcul - Résidus Tracer les résidus de calcul
Post-Processing Profils de vitesse : Modifier sampledict puis : sample -latesttime Cisaillement: Modifier sampledict puis : wallshearstress
Sortie xy text, utiliser gnuplot sampledict Profil le long de l axe central Profil transversal à la sortie
Sortie xy text, utiliser un programme fortran pour relire les données et calculer la norme du vecteur cisaillement sampledict Calcul cisaillement Le long de la paroi
Post-Processing Tracer le profil axial de vitesse
Post-Processing Vérification de la condition de sortie Refaire un calcul similaire en tout point mais dans une conduite deux fois plus longue avec donc 2 fois plus de mailles selon l axe.
Cisaillement (utiliser code Fortran) τ X
Analyse finale Tracer sur une même courbe l évolution du coefficient de frottement en fonction du nombre de Reynolds Cas laminaire Cas turbulent Cas turbulent : recalculer quelques points de la courbe en modifiant les lois de parois (cf doc OpenFoam).