Changeset 3129 in Sophya for trunk/Cosmo/SimLSS
- Timestamp:
- Jan 11, 2007, 7:24:49 PM (19 years ago)
- Location:
- trunk/Cosmo/SimLSS
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/cmvobserv3d.cc
r3120 r3129 42 42 //----------------------------------------------------------------- 43 43 // *** Survey definition 44 intnx=360, ny=-1, nz=64; double dx=1., dy=-1., dz=-1.;45 // intnx=1000, ny=-1, nz=128; double dx=3., dy=-1., dz=6.;46 // intnx=1200, ny=-1, nz=128; double dx=1., dy=-1., dz=3;44 long nx=360, ny=-1, nz=64; double dx=1., dy=-1., dz=-1.; 45 //long nx=1000, ny=-1, nz=128; double dx=3., dy=-1., dz=6.; 46 //long nx=1200, ny=-1, nz=128; double dx=1., dy=-1., dz=3; 47 47 48 48 // *** Cosmography definition (WMAP) … … 90 90 break; 91 91 case 'x' : 92 sscanf(optarg,"% d,%lf",&nx,&dx);92 sscanf(optarg,"%ld,%lf",&nx,&dx); 93 93 break; 94 94 case 'y' : 95 sscanf(optarg,"% d,%lf",&ny,&dy);95 sscanf(optarg,"%ld,%lf",&ny,&dy); 96 96 break; 97 97 case 'z' : 98 sscanf(optarg,"% d,%lf",&nz,&dz);98 sscanf(optarg,"%ld,%lf",&nz,&dz); 99 99 break; 100 100 case 's' : … … 230 230 231 231 cout<<"\n--- Checking realization spectra"<<endl; 232 int nhprof = int(fluct3d.GetKmax()/dkmin+0.5);232 long nhprof = long(fluct3d.GetKmax()/dkmin+0.5); 233 233 HProf hpkgen(0.,fluct3d.GetKmax(),nhprof); 234 234 hpkgen.ReCenterBin(); … … 307 307 308 308 cout<<"\n--- Convert Galaxies number to HI mass"<<endl; 309 int nhmdndm = int( (lschmax-lschmin+1.)*100. + 0.5);309 long nhmdndm = long( (lschmax-lschmin+1.)*100. + 0.5); 310 310 Histo hmdndm(lschmin,lschmax,nhmdndm); 311 311 sch.SetOutValue(1); -
trunk/Cosmo/SimLSS/genefluct3d.cc
r3120 r3129 42 42 43 43 //------------------------------------------------------- 44 void GeneFluct3D::SetSize( int nx,int ny,intnz,double dx,double dy,double dz)44 void GeneFluct3D::SetSize(long nx,long ny,long nz,double dx,double dy,double dz) 45 45 { 46 46 if(nx<=0 || dx<=0. ) { … … 126 126 // On tient compte du pb de normalisation de FFTW3 127 127 double sntot = sqrt((double)NRtot_); 128 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {128 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 129 129 size_t ip = l+NTz_*(j+Ny_*i); 130 130 data[ip] = NorRand()/sntot; … … 140 140 if(lp>1) PrtTim("--- ComputeFourier0: before Fourier realization filling ---"); 141 141 T_(0,0,0) = complex<r_8>(0.); // on coupe le continue et on l'initialise 142 intlmod = Nx_/10; if(lmod<1) lmod=1;143 for( inti=0;i<Nx_;i++) {144 intii = (i>Nx_/2) ? Nx_-i : i;142 long lmod = Nx_/10; if(lmod<1) lmod=1; 143 for(long i=0;i<Nx_;i++) { 144 long ii = (i>Nx_/2) ? Nx_-i : i; 145 145 double kx = ii*Dkx_; kx *= kx; 146 146 if(lp>1 && i%lmod==0) cout<<"i="<<i<<" ii="<<ii<<endl; 147 for( intj=0;j<Ny_;j++) {148 intjj = (j>Ny_/2) ? Ny_-j : j;147 for(long j=0;j<Ny_;j++) { 148 long jj = (j>Ny_/2) ? Ny_-j : j; 149 149 double ky = jj*Dky_; ky *= ky; 150 for( intl=0;l<NCz_;l++) {150 for(long l=0;l<NCz_;l++) { 151 151 double kz = l*Dkz_; kz *= kz; 152 152 if(i==0 && j==0 && l==0) continue; // Suppression du continu … … 209 209 // --- On remplit avec une realisation 210 210 if(lp>1) PrtTim("--- ComputeFourier: before Fourier realization filling ---"); 211 intlmod = Nx_/10; if(lmod<1) lmod=1;212 for( inti=0;i<Nx_;i++) {213 intii = (i>Nx_/2) ? Nx_-i : i;211 long lmod = Nx_/10; if(lmod<1) lmod=1; 212 for(long i=0;i<Nx_;i++) { 213 long ii = (i>Nx_/2) ? Nx_-i : i; 214 214 double kx = ii*Dkx_; kx *= kx; 215 215 if(lp>1 && i%lmod==0) cout<<"i="<<i<<" ii="<<ii<<endl; 216 for( intj=0;j<Ny_;j++) {217 intjj = (j>Ny_/2) ? Ny_-j : j;216 for(long j=0;j<Ny_;j++) { 217 long jj = (j>Ny_/2) ? Ny_-j : j; 218 218 double ky = jj*Dky_; ky *= ky; 219 for( intl=0;l<NCz_;l++) {219 for(long l=0;l<NCz_;l++) { 220 220 double kz = l*Dkz_; kz *= kz; 221 221 if(i==0 && j==0 && l==0) continue; // Suppression du continu … … 242 242 } 243 243 244 intGeneFluct3D::manage_coefficients(void)244 long GeneFluct3D::manage_coefficients(void) 245 245 // Take into account the real and complexe conjugate coefficients 246 246 // because we want a realization of a real data in real space … … 249 249 250 250 // 1./ Le Continu et Nyquist sont reels 251 intnreal = 0;252 for( intkk=0;kk<2;kk++) {253 intk=0; // continu251 long nreal = 0; 252 for(long kk=0;kk<2;kk++) { 253 long k=0; // continu 254 254 if(kk==1) {if(Nz_%2!=0) continue; else k = Nz_/2;} // Nyquist 255 for( intjj=0;jj<2;jj++) {256 intj=0;255 for(long jj=0;jj<2;jj++) { 256 long j=0; 257 257 if(jj==1) {if( Ny_%2!=0) continue; else j = Ny_/2;} 258 for( intii=0;ii<2;ii++) {259 inti=0;258 for(long ii=0;ii<2;ii++) { 259 long i=0; 260 260 if(ii==1) {if( Nx_%2!=0) continue; else i = Nx_/2;} 261 261 size_t ip = k+NCz_*(j+Ny_*i); … … 271 271 272 272 // a./ les lignes et colonnes du continu et de nyquist 273 intnconj1 = 0;274 for( intkk=0;kk<2;kk++) {275 intk=0; // continu273 long nconj1 = 0; 274 for(long kk=0;kk<2;kk++) { 275 long k=0; // continu 276 276 if(kk==1) {if(Nz_%2!=0) continue; else k = Nz_/2;} // Nyquist 277 for( intjj=0;jj<2;jj++) { // selon j278 intj=0;277 for(long jj=0;jj<2;jj++) { // selon j 278 long j=0; 279 279 if(jj==1) {if( Ny_%2!=0) continue; else j = Ny_/2;} 280 for( inti=1;i<(Nx_+1)/2;i++) {280 for(long i=1;i<(Nx_+1)/2;i++) { 281 281 size_t ip = k+NCz_*(j+Ny_*i); 282 282 size_t ip1 = k+NCz_*(j+Ny_*(Nx_-i)); … … 285 285 } 286 286 } 287 for( intii=0;ii<2;ii++) {288 inti=0;287 for(long ii=0;ii<2;ii++) { 288 long i=0; 289 289 if(ii==1) {if( Nx_%2!=0) continue; else i = Nx_/2;} 290 for( intj=1;j<(Ny_+1)/2;j++) {290 for(long j=1;j<(Ny_+1)/2;j++) { 291 291 size_t ip = k+NCz_*(j+Ny_*i); 292 292 size_t ip1 = k+NCz_*((Ny_-j)+Ny_*i); … … 299 299 300 300 // b./ les lignes et colonnes hors continu et de nyquist 301 intnconj2 = 0;302 for( intkk=0;kk<2;kk++) {303 intk=0; // continu301 long nconj2 = 0; 302 for(long kk=0;kk<2;kk++) { 303 long k=0; // continu 304 304 if(kk==1) {if(Nz_%2!=0) continue; else k = Nz_/2;} // Nyquist 305 for( intj=1;j<(Ny_+1)/2;j++) {305 for(long j=1;j<(Ny_+1)/2;j++) { 306 306 if(Ny_%2==0 && j==Ny_/2) continue; // on ne retraite pas nyquist en j 307 for( inti=1;i<Nx_;i++) {307 for(long i=1;i<Nx_;i++) { 308 308 if(Nx_%2==0 && i==Nx_/2) continue; // on ne retraite pas nyquist en i 309 309 size_t ip = k+NCz_*(j+Ny_*i); … … 325 325 { 326 326 double s2 = 0.; 327 for( intl=0;l<NCz_;l++)328 for( intj=0;j<Ny_;j++)329 for( inti=0;i<Nx_;i++) s2 += MODULE2(T_(l,j,i));327 for(long l=0;l<NCz_;l++) 328 for(long j=0;j<Ny_;j++) 329 for(long i=0;i<Nx_;i++) s2 += MODULE2(T_(l,j,i)); 330 330 331 331 double s20 = 0.; 332 for( intj=0;j<Ny_;j++)333 for( inti=0;i<Nx_;i++) s20 += MODULE2(T_(0,j,i));332 for(long j=0;j<Ny_;j++) 333 for(long i=0;i<Nx_;i++) s20 += MODULE2(T_(0,j,i)); 334 334 335 335 double s2n = 0.; 336 336 if(Nz_%2==0) 337 for( intj=0;j<Ny_;j++)338 for( inti=0;i<Nx_;i++) s2n += MODULE2(T_(NCz_-1,j,i));337 for(long j=0;j<Ny_;j++) 338 for(long i=0;i<Nx_;i++) s2n += MODULE2(T_(NCz_-1,j,i)); 339 339 340 340 return 2.*s2 -s20 -s2n; … … 353 353 if(lp>1) PrtTim("--- FilterByPixel: before ---"); 354 354 355 for( inti=0;i<Nx_;i++) {356 intii = (i>Nx_/2) ? Nx_-i : i;355 for(long i=0;i<Nx_;i++) { 356 long ii = (i>Nx_/2) ? Nx_-i : i; 357 357 double kx = ii*Dkx_ *Dx_/2; 358 358 double pkx = pixelfilter(kx); 359 for( intj=0;j<Ny_;j++) {360 intjj = (j>Ny_/2) ? Ny_-j : j;359 for(long j=0;j<Ny_;j++) { 360 long jj = (j>Ny_/2) ? Ny_-j : j; 361 361 double ky = jj*Dky_ *Dy_/2; 362 362 double pky = pixelfilter(ky); 363 for( intl=0;l<NCz_;l++) {363 for(long l=0;l<NCz_;l++) { 364 364 double kz = l*Dkz_ *Dz_/2; 365 365 double pkz = pixelfilter(kz); … … 401 401 // On corrige du pb de la normalisation de FFTW3 402 402 double v = (double)NRtot_; 403 for( inti=0;i<Nx_;i++)404 for( intj=0;j<Ny_;j++)405 for( intl=0;l<NCz_;l++) T_(l,j,i) /= complex<r_8>(v);403 for(long i=0;i<Nx_;i++) 404 for(long j=0;j<Ny_;j++) 405 for(long l=0;l<NCz_;l++) T_(l,j,i) /= complex<r_8>(v); 406 406 407 407 Tcontent_ = 3; … … 421 421 422 422 // Attention a l'ordre 423 for( inti=0;i<Nx_;i++) {424 intii = (i>Nx_/2) ? Nx_-i : i;423 for(long i=0;i<Nx_;i++) { 424 long ii = (i>Nx_/2) ? Nx_-i : i; 425 425 double kx = ii*Dkx_; kx *= kx; 426 for( intj=0;j<Ny_;j++) {427 intjj = (j>Ny_/2) ? Ny_-j : j;426 for(long j=0;j<Ny_;j++) { 427 long jj = (j>Ny_/2) ? Ny_-j : j; 428 428 double ky = jj*Dky_; ky *= ky; 429 for( intl=0;l<NCz_;l++) {429 for(long l=0;l<NCz_;l++) { 430 430 double kz = l*Dkz_; kz *= kz; 431 431 double k = sqrt(kx+ky+kz); … … 452 452 453 453 double *data = (double *) (&T_(0,0,0)); 454 int dnx = int(R/Dx_+0.5); if(dnx<=0) dnx = 1;455 int dny = int(R/Dy_+0.5); if(dny<=0) dny = 1;456 int dnz = int(R/Dz_+0.5); if(dnz<=0) dnz = 1;454 long dnx = long(R/Dx_+0.5); if(dnx<=0) dnx = 1; 455 long dny = long(R/Dy_+0.5); if(dny<=0) dny = 1; 456 long dnz = long(R/Dz_+0.5); if(dnz<=0) dnz = 1; 457 457 cout<<"dnx="<<dnx<<" dny="<<dny<<" dnz="<<dnz<<endl; 458 458 459 459 double sum=0., sum2=0., r2 = R*R; size_t nsum=0; 460 460 461 for( inti=dnx;i<Nx_-dnx;i+=dnx) {462 for( intj=dny;j<Ny_-dny;j+=dny) {463 for( intl=dnz;l<Nz_-dnz;l+=dnz) {461 for(long i=dnx;i<Nx_-dnx;i+=dnx) { 462 for(long j=dny;j<Ny_-dny;j+=dny) { 463 for(long l=dnz;l<Nz_-dnz;l+=dnz) { 464 464 double s=0.; size_t n=0; 465 for( intii=i-dnx;ii<=i+dnx;ii++) {465 for(long ii=i-dnx;ii<=i+dnx;ii++) { 466 466 double x = (ii-i)*Dx_; x *= x; 467 for( intjj=j-dny;jj<=j+dny;jj++) {467 for(long jj=j-dny;jj<=j+dny;jj++) { 468 468 double y = (jj-j)*Dy_; y *= y; 469 for( intll=l-dnz;ll<=l+dnz;ll++) {469 for(long ll=l-dnz;ll<=l+dnz;ll++) { 470 470 double z = (ll-l)*Dz_; z *= z; 471 471 if(x+y+z>r2) continue; … … 503 503 504 504 size_t nbad = 0; 505 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {505 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 506 506 size_t ip = l+NTz_*(j+Ny_*i); 507 507 double v = data[ip]; … … 521 521 rm = rs2 = 0.; 522 522 523 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {523 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 524 524 size_t ip = l+NTz_*(j+Ny_*i); 525 525 double v = data[ip]; … … 545 545 546 546 size_t nbad = 0; 547 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {547 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 548 548 size_t ip = l+NTz_*(j+Ny_*i); 549 549 double v = data[ip]; … … 562 562 double *data = (double *) (&T_(0,0,0)); 563 563 564 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {564 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 565 565 size_t ip = l+NTz_*(j+Ny_*i); 566 566 data[ip] += 1.; … … 595 595 <<n_by_mpc3*Vol_/double(NRtot_)<<" to "<<dn<<" / pixel"<<endl; 596 596 double sum = 0.; 597 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {597 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 598 598 size_t ip = l+NTz_*(j+Ny_*i); 599 599 data[ip] *= dn; // par coherence on multiplie aussi les <=0 … … 616 616 617 617 double sum = 0.; 618 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {618 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 619 619 size_t ip = l+NTz_*(j+Ny_*i); 620 620 double v = data[ip]; … … 646 646 647 647 double sum = 0.; 648 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {648 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 649 649 size_t ip = l+NTz_*(j+Ny_*i); 650 650 double v = data[ip]; 651 651 if(v>0.) { 652 int ngal = int(v+0.1);652 long ngal = long(v+0.1); 653 653 data[ip] = 0.; 654 for( inti=0;i<ngal;i++) {654 for(long i=0;i<ngal;i++) { 655 655 double m = massdist.RandomInterp(); // massdist.Random(); 656 656 if(axeslog) m = pow(10.,m); … … 675 675 double *data = (double *) (&T_(0,0,0)); 676 676 677 for( int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(intl=0;l<Nz_;l++) {677 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 678 678 size_t ip = l+NTz_*(j+Ny_*i); 679 679 data[ip] += snoise*NorRand(); -
trunk/Cosmo/SimLSS/genefluct3d.h
r3120 r3129 23 23 24 24 void SetNThread(unsigned short nthread=0) {nthread_ = nthread;} 25 void SetSize( int nx,int ny,intnz,double dx,double dy,double dz); // Mpc25 void SetSize(long nx,long ny,long nz,double dx,double dy,double dz); // Mpc 26 26 27 27 inline void SetZ(double z) {pkz_.SetZ(z);} … … 62 62 63 63 protected: 64 intmanage_coefficients(void);64 long manage_coefficients(void); 65 65 double compute_power_carte(void); 66 66 inline double pixelfilter(double x) … … 68 68 69 69 70 int Nx_,Ny_,Nz_,SzK_[3]; 71 int NCz_,NTz_; 70 long Nx_,Ny_,Nz_; 71 sa_size_t SzK_[3]; 72 long NCz_,NTz_; 72 73 size_t NRtot_; 73 74 double Dx_,Dy_,Dz_;
Note:
See TracChangeset
for help on using the changeset viewer.