j'essaie de résoudre l'équation de Poisson 3D de manière numérique sur un maillage cartésien. Pour cela, j'utilise la fonction de Green discrétisée et je calcule directement la convolution 3D (avec la fonction "convn" de Matlab) entre cette fonction de Green et la densité de matière.
La solution s'écrit :
En discrétisant, cette équation devient :
avec les périodes d'échantillonnage selon les coordonnées .
Mon problème se situe au niveau de la fonction de Green discrétisée. Son expression est la suivante :
avec la coordonnée sphérique. On pourrait croire que l'unité de la fonction de Green est l'inverse d'une distance = [distance^-1].
Or, la fonction de Green est solution de l'équation :
avec et en considérant que le delta de Dirac a l'unité de l'inverse de distance car :
,
on obtient donc d'après (1) : [G(x)] = [distance^2] * [distance^-1] = [distance]
La fonction de Green aurait donc la dimension d'une distance même si son expression est en
Ma question est donc de savoir appréhender ce paradoxe sur la dimension de cette fonction de Green quand je la discrétise sous Matlab, à savoir, quel facteur utiliser ?
Pour l'instant, dans mon programme, je l'ai calculée en centimètres et centrée en, avec le facteur "kpc"Code:(i,j,k) = (0,0,0)etCode:kpc=3.085678*10^21; %% 1kpc = 3.08 10^21 cmcorrespondant respectivement aux facteurs ci-dessus (exprimés en kiloparsec); le maillage 3D est cartésien et s'étale surCode:space_x, space_y et space_zpoints.Code:[1:Ng][1:Ng][1:Ng]
Je ne sais pas comment résoudre ce paradoxe sur la dimension de la fonction de Green et surtout comment l'implémenter lors de sa discrétisation pour l'exprimer en centimètre avec les facteurs qu'il faut.Code:%% Computing discretized Green's function for i=1:Ng for j=1:Ng for k=1:Ng %% space_x, space_y and space_z : periods corresponding to \delta_{x}, \delta_{y}, \delta_{z} dx = sqrt((i-Ng/2)*(i-Ng/2))*space_x*kpc; dy = sqrt((j-Ng/2)*(j-Ng/2))*space_y*kpc; dz = sqrt((k-Ng/2)*(k-Ng/2))*space_z*kpc; %% Green's function green_grid(i,j,k) = -1.0/(4.0*pi*sqrt(dx*dx + dy*dy + dz*dz)); end end end %% For avoiding divergence at Ng/2 green_grid(Ng/2,Ng/2,Ng/2) = 1.0;
A noter que j'obtiens avec le morceau de code ci-dessus une bonne forme pour mon potentiel mais une différence de l'ordre du facteur "kpc" par rapport à une autre méthode.
Merci pour votre aide.
PS: peut être ce post devrait être classé dans le forum mathématiques.
-----