Rsolution de l'quation de la chaleur--------------------------------------
Url     : http://codes-sources.commentcamarche.net/source/48465-resolution-de-l-equation-de-la-chaleurAuteur  : Arnal88Date    : 01/08/2013
Licence :
=========

Ce document intitul  Rsolution de l'quation de la chaleur  issu de CommentCaMarche
(codes-sources.commentcamarche.net) est mis  disposition sous les termes de
la licence Creative Commons. Vous pouvez copier, modifier des copies de cette
source, dans les conditions fixes par la licence, tant que cette note
apparat clairement.

Description :
=============

C'est un programme pour r&eacute;soudre l'&eacute;quation de la chaleur en 2D av
ec la m&eacute;thode des diff&eacute;rences finies.
<br />On discr&eacute;tise 
le temps et l'espace pour utiliser une r&eacute;solution num&eacute;rique.
<br 
/>
<br />Comment utiliser le programme ?
<br />Ouvrir Paint et cr&eacute;er un
e image de 50 pixels par 50 pixels
<br />
<br />Placer les conditions aux limi
tes de mani&egrave;re graphique.
<br />Voici le code de couleurs :
<br />- Nua
nce de rouge = temp&eacute;rature allant de Tmin &agrave; Tmax
<br />par exempl
e, Tmin=0&deg;C et Tmax=100&deg;C
<br />donc le NOIR correspond &agrave; 0&deg;
C, le ROUGE &agrave; 100&deg;C et la couleur personnalis&eacute;e R=128 V=0 B=0 
&agrave; 50&deg;C
<br />- Jaune = temp&eacute;rature fix&eacute;e, mais qui cha
nge au cours du temps
<br />- Bleu pur = adiabatique (c'est &agrave; dire parfa
itement isolant)
<br />- Blanc = pas de condition aux limites. La chaleur se pr
opage.
<br />
<br />Enregistrer l'image au format bmp
<br />
<br />Cr&eacute
;er une image de m&ecirc;me taille contenant les conditions initiales, avec des 
nuances de rouge (idem ci dessus..)
<br />Enregistrer l'image.
<br />
<br />D
ans le programme, charger les conditions initiales et les conditions aux limites
.
<br />D&eacute;finir les param&egrave;tres physiques : pas spatial = largeur 
d'un pixel (en m&egrave;tres), pas temporel = temps entre 2 it&eacute;rations (e
n secondes) et K = diffusivit&eacute; (d&eacute;pend du mat&eacute;riau)
<br />
Modifier au besoin les valeurs de Tmin et Tmax (qui correspondent au noir et au 
rouge dans les fichiers bmp)
<br />Lancer le calcul
<br />
<br />Si c'est pas
 clair, il y a 3 exemples :
<br />
<br />1er exemple : 
<br />Plaque rectangu
laire dont la p&eacute;riph&eacute;rie est maintenue &agrave; 0&deg;C et le cent
re est constamment chauff&eacute; &agrave; 100&deg;C. La temp&eacute;rature init
iale est 0&deg;C partout.
<br />Lancez la simulation. On voit la chaleur se pro
pager du centre vers l'ext&eacute;rieur.
<br />
<br />2&egrave;me exemple :
<
br />Plaque rectangulaire, dont les bords sont isol&eacute;s.
<br />Au d&eacute
;but, une partie est chaude et l'autre est froide. La temp&eacute;rature de la p
laque va s'uniformiser, mais aucune &eacute;nergie n'est &eacute;chang&eacute;e 
avec l'ext&eacute;rieur.
<br />
<br />3&egrave;me exemple :
<br />Une plaque 
rectangulaire, les bords sont isol&eacute;s, mais le bord gauche a une temp&eacu
te;rature impos&eacute;e qui varie dans le temps. Cela permet de simuler l'&quot
;effet de cave&quot;, c'est &agrave; dire la propagation de la chaleur dans le s
ol au cours des saisons. C'est une onde &eacute;vanescente. A une certaine profo
ndeur, on est en opposition de phase par rapport &agrave; la temp&eacute;rature 
du sol...
<br />
<br />Vous pouvez afficher les courbes des r&eacute;sultats, 
j'utilise l'excellent composant ZedGraph.
<br />On peut visualiser la temp&eacu
te;rature d'un point donn&eacute; en fonction du temps, ou une coupe &agrave; un
 instant donn&eacute;.
<br />On peut &eacute;galement animer l'affichage, pour 
voir l'&eacute;volution des temp&eacute;ratures de cette coupe.
<br />Bref, ess
ayez....
<br />
<br />EDIT :
<br />J'ai ajout&eacute; un assistant pour g&eac
ute;n&eacute;rer les bitmaps. La temp&eacute;rature initiale est n&eacute;cessai
rement uniforme et les conditions aux limites sont obligatoirement sur les bords
, mais c'est plus rapide et plus facile quand on veut tester le programme.
<br 
/>
<br />Attention : ne cr&eacute;ez pas des images trop grosses (100 pixels ma
x) et ne calculez pas trop d'it&eacute;rations (5000 pas maxi) sinon vous risque
z de saturer la RAM : toutes les it&eacute;rations interm&eacute;diaires sont co
nserv&eacute;es en m&eacute;moire !
<br /><a name='conclusion'></a><h2> Conclus
ion : </h2>

<br />Le programme est maintenant achev&eacute;. Il est enti&egrav
e;rement bas&eacute; sur la classe SimulationDiffusionThermique2D. C'est cette c
lasse qui permet de r&eacute;soudre l'&eacute;quation de la chaleur.
<br />
<b
r />Le PDF joint explique le principe de la m&eacute;thode des diff&eacute;rence
s finies, et contient toutes les indications pour utiliser la classe dans un aut
re programme. Il fournit &eacute;galement des exemples.

<ul>   <li><ul>   <li
><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><u
l>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul> 
  <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <
li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li>
<ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul
>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>  
 <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <l
i><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><
ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>   <li><ul>
   <li></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></l
i></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></l
i></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></l
i></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></l
i></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></l
i></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></l
i></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></l
i></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></l
i></ul></li></ul></li></ul></li></ul></li></ul>
<br />
<br />Ce programme mont
re comment utiliser des classes pour faire un programme bien d&eacute;coup&eacut
e;.
<br />J'ai cr&eacute;&eacute; la classe SimulationDiffusionThermique enti&e
grave;rement autonome, et permet l'encapsulation compl&egrave;te des m&eacute;th
odes de r&eacute;solution. Le reste du programme ne fait qu'utiliser cette class
e, sans se soucier du code qu'elle contient et de son fonctionnement.
<br />Le 
programme est ainsi bien plus facile &agrave; faire &eacute;voluer.
