Changeset 4028 in Sophya for trunk


Ignore:
Timestamp:
Oct 18, 2011, 10:56:28 AM (14 years ago)
Author:
ansari
Message:

Debug de calcul Pnoise3D(k) avec D_A(z), Reza 18/10/2011

Location:
trunk/Cosmo/RadioBeam
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cosmo/RadioBeam/pknoise.cc

    r4027 r4028  
    9090  double H_z=120.5;  // Hubble_param(z)
    9191  int box3dsz[3]={512,512,256};
    92   double cellsz[3]={3.,3.,1.5};
     92  double cellsz[3]={3.,3.,3.};
    9393  int NBINPK=256;
    9494  int prtlev=0;
     
    159159    redshift2da.ReadXYFromFile(interpfilename);
    160160    SLinInterp1D redshift2hz;
    161     interpfilename="redshift_hz.txt";
     161    interpfilename="redshift_Hz.txt";
    162162    redshift2hz.ReadXYFromFile(interpfilename);
    163163    comov_dA_z=redshift2da(z_Redshift);
     
    211211    Vector angscales(box3dsz[2]);
    212212    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; }
    214214    else {
    215215      angscale=comov_dA_z;
     
    225225         << box3dsz[2] << ")" << endl;
    226226    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;
    228229    m3d.SetCellSize(dkxmpc, dkympc, dkzmpc);
    229230    m3d.SetPrtLevel(prtlev,prtmod);
  • trunk/Cosmo/RadioBeam/plpkn.pic

    r3975 r4028  
    88delobjs *
    99# openppf ../../PkNoise/cmvhpkz.ppf
    10 # openppf ../pkz0p25.ppf
    11 openppf ../pkz0p7.ppf
     10# openppf pkz0p25.ppf
     11openppf pkz0p7.ppf
    1212rename hpkz hpkz0p7
    13 openppf ../pkz1p0.ppf
     13openppf pkz1p0.ppf
    1414rename hpkz hpkz1p0
    1515
  • trunk/Cosmo/RadioBeam/specpk.cc

    r4027 r4028  
    213213// typically = ComovRadialDistance
    214214{
     215  uint_8 nmodeok=0;
    215216  if (angscales.Size() != fourAmp.SizeZ())
    216217    throw SzMismatchError("ComputeNoiseFourierAmp(): angscales.Size()!=fourAmp.SizeZ()");
     
    231232        kxx=(double)kx*dkx_;
    232233        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  }
    244247  TVector< complex<TF> >  veczin(fourAmp.SizeZ()), veczout(fourAmp.SizeZ());
    245248  FFTWServer ffts(true);                     
     
    257260  }
    258261
    259   if (prtlev_>2)  fourAmp.Show();
     262  //  if (prtlev_>2)  fourAmp.Show();
    260263  if (prtlev_>0)
    261264    cout << " Four3DPk::ComputeNoiseFourierAmp(Four2DResponse& resp, double f0, double df) done ..." << endl;
     
    315318  // sa_size_t is large integer type 
    316319  // 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++) {
    318321    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++) {
    320323      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         double kxx=(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_;
    323326        complex<TF> za = fourAmp(kx, ky, kz);
    324327        //      if (za.real()>8.e19) continue;
     
    354357  // as a function of wave-number k = sqrt((double)(kx*kx+ky*ky))
    355358  //  if (nbin < 1) nbin = nbh/2;
     359  double kmax2d=0.;
    356360  if ((kmax<0.)||(kmax<kmin)) {
    357361    kmin=0.;
     
    360364    double maxz=fourAmp.SizeZ()*dkz_/2;
    361365    kmax=sqrt(maxx*maxx+maxy*maxy+maxz*maxz);
     366    kmax2d=sqrt(maxx*maxx+maxy*maxy);
    362367  }
    363368  if (nbin<2) nbin=256;
     
    374379  // sa_size_t is large integer type 
    375380  // 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++) {
    377382    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++) {
    379385      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         double kxx=(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_;
    382388        double wk = sqrt(kxx*kxx+kyy*kyy+kzz*kzz);
    383389        double rep=resp(kxx*angscale, kyy*angscale);
     
    387393        hmcntok_p_->Add(wk);
    388394        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   }
    393402  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()
    395406         << " -> " << 100.*(double)nmodeok/(double)fourAmp.Size() << "%" << endl;
    396407  }
Note: See TracChangeset for help on using the changeset viewer.