Skip to content

nicofighter45/2DThermalSimulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

152 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minimum Valuable Product

  • 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

Cas d'usage

  • 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)

Simulation Physique de la Conduction Thermique bidimensionnelle

Jalons

  • 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

Code de l'app

  • 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

Physique

  • material_table.py : créer les matériaux par défault (permet donc de changer leurs propriétés)

Simulation

  • 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)

Structure

  • 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
Spaces
  • 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

Interface

Création des différents objets

  • 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

Implémentation des différentes fenêtres

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

Gestion de l'affichage

A l'aide de window.py (et de test.py), on a travaillé à l'affichage de la fenêtre avec pygame

Coordination

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

Animation

Gérer l'affichage des simulations dans la fenêtre de l'interface Réussir la partie tracé libre

Assemblage code

Permettre aux codes de fonctionner ensemble

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages