🔷 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.