Changeset 3120 in Sophya for trunk/Cosmo/SimLSS/genefluct3d.cc
- Timestamp:
- Dec 21, 2006, 4:45:09 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/genefluct3d.cc
r3115 r3120 344 344 void GeneFluct3D::FilterByPixel(void) 345 345 // Filtrage par la fonction fenetre du pixel (parallelepipede) 346 // TF = 1/(dx*dy*dz)*Int[{ 0,dx},{0,dy},{0,dz}]346 // TF = 1/(dx*dy*dz)*Int[{-dx/2,dx/2},{-dy/2,dy/2},{-dz/2,dz/2}] 347 347 // e^(ik_x*x) e^(ik_y*y) e^(ik_z*z) dxdydz 348 // |TF|^2 = 2*(1-cos(k_x*dx)/dx^2/k_x^2 * (idem dy) * (idem dz)349 // et on traite la divergence en K_x = 0:350 // 2*(1-cos(k*d)/d^2/k^2 ~= 1 - (k*d)^2/12 *[1 - (k*d)^2/30]348 // = 2/(k_x*dx) * sin(k_x*dx/2) * (idem y) * (idem z) 349 // Gestion divergence en 0: sin(y)/y = 1 - y^2/6*(1-y^2/20) 350 // avec y = k_x*dx/2 351 351 { 352 352 int lp=2; … … 355 355 for(int i=0;i<Nx_;i++) { 356 356 int ii = (i>Nx_/2) ? Nx_-i : i; 357 double kx = ii*Dkx_ *Dx_ ;358 double pkx 2= pixelfilter(kx);357 double kx = ii*Dkx_ *Dx_/2; 358 double pkx = pixelfilter(kx); 359 359 for(int j=0;j<Ny_;j++) { 360 360 int jj = (j>Ny_/2) ? Ny_-j : j; 361 double ky = jj*Dky_ *Dy_ ;362 double pky 2= pixelfilter(ky);361 double ky = jj*Dky_ *Dy_/2; 362 double pky = pixelfilter(ky); 363 363 for(int l=0;l<NCz_;l++) { 364 double kz = l*Dkz_ *Dz_ ;365 double pkz 2 = pixelfilter(kz);366 T_(l,j,i) *= pkx 2*pky2*pkz2;364 double kz = l*Dkz_ *Dz_/2; 365 double pkz = pixelfilter(kz); 366 T_(l,j,i) *= pkx*pky*pkz; 367 367 } 368 368 }
Note:
See TracChangeset
for help on using the changeset viewer.