Changeset 3924 in Sophya for trunk/Cosmo/SimLSS/genefluct3d.cc
- Timestamp:
- Dec 10, 2010, 4:38:23 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/genefluct3d.cc
r3908 r3924 904 904 905 905 //------------------------------------------------------------------- 906 void GeneFluct3D::ToRedshiftSpace( void)906 void GeneFluct3D::ToRedshiftSpace(int type_beta,double fixed_beta) 907 907 // Apply redshift distortion corrections 908 // ---- ATTENTION: Le spectre Pk doit etre (dRho/Rho)(k) 908 // P(k)_z = P(k) * ( 1 + beta * mu^2 )^2 909 // type_beta: =0 compute factor automatically with beta=-(1+z)/D*dD/z 910 // >0 compute factor with fix beta=Omega^fixed_beta 911 // <0 compute factor with fix beta=fixed_beta 912 // ---- ATTENTION: 913 // 1- Le spectre Pk doit etre (dRho/Rho)(k) 914 // 2- pas d'evolution en redhsuft possible, 915 // le spectre doit etre calcule au redshift final de la boite 909 916 { 910 917 double zpk = compute_pk_redsh_ref_; 911 double beta = -(1.+zpk) * growth_->DsDz(zpk,good_dzinc_) / (*growth_)(zpk); 912 if(lp_>0) cout<<"--- ToRedshiftSpace --- at z="<<zpk<<", Beta="<<beta 913 <<" (comp. for dz="<<good_dzinc_<<")"<<endl; 918 if(lp_>0) cout<<"--- ToRedshiftSpace --- at z="<<zpk<<", type_beta="<<type_beta<<endl; 919 920 double beta = 0.; 921 if(type_beta>0) { 922 double omegam = cosmo_->Omatter(zpk); beta = pow(omegam,fixed_beta); 923 if(lp_>0) cout<<"...beta = OmegaM^expo = "<<omegam<<"^"<<fixed_beta<<" = "<<beta<<endl; 924 } else if(type_beta<0) { 925 beta = fixed_beta; 926 if(lp_>0) cout<<"...beta = "<<beta<<endl; 927 } else { 928 beta = -(1.+zpk) * growth_->DsDz(zpk,good_dzinc_) / (*growth_)(zpk); 929 if(lp_>0) cout<<"...beta = -(1+z)*D'/D = "<<beta<<endl; 930 } 931 914 932 check_array_alloc(); 915 933 … … 929 947 930 948 //------------------------------------------------------------------- 931 void GeneFluct3D::ToVelLoS( void)949 void GeneFluct3D::ToVelLoS(int type_beta,double fixed_beta) 932 950 /* 951 // P(k)_z = P(k) * ( 1 + beta * mu^2 )^2 952 // type_beta: =0 compute factor automatically with beta=-(1+z)/D*dD/z 953 // >0 compute factor with fix beta=Omega^fixed_beta 954 // <0 compute factor with fix beta=fixed_beta 933 955 ---- Vitesse particuliere 934 956 Un atome au redshift "z" emet a la longueur d'onde "Le" si il est au repos … … 948 970 { 949 971 double zpk = compute_pk_redsh_ref_; 950 double dpsd = -cosmo_->H(zpk) * (1.+zpk) * growth_->DsDz(zpk,good_dzinc_) / (*growth_)(zpk); 951 if(lp_>0) cout<<"--- ToVelLoS --- at z="<<zpk<<", -H*(1+z)*D'/D="<<dpsd 952 <<" (km/s)/Mpc (comp. for dz="<<good_dzinc_<<")"<<endl; 972 if(lp_>0) cout<<"--- ToVelLoS --- at z="<<zpk<<", type_beta="<<type_beta<<endl; 973 974 double beta = 0; 975 if(type_beta>0) { 976 double omegam = cosmo_->Omatter(zpk); 977 beta = pow(omegam,fixed_beta); 978 if(lp_>0) cout<<"...beta = OmegaM^expo = "<<omegam<<"^"<<fixed_beta<<"="<<beta<<endl; 979 } else if(type_beta<0) { 980 beta = fixed_beta; 981 if(lp_>0) cout<<"...beta="<<beta<<endl; 982 } else { 983 beta = -(1.+zpk) * growth_->DsDz(zpk,good_dzinc_) / (*growth_)(zpk); 984 if(lp_>0) cout<<"...beta = -(1+z)*D'/D = "<<beta<<endl; 985 } 986 double dpsd = cosmo_->H(zpk) * beta; 987 if(lp_>0) cout<<"......H*beta = "<<dpsd<<" (km/s)/Mpc"<<endl; 988 953 989 check_array_alloc(); 954 990 … … 1019 1055 1020 1056 //------------------------------------------------------------------- 1021 void GeneFluct3D::ApplyVelLosGrowthFactor(int type_evol )1057 void GeneFluct3D::ApplyVelLosGrowthFactor(int type_evol,int type_beta,double fixed_beta) 1022 1058 // Apply Growth(z) to transverse velocity real space cube 1023 { 1024 if(lp_>0) cout<<"--- ApplyVelLosGrowthFactor: evol="<<type_evol<<endl; 1059 // P(k)_z = P(k) * ( 1 + beta * mu^2 )^2 1060 // type_beta: =0 compute factor automatically with beta=-(1+z)/D*dD/z 1061 // >0 compute factor with fix beta=Omega^fixed_beta 1062 // <0 compute factor with fix beta=fixed_beta 1063 { 1064 if(lp_>0) cout<<"--- ApplyVelLosGrowthFactor: evol="<<type_evol<<", type_beta="<<type_beta<<endl; 1065 1025 1066 check_array_alloc(); 1026 1067 … … 1036 1077 double zpk = compute_pk_redsh_ref_; 1037 1078 double grw_orig = (*growth_)(zpk); 1038 double dpsd_orig = - cosmo_->H(zpk) * (1.+zpk) * growth_->DsDz(zpk,good_dzinc_) / grw_orig; 1039 if(lp_>0) cout<<" original growth="<<grw_orig<<" dpsd="<<dpsd_orig<<" computed at z="<<zpk<<endl; 1079 double beta_orig = 0.; 1080 if(type_beta>0) {double omegam = cosmo_->Omatter(zpk); beta_orig = pow(omegam,fixed_beta);} 1081 else if(type_beta<0) beta_orig = fixed_beta; 1082 else beta_orig = -(1.+zpk) * growth_->DsDz(zpk,good_dzinc_) / (*growth_)(zpk); 1083 double dpsd_orig = cosmo_->H(zpk) * beta_orig; 1084 if(lp_>0) cout<<"...original at z="<<zpk<<": growth="<<grw_orig<<" beta="<<beta_orig 1085 <<" H*beta="<<dpsd_orig<<" (km/s)/Mpc"<<endl; 1086 1087 if(type_beta<0) cout<<"***WARNING: type_beta<0 , no evolution used for beta !!!"<<endl; 1040 1088 1041 1089 InterpFunc interpinv(loscom2zred_min_,loscom2zred_max_,loscom2zred_); … … 1052 1100 double z = interpinv(dz); // interpolation par morceau 1053 1101 double grw = (*growth_)(z); 1054 double dpsd = interdpd(z); 1102 double dpsd = 0; 1103 if(type_beta>0) { 1104 dpsd = cosmo_->H(z) * pow(cosmo_->Omatter(z),fixed_beta); 1105 } else if(type_beta<0) { 1106 dpsd = cosmo_->H(z) * fixed_beta; 1107 } else { 1108 dpsd = interdpd(z); // interpole -H(z)*(1+z)*D'(z)/D(z) 1109 } 1055 1110 int_8 ip = IndexR(i,j,l); 1056 1111 // on remet le beta au bon z
Note:
See TracChangeset
for help on using the changeset viewer.