script_309cvmn_309.py

49,00 

Simuler et visualiser en temps réel l’écoulement d’un fluide autour d’un obstacle cylindrique (Allée de von Kármán) via la méthode Boltzmann sur réseau (LBM).

UGS : script_309cvmn_309.py Catégorie : Étiquettes : , ,

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_309cvmn_309.py

Version 1.0.0

Date de création 09/03/2026

Auteur / Demandeur IA Générée (Gemini)

Objectif principal Simuler et visualiser en temps réel l’écoulement d’un fluide autour d’un obstacle cylindrique (Allée de von Kármán) via la méthode Boltzmann sur réseau (LBM).

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script implémente une simulation de mécanique des fluides numérique (CFD) utilisant le modèle D2Q9 (2 dimensions, 9 vecteurs de vitesse). Il modélise le passage d’un fluide dans un canal contenant un cylindre, provoquant l’apparition de tourbillons alternés appelés « Allée de von Kármán », et affiche le résultat via une animation interactive.

📌 Problème résolu

Il permet de visualiser des phénomènes aérodynamiques complexes (instabilités de sillage) sans nécessiter de solveurs Navier-Stokes lourds, en utilisant une approche mésoscopique (Boltzmann) particulièrement efficace pour le parallélisme et les géométries complexes.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x (recommandé 3.8+)

OS cible Tous (Windows, Linux, MacOS)

Mode d’exécution Interface Graphique (Matplotlib Animation)

📦 Dépendances / Librairies

# Librairies externes (pip install)

numpy (Calcul matriciel intensif)

matplotlib (Rendu graphique et animation)

📥 ENTRÉES (INPUTS)

📂 Paramètres de simulation (Hardcodés)

# Nom Type Description Valeur par défaut

1 Nx, Ny int Dimensions de la grille de calcul 400 x 100

2 tau float Temps de relaxation (lié à la viscosité) 0.6

3 v_inlet float Vitesse du fluide à l’entrée 0.1

📤 SORTIES (OUTPUTS)

📂 Visualisation

Type Chemin / Format Description

Graphique Fenêtre Matplotlib Animation interactive de la magnitude de la vitesse.

🧱 STRUCTURE DU SCRIPT

script_309cvmn_309.py

📌 IMPORTS : NumPy pour les calculs, Matplotlib pour le rendu.

📌 FONCTION PRINCIPALE : simulate_lbm()

📌 INITIALISATION : Définition des poids w, des vecteurs v et de l’obstacle.

📌 SOUS-FONCTION : calc_feq() (Calcul de l’équilibre local).

📌 BOUCLE TEMPORELLE :

Streaming (Propagation).

Conditions aux limites (Entrée, Sortie, Obstacle).

Équilibre et Collision (Modèle BGK).

Mise à jour de l’affichage.

🔧 DÉTAIL DES FONCTIONS

Fonction Paramètres Retour Rôle

calc_feq(rho, u) rho (densité), u (vitesse) ndarray Calcule la fonction de distribution d’équilibre de Maxwell-Boltzmann.

simulate_lbm() Aucun None Gère l’intégralité du cycle de vie de la simulation et de l’affichage.

🔄 LOGIQUE / ALGORITHME

Initialisation : Création d’un champ de densité uniforme et d’une vitesse constante.

Streaming : Les particules se déplacent vers les nœuds voisins selon les 9 directions.

Conditions Limites :

Entrée : Vitesse imposée.

Sortie : Flux libre (copie du nœud précédent).

Obstacle : « Bounce-back » (les particules rebondissent sur le cylindre).

Collision : Relaxation des distributions vers l’équilibre (opérateur BGK).

Affichage : Calcul de la norme du vecteur vitesse ux2​+uy2​​ et mise à jour de l’image.

🚨 GESTION DES ERREURS

Instabilité numérique : Si tau est trop proche de 0.5, la simulation peut diverger (division par zéro ou valeurs infinies).

Performance : L’utilisation de np.roll et de boucles Python pour les directions limite la vitesse sur de très grandes grilles.

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : La vitesse d’entrée v_inlet doit rester faible (nombre de Mach < 0.1) pour respecter l'hypothèse d'incompressibilité du modèle LBM. Règle 2 : L'obstacle est défini par un masque booléen circulaire. 🧪 TESTS ATTENDUS # Cas de test Entrée Résultat attendu 1 Lancement standard Paramètres par défaut Apparition de tourbillons après t≈500. 2 Fluide visqueux tau = 1.0 Écoulement laminaire sans tourbillons. 3 Grille réduite Nx=100, Ny=50 Simulation plus rapide mais moins résolue. 📝 EXEMPLE D'UTILISATION ▶️ Lancement Bash python script_309cvmn_309.py 📋 Sortie console/graphique attendue Plaintext [Fenêtre graphique s'ouvre] Simulation LBM : Allée de Von Kármán (Itération t=0) ... Simulation LBM : Allée de Von Kármán (Itération t=4000)

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “script_309cvmn_309.py”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *