script_306cvmn_306.py

49,00 

Simuler et animer graphiquement la diffusion de la chaleur sur une plaque 2D à l’aide de l’équation de la chaleur.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_306cvmn_306.py

Version 1.0.0

Date de création 09/03/2026

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

Objectif principal Simuler et animer graphiquement la diffusion de la chaleur sur une plaque 2D à l’aide de l’équation de la chaleur.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Le script modélise la propagation thermique sur une surface carrée. Il initialise une zone de haute température au centre, puis calcule l’évolution de la chaleur au fil du temps en utilisant une approche matricielle (Laplacien) avant d’afficher une animation fluide en temps réel.

📌 Problème résolu

Il permet de visualiser physiquement comment la chaleur se dissipe d’un corps chaud vers un milieu plus froid, en respectant les conditions aux limites (les bords de la plaque restent à température ambiante).

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows, Linux, MacOS)

Mode d’exécution Interface graphique (Matplotlib)

📦 Dépendances / Librairies

# Librairies externes (pip install)

numpy (Calcul matriciel performant)

matplotlib (Visualisation et animation)

📥 ENTRÉES (INPUTS)

⚙️ Paramètres de classe (__init__)

# Nom Type Obligatoire Description Exemple

1 size int ❌ Non Taille de la grille (N×N) 100

2 alpha float ❌ Non Coefficient de diffusion thermique 0.5

📤 SORTIES (OUTPUTS)

📂 Fichiers / Données en sortie

Type Format Description

Graphique Animation Fenêtre interactive affichant la carte de chaleur animée

🧱 STRUCTURE DU SCRIPT

script_306cvmn_306.py

├── 📌 IMPORTS (numpy, matplotlib)

├── 📌 CLASSE HeatSimulation

│ ├── __init__ → Initialise la grille et la source de chaleur

│ ├── update() → Calcule le prochain état thermique (Laplacien)

│ └── run() → Configure et lance l’animation Matplotlib

└── 📌 MAIN (Point d’entrée pour lancer la simulation)

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

update(frame, img, ax) frame, img, ax tuple Calcule la nouvelle matrice via diffusion 2D

run() Aucun None Génère la figure et lance FuncAnimation

🔄 LOGIQUE / ALGORITHME

Initialisation : Création d’une matrice N×N à 20°C. Une zone centrale est forcée à 1000°C.

Calcul du Laplacien : Pour chaque point, on calcule la différence de température avec les voisins (Haut, Bas, Gauche, Droite) via np.roll.

Diffusion : Mise à jour de la température : unew​=u+α⋅Δu⋅dt.

Contrainte : Réinitialisation forcée des bords à 20°C (Conditions de Dirichlet).

Rendu : Mise à jour de l’image imshow pour l’animation.

🚨 GESTION DES ERREURS

Volumétrie : Si size est trop élevé (> 500), l’animation peut saccader selon la puissance du processeur.

Stabilité : Si α ou dt sont trop grands, la simulation peut diverger (instabilité numérique).

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : La température minimale est fixée à 20°C pour la visualisation.

Règle 2 : Utilisation de la vectorisation NumPy (pas de boucles for sur les pixels) pour garantir la performance.

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu Statut

1 Cas nominal size=100, alpha=2.0 Animation fluide, chaleur qui s’étend ⬜ À tester

2 Diffusion nulle alpha=0 La chaleur reste statique au centre ⬜ À tester

📊 PERFORMANCES ATTENDUES

Temps d’exécution : Presque instantané pour le calcul d’une frame (< 10ms). Consommation mémoire : Très faible (~50-100 Mo pour une grille de 100x100). 📝 EXEMPLE D'UTILISATION ▶️ Lancement standard Bash python script_306cvmn_306.py 💻 Intégration comme module Python from script_306cvmn_306 import HeatSimulation sim = HeatSimulation(size=50, alpha=1.5) sim.run()

Avis

Il n’y a pas encore d’avis.

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

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