Changeset 3773 in Sophya for trunk/Cosmo/SimLSS
- Timestamp:
- May 9, 2010, 12:47:58 AM (15 years ago)
- Location:
- trunk/Cosmo/SimLSS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/cmvrvloscor.cc
r3771 r3773 11 11 #include "timing.h" 12 12 #include "dvlist.h" 13 #include " ntuple.h"13 #include "histos.h" 14 14 #include "fabtcolread.h" 15 15 … … 27 27 { 28 28 int nthread = 1; 29 SophyaInit(); 30 InitTim(); 29 int_8 nhfill = 100000; 31 30 32 31 if(narg<=2) {usage(); return -1;} … … 35 34 try { 36 35 //----TRY-CATCH-TRY-CATCH-TRY-CATCH-TRY-CATCH-TRY-CATCH-TRY-CATCH 36 37 SophyaInit(); 38 InitTim(); 37 39 38 40 cout<<"> read rho: "<<arg[1]<<endl; … … 52 54 cout<<"Zref="<<Zref<<" Href="<<Href<<endl; 53 55 56 double dmin = min(Dx,min(Dy,Dz)); 57 double nmax = max(Nx,max(Ny,Nz)); 58 cout<<"dmin="<<dmin<<" nmax="<<nmax<<endl; 59 Histo hmpc(-dmin*nmax,dmin*nmax,4.*nmax); 60 nhfill = (int_8)Nx*(int_8)Ny*(int_8)Nz/nhfill; if(nhfill<=0) nhfill = 1; 61 54 62 POutPersist pos("cmvrvloscor.ppf"); 55 63 … … 58 66 TArray<GEN3D_TYPE>& rgen = fluct3d.GetRealArray(); 59 67 rgen = 0.; 60 TVector<r_8> R(Nz), Rdis(Nz); 68 TVector<GEN3D_TYPE> R(Nz), V(Nz); 69 TVector<r_8> Rdis(Nz); 61 70 62 71 cout<<"> filling redshift distorted cube"<<endl; 72 int_8 nread = 0; 63 73 for(int i=0;i<Nx;i++) { 64 74 if(i%(Nx/10)==0) cout<<"i="<<i<<endl; 65 75 for(int j=0;j<Ny;j++) { 66 for(int l=0;l<Nz;l++) R(l) = f3dr.Read(l,j,i); 76 //for(int l=0;l<Nz;l++) R(l) = f3dr.Read(l,j,i); 77 //for(int l=0;l<Nz;l++) V(l) = f3dv.Read(l,j,i); 78 f3dr.Read(j,i,R); 79 f3dv.Read(j,i,V); 67 80 Rdis = 0.; 68 81 for(int l=0;l<Nz;l++) { 69 double d = (1.+Zref) / Href * f3dv.Read(l,j,i); 82 double d = (1.+Zref) / Href * V(l); 83 if(nread%nhfill==0) hmpc.Add(d); 70 84 double lpd = (double)l + d/Dz; // valeur du deplacee 71 85 // on repartit proportionnelement au recouvrement sur 2 pixels … … 80 94 } 81 95 PrtTim(">>>> End filling redshift distorted cube"); 96 pos.PutObject(hmpc,"hmpc"); 82 97 83 98 fluct3d.ReComputeFourier(); … … 131 146 openppf cmvrvloscor.ppf 132 147 148 disp hmpc 149 133 150 n/plot hpkrec.val%x x>0 ! "nsta cpts logx" 134 151 … … 144 161 145 162 # proj selon kT (black), selon kZ (red) 146 n/plot hpkrec2.val%sqrt(x*x+y*y) ! ! "nsta c pts"163 n/plot hpkrec2.val%sqrt(x*x+y*y) ! ! "nsta crossmarker3 logx" 147 164 */ -
trunk/Cosmo/SimLSS/genefluct3d.cc
r3770 r3773 118 118 Nz_ = nz; if(Nz_ <= 0) Nz_ = Nx_; 119 119 N_.resize(0); N_.push_back(Nx_); N_.push_back(Ny_); N_.push_back(Nz_); 120 NRtot_ = Nx_*Ny_*Nz_; // nombre de pixels dans le survey120 NRtot_ = (int_8)Nx_*(int_8)Ny_*(int_8)Nz_; // nombre de pixels dans le survey 121 121 NCz_ = Nz_/2 +1; 122 122 NTz_ = 2*NCz_; … … 766 766 // Take into account the real and complexe conjugate coefficients 767 767 // because we want a realization of a real data in real space 768 // On ecrit que: P(k_x,k_y,k_z) = P(-k_x,-k_y,-k_z)768 // On ecrit que: conj(P(k_x,k_y,k_z)) = P(-k_x,-k_y,-k_z) 769 769 // avec k_x = i, -k_x = N_x - i etc... 770 770 { … … 773 773 774 774 // 1./ Le Continu et Nyquist sont reels 775 longnreal = 0;775 int_8 nreal = 0; 776 776 for(long kk=0;kk<2;kk++) { 777 777 long k=0; // continu … … 795 795 796 796 // a./ les lignes et colonnes du continu et de nyquist 797 longnconj1 = 0;797 int_8 nconj1 = 0; 798 798 for(long kk=0;kk<2;kk++) { 799 799 long k=0; // continu … … 823 823 824 824 // b./ les lignes et colonnes hors continu et de nyquist 825 longnconj2 = 0;825 int_8 nconj2 = 0; 826 826 for(long kk=0;kk<2;kk++) { 827 827 long k=0; // continu … … 840 840 if(lp_>1) cout<<"Number of forced conjugate hors cont+nyq ="<<nconj2<<endl; 841 841 842 if(lp_>1) cout<<"Check: ddl= "<<NRtot_<<" =?= "<<2*(N x_*Ny_*NCz_-nconj1-nconj2)-nreal<<endl;842 if(lp_>1) cout<<"Check: ddl= "<<NRtot_<<" =?= "<<2*(NRtot_-nconj1-nconj2)-nreal<<endl; 843 843 844 844 return nreal+nconj1+nconj2; … … 897 897 //------------------------------------------------------------------- 898 898 void GeneFluct3D::ToVelLoS(void) 899 // Le spectre Pk doit etre (dRho/Rho)(k) 899 900 { 900 901 double zpk = compute_pk_redsh_ref_; … … 912 913 double kz = Kz(l); 913 914 double k2 = kt2 + kz*kz; 914 if(k2<=0.) continue; 915 T_(l,j,i) *= complex<double>(0.,dpsd*kz/k2); 916 } 917 } 918 } 915 if(l==0) k2 = 0.; else k2 = dpsd*kz/k2; 916 T_(l,j,i) *= complex<double>(0.,k2); 917 } 918 } 919 } 920 919 921 } 920 922
Note:
See TracChangeset
for help on using the changeset viewer.