- Afficher l'évolution de la température dans un barreau en faisant varier ses différents paramètres
- Complexifier le programme en étudiant un double vitrage puis en offrant la possibilité à l'utilisateur de choisir la forme du matériau
- Coordonner les 3 fenêtres de simulation via une interface de bienvenue
- But pédagogique (classe, professeurs, élèves) : Introduction aux transferts thermiques et compréhension du concept grâce à une simulation visuelle
- Usage personnel : Montre l'efficacité des matériaux les uns par rapport aux autres (exemple du duble vitrage)
- Simuler les variations de température pour un barreau métallique de forme rectangulaire
- Montrer l'efficacité du double vitrage
- Réaliser une simulation physique du phénomène de conduction thermique en deux dimensions pour n'importe quelles formes
- Adapter les intervalles infinitésimaux pour assurer la convergence de la simulation
- main.py : lance le programme
- constants.py : contient les constantes du programme
- app.py : contient la classe App qui gère l'ensemble du programme
- material_table.py : créer les matériaux par défault (permet donc de changer leurs propriétés)
- Universe : l'interface interagit pour lancer la simulation, changer les paramètres…,
- SpaceInitializer : possède une instance dans Universe qui permet la gestion de l'état initial avant la simulation (paramètre des matériaux, disposition des matériaux, des sources de chaleurs)
- Line : classe simple pour représenter une ligne
- material.py : contient un dictionnaire de tous les matériaux ainsi que l'objet Material, ils sont instanciés depuis material_table.py
- InitialSpace : est une sous classe d'un tableau numpy, peut être représenté par une matrice (taille width, height) de vecteur de taille 2 contenant un entier correspondant à l'identifiant du matériau et la température initiale
- CoefficientSpace.py : qui est une sous classe d'un tableau numpy, peut être représenté par une matrice de taille (width, height) contenant les coefficients de conduction thermique pour chaque emplacement. Cela demande donc plus de temps à initialisation (pour remplir le tableau) mais permet de gagner beaucoup de temps lors des calculs.
- GlobalSpace.py : est une sous classe d'un tableau numpy, peut être représenté par une liste (de taille time_length) de matrice de taille (width, height) contenant les températures pour chaque emplacement et à chaque instant
- Cursors : implémentation de l'objet curseur (min, max, position) avec pygame
- Buttons : implémentation de l'objet bouton (légende, clic) avec pygame
- Menus : implémentation de l'objet menu (différentes étiquettes, sélection) avec pygame
- Legends : implémentation de l'objet legend (position sur la fenêtre et contenu du texte) avec pygame
Via les différents fichiers display (display_simulation_barreau.py, display_simulation_forme_libre.py, display_simulation_double_vitrage.py), on obtient les fenêtres utilisateurs correspondant aux différentes simulations souhaitées
A l'aide de window.py (et de test.py), on a travaillé à l'affichage de la fenêtre avec pygame
Grâce à start_window.py, on a accès à une fenêtre de bienvenue au début de la simulation qui permet ensuite de choisir le "mode" dans lequel on souhaite effectuer la simulation
Gérer l'affichage des simulations dans la fenêtre de l'interface Réussir la partie tracé libre
Permettre aux codes de fonctionner ensemble