Changeset 4028 in Sophya for trunk/Cosmo
- Timestamp:
- Oct 18, 2011, 10:56:28 AM (14 years ago)
- Location:
- trunk/Cosmo/RadioBeam
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/RadioBeam/pknoise.cc
r4027 r4028 90 90 double H_z=120.5; // Hubble_param(z) 91 91 int box3dsz[3]={512,512,256}; 92 double cellsz[3]={3.,3., 1.5};92 double cellsz[3]={3.,3.,3.}; 93 93 int NBINPK=256; 94 94 int prtlev=0; … … 159 159 redshift2da.ReadXYFromFile(interpfilename); 160 160 SLinInterp1D redshift2hz; 161 interpfilename="redshift_ hz.txt";161 interpfilename="redshift_Hz.txt"; 162 162 redshift2hz.ReadXYFromFile(interpfilename); 163 163 comov_dA_z=redshift2da(z_Redshift); … … 211 211 Vector angscales(box3dsz[2]); 212 212 angscales=angscale; 213 if (NMAX<0) { box3dsz[0]=256; box3dsz[1]=256; box3dsz[ 3]=128; }213 if (NMAX<0) { box3dsz[0]=256; box3dsz[1]=256; box3dsz[2]=128; } 214 214 else { 215 215 angscale=comov_dA_z; … … 225 225 << box3dsz[2] << ")" << endl; 226 226 Four3DPk m3d(rg,box3dsz[0]/2,box3dsz[1],box3dsz[2]); 227 cout << " pknoise[2.d]: m3d.SetCellSize(" << dkxmpc << "," << dkympc << "," << dkzmpc << endl; 227 cout << " pknoise[2.d]: m3d.SetCellSize(" << dkxmpc << "," << dkympc << "," << dkzmpc 228 << ") cell size (Mpc) : " << cellsz[0] << "x" << cellsz[1] << "x" << cellsz[2] << endl; 228 229 m3d.SetCellSize(dkxmpc, dkympc, dkzmpc); 229 230 m3d.SetPrtLevel(prtlev,prtmod); -
trunk/Cosmo/RadioBeam/plpkn.pic
r3975 r4028 8 8 delobjs * 9 9 # openppf ../../PkNoise/cmvhpkz.ppf 10 # openppf ../pkz0p25.ppf11 openppf ../pkz0p7.ppf10 # openppf pkz0p25.ppf 11 openppf pkz0p7.ppf 12 12 rename hpkz hpkz0p7 13 openppf ../pkz1p0.ppf13 openppf pkz1p0.ppf 14 14 rename hpkz hpkz1p0 15 15 -
trunk/Cosmo/RadioBeam/specpk.cc
r4027 r4028 213 213 // typically = ComovRadialDistance 214 214 { 215 uint_8 nmodeok=0; 215 216 if (angscales.Size() != fourAmp.SizeZ()) 216 217 throw SzMismatchError("ComputeNoiseFourierAmp(): angscales.Size()!=fourAmp.SizeZ()"); … … 231 232 kxx=(double)kx*dkx_; 232 233 rep = resp(kxx*angsc, kyy*angsc); 233 if (rep<1.e-19) fourAmp(kx, ky, kz) = complex<TF>(9.e19,0.); 234 else { 235 amp = 1./sqrt(rep)/sqrt(2.); 236 fourAmp(kx, ky, kz) = complex<TF>(rg_.Gaussian(amp), rg_.Gaussian(amp)); 237 } 238 } 239 } 240 } 241 242 if (prtlev_>1) 243 cout << " Four3DPk::ComputeNoiseFourierAmp(...) Computing FFT along frequency ..." << endl; 234 if (rep<1.e-19) rep=1.e-19; 235 else nmodeok++; 236 amp = 1./sqrt(rep)/sqrt(2.); 237 fourAmp(kx, ky, kz) = complex<TF>(rg_.Gaussian(amp), rg_.Gaussian(amp)); 238 } 239 } 240 } 241 242 if (prtlev_>1) { 243 cout << " Four3DPk::ComputeNoiseFourierAmp(...) Computing FFT along frequency ... \n" 244 << " NModeOK=" << nmodeok << " / NMode=" << fourAmp.Size() 245 << " -> " << 100.*(double)nmodeok/(double)fourAmp.Size() << "%" << endl; 246 } 244 247 TVector< complex<TF> > veczin(fourAmp.SizeZ()), veczout(fourAmp.SizeZ()); 245 248 FFTWServer ffts(true); … … 257 260 } 258 261 259 if (prtlev_>2) fourAmp.Show();262 // if (prtlev_>2) fourAmp.Show(); 260 263 if (prtlev_>0) 261 264 cout << " Four3DPk::ComputeNoiseFourierAmp(Four2DResponse& resp, double f0, double df) done ..." << endl; … … 315 318 // sa_size_t is large integer type 316 319 // We ignore 0th term in all frequency directions ... 317 for(sa_size_t kz= 1; kz<fourAmp.SizeZ(); kz++) {320 for(sa_size_t kz=0; kz<fourAmp.SizeZ(); kz++) { 318 321 kzz = (kz > fourAmp.SizeZ()/2) ? (double)(fourAmp.SizeZ()-kz)*dkz_ : (double)kz*dkz_; 319 for(sa_size_t ky= 1; ky<fourAmp.SizeY(); ky++) {322 for(sa_size_t ky=0; ky<fourAmp.SizeY(); ky++) { 320 323 kyy = (ky > fourAmp.SizeY()/2) ? (double)(fourAmp.SizeY()-ky)*dky_ : (double)ky*dky_; 321 for(sa_size_t kx= 1; kx<fourAmp.SizeX(); kx++) { // ignore the 0th coefficient (constant term)322 doublekxx=(double)kx*dkx_;324 for(sa_size_t kx=0; kx<fourAmp.SizeX(); kx++) { // ignore the 0th coefficient (constant term) 325 kxx=(double)kx*dkx_; 323 326 complex<TF> za = fourAmp(kx, ky, kz); 324 327 // if (za.real()>8.e19) continue; … … 354 357 // as a function of wave-number k = sqrt((double)(kx*kx+ky*ky)) 355 358 // if (nbin < 1) nbin = nbh/2; 359 double kmax2d=0.; 356 360 if ((kmax<0.)||(kmax<kmin)) { 357 361 kmin=0.; … … 360 364 double maxz=fourAmp.SizeZ()*dkz_/2; 361 365 kmax=sqrt(maxx*maxx+maxy*maxy+maxz*maxz); 366 kmax2d=sqrt(maxx*maxx+maxy*maxy); 362 367 } 363 368 if (nbin<2) nbin=256; … … 374 379 // sa_size_t is large integer type 375 380 // We ignore 0th term in all frequency directions ... 376 for(sa_size_t kz= 1; kz<fourAmp.SizeZ(); kz++) {381 for(sa_size_t kz=0; kz<fourAmp.SizeZ(); kz++) { 377 382 kzz = (kz > fourAmp.SizeZ()/2) ? (double)(fourAmp.SizeZ()-kz)*dkz_ : (double)kz*dkz_; 378 for(sa_size_t ky=1; ky<fourAmp.SizeY(); ky++) { 383 uint_8 nmodeok_kz=0; 384 for(sa_size_t ky=0; ky<fourAmp.SizeY(); ky++) { 379 385 kyy = (ky > fourAmp.SizeY()/2) ? (double)(fourAmp.SizeY()-ky)*dky_ : (double)ky*dky_; 380 for(sa_size_t kx= 1; kx<fourAmp.SizeX(); kx++) { // ignore the 0th coefficient (constant term)381 doublekxx=(double)kx*dkx_;386 for(sa_size_t kx=0; kx<fourAmp.SizeX(); kx++) { // ignore the 0th coefficient (constant term) 387 kxx=(double)kx*dkx_; 382 388 double wk = sqrt(kxx*kxx+kyy*kyy+kzz*kzz); 383 389 double rep=resp(kxx*angscale, kyy*angscale); … … 387 393 hmcntok_p_->Add(wk); 388 394 hp_pk_p_->Add(wk, amp2); 389 nmodeok++; 390 } 391 } 392 } 395 nmodeok++; nmodeok_kz++; 396 } 397 } 398 if (prtlev_>2) 399 cout << " Four3DPk::ComputeNoisePk(kz="<<kz<<") ModeOK_Kz=" << nmodeok_kz 400 << " FracOK=" << 100.*(double)nmodeok_kz/(double)fourAmp.SizeX()/(double)fourAmp.SizeY() << endl; 401 } 393 402 if ((prtlev_>1)||((prtlev_>0)&&(s2cut>1.e-9))) { 394 cout << " Four3DPk::ComputeNoisePk/Info : NModeOK=" << nmodeok << " / NMode=" << fourAmp.Size() 403 cout << " Four3DPk::ComputeNoisePk/Info : angscale=" << angscale 404 << " kmin,kmax=" << kmin << "," << kmax << " kmax2d_ang=" << kmax2d*angscale 405 << " \n ... NModeOK=" << nmodeok << " / NMode=" << fourAmp.Size() 395 406 << " -> " << 100.*(double)nmodeok/(double)fourAmp.Size() << "%" << endl; 396 407 }
Note:
See TracChangeset
for help on using the changeset viewer.