Bonjour,

Je travaille actuellement sur la résolution de l'équation de diffusion de la chaleur en 3D en Python.

Je résous cette équation de diffusion en utilisant le produit de convolution de la fonction de Green de ce problème convolué avec une fonction source, tout ceci dans le domaine de Fourier, ce qui devient une multiplication :

G * S ---> TF --- > G x S

Parce que j'utilise la transformée de Fourier, j'ai des conditions aux limites périodiques, ce qui implique des sources images tout autour de ma zone d’intérêt.

En d'autres mots, à un certain moment, la chaleur ne sort plus de ma zone de simulation, mais "rebondit" sur les bords et revient au centre, ce qui implique de ne pas avoir une température de 0 partout à un temps infini, mais une valeur moyenne correspondant à toute la chaleur produite durant la simulation, moyennée sur toute le volume.

Pour contrebalancer ceci, J'ai jusqu'à maintenant utilisé des zones de simulations de plus en plus grandes, afin de retarder l'arrivée de la chaleur aux limites et ainsi retarder l'arrivée du "rebond" de chaleur vers le centre. Bien évidemment, ce n'est pas une solution viable à long terme, et je pense qu'il est temps que j'améliore cet état.

Et j'imagine que la prochaine étape, c'est d'implémenter ces conditions 0 aux limites périodiques de telle façon qu'aucune chaleur ne sort des limites, et donc qu'aucune chaleur ne revient.

Bien évidemment, multiplier mes résultats par une fonction porte sur tout les contours de ma zone ne fonctionne pas, car cela ne change rien à l'équation de diffusion, cela maquille juste les résultats.

Avez vous déjà réussi à faire cela ? Et si oui, comment avez vous codé ces conditions ?

Merci beaucoup !