Changeset 3806 in Sophya for trunk/Cosmo/SimLSS/pkspectrum.cc
- Timestamp:
- Jul 24, 2010, 6:15:07 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/pkspectrum.cc
r3805 r3806 390 390 double GrowthFactor::DsDz(double z, double) 391 391 { 392 cout<<" Error: GrowthFactor::DsDznot implemented"<<endl;393 throw AllocationError(" Error: GrowthFactor::DsDznot implemented");392 cout<<"GrowthFactor::DsDz_Error not implemented"<<endl; 393 throw AllocationError(" GrowthFactor::DsDz_Error not implemented"); 394 394 } 395 395 … … 404 404 { 405 405 if(OmegaMatter0==0.) { 406 cout<<"GrowthEisenstein::GrowthEisenstein : Errorbad OmegaMatter0 value : "<<OmegaMatter0<<endl;407 throw ParmError("GrowthEisenstein::GrowthEisenstein : Error badOmegaMatter0 value");406 cout<<"GrowthEisenstein::GrowthEisenstein_Error: bad OmegaMatter0 value : "<<OmegaMatter0<<endl; 407 throw ParmError("GrowthEisenstein::GrowthEisenstein_Error: bad OmegaMatter0 value"); 408 408 } 409 409 } … … 446 446 { 447 447 if(z<0. || dzinc<=0.) { 448 cout<<"GrowthEisenstein::DsDz : z<0 or dzinc<=0. !"<<endl;449 throw ParmError("GrowthEisenstein::DsDz : z<0 or dzinc<=0. !");448 cout<<"GrowthEisenstein::DsDz_Error: z<0 or dzinc<=0. !"<<endl; 449 throw ParmError("GrowthEisenstein::DsDz_Error: z<0 or dzinc<=0. !"); 450 450 } 451 451 … … 543 543 544 544 PkTabulate::PkTabulate(void) 545 : kmin_(1.) , kmax_(-1.) , interptyp_(0)545 : kmin_(1.) , kmax_(-1.) , interptyp_(0), d1_(NULL) 546 546 { 547 547 k_.resize(0); … … 550 550 551 551 PkTabulate::PkTabulate(PkTabulate& pkz) 552 : kmin_(pkz.kmin_) , kmax_(pkz.kmax_) , interptyp_(pkz.interptyp_) , k_(pkz.k_) , pk_(pkz.pk_) 553 { 554 } 555 552 : kmin_(pkz.kmin_) , kmax_(pkz.kmax_) , interptyp_(pkz.interptyp_) 553 , k_(pkz.k_) , pk_(pkz.pk_) 554 , d1_(pkz.d1_) 555 { 556 } 556 557 557 558 PkTabulate::~PkTabulate(void) … … 575 576 double PkTabulate::operator() (double k,double z) 576 577 { 577 cout<<"Error: PkTabulate::operator(double k,double z) not implemented"<<endl; 578 throw AllocationError("Error: PkTabulate::operator(double k,double z) not implemented"); 579 } 580 581 int PkTabulate::ReadCAMB(string filename, double h100, double zreftab) 578 cout<<"PkTabulate::operator(double k,double z)_Error: not implemented"<<endl; 579 throw AllocationError("PkTabulate::operator(double k,double z)_Error: not implemented"); 580 } 581 582 void PkTabulate::SetZ(double z) 583 { 584 if(d1_ == NULL) { 585 cout<<"PkTabulate::SetZ_Error: d1==NULL, no possible redshift change for tabulated Pk"<<endl; 586 throw ParmError("PkTabulate::SetZ_Error: d1==NULL, no possible redshift change for tabulated Pk"); 587 } 588 if(pk_.size() == 0) { 589 cout<<"PkTabulate::SetZ_Error: pk_.size()==0, no possible redshift change for tabulated Pk"<<endl; 590 throw ParmError("PkTabulate::SetZ_Error: pk_.size()==0, no possible redshift change for tabulated Pk"); 591 } 592 593 double zold = zref_; 594 if(fabs(z-zold)<1.e-4) return; 595 596 zref_ = z; 597 double d0 = (*d1_)(zold); 598 double d1 = (*d1_)(zref_); 599 double conv = d1*d1 / (d0*d0); 600 cout<<"PkTabulate::SetZ: change redshift from "<<zold<<" (d="<<d0 601 <<") to "<<zref_<<" (d="<<d1<<") conv="<<conv<<endl; 602 for(unsigned int i=0;i<pk_.size();i++) pk_[i] *= conv; 603 } 604 605 int PkTabulate::ReadCAMB(string filename, double h100tab, double zreftab) 582 606 { 583 607 FILE *file = fopen(filename.c_str(),"r"); 584 608 if(file==NULL) return -1; 585 cout<<"PkTabulate::ReadCAMB: fn="<<filename<<" h100="<<h100 <<" zreftab = "<<zreftab<<endl;609 cout<<"PkTabulate::ReadCAMB: fn="<<filename<<" h100="<<h100tab<<" zreftab = "<<zreftab<<endl; 586 610 587 611 const int lenline = 512; 588 612 char *line = new char[lenline]; 613 double h = h100tab, h3 = pow(h100tab,3.); 589 614 590 615 k_.resize(0); pk_.resize(0); 616 double kmax = 0., pkmax = 0.; 591 617 while ( fgets(line,lenline,file) != NULL ) { 592 618 double k, pk; 593 619 sscanf(line,"%lf %lf",&k,&pk); 594 k *= h100; // convert h Mpc^-1 -> Mpc^-1 595 pk /= h100*h100*h100; // convert h^-3 Mpc^3 -> Mpc^3 620 k *= h; // convert h Mpc^-1 -> Mpc^-1 621 pk /= h3; // convert h^-3 Mpc^3 -> Mpc^3 622 if(pk>pkmax) {pkmax = pk; kmax = k;} 596 623 k_.push_back(k); 597 624 pk_.push_back(pk); 598 625 } 599 626 600 SetZ(zreftab); 601 cout<<"PkTabulate::ReadCAMB nread="<<pk_.size()<<"zref="<<GetZ()<<endl; 627 zref_ = zreftab; 628 cout<<" nread="<<pk_.size()<<" zref="<<GetZ()<<" , k,pk: max="<<kmax<<","<<pkmax; 629 if(pk_.size()>0) cout<<" [0]="<<k_[0]<<","<<pk_[0] 630 <<" [n]="<<k_[pk_.size()-1]<<","<<pk_[pk_.size()-1]; 631 cout<<endl; 632 602 633 delete [] line; 603 634 … … 667 698 { 668 699 if(R<=0.) { 669 cout<<"VarianceSpectrum::SetRadius : ErrorR<=0"<<endl;670 throw ParmError("VarianceSpectrum::SetRadius : ErrorR<=0");700 cout<<"VarianceSpectrum::SetRadius_Error: R<=0"<<endl; 701 throw ParmError("VarianceSpectrum::SetRadius_Error: R<=0"); 671 702 } 672 703 R_ = R; … … 737 768 { 738 769 if(kmin<=0 || kmax<=0. || kmin>=kmax) { 739 cout<<"VarianceSpectrum::Variance : Errorkmin<=0 or kmax<=0 or kmin>=kmax"<<endl;740 throw ParmError("VarianceSpectrum::Variance : Errorkmin<=0 or kmax<=0 or kmin>=kmax");770 cout<<"VarianceSpectrum::Variance_Error: kmin<=0 or kmax<=0 or kmin>=kmax"<<endl; 771 throw ParmError("VarianceSpectrum::Variance_Error: kmin<=0 or kmax<=0 or kmin>=kmax"); 741 772 } 742 773 … … 759 790 { 760 791 if(kmin<=0 || kmax<=0. || kmin>=kmax) { 761 cout<<"VarianceSpectrum::FindMaximum : Errorkmin<=0 or kmax<=0 or kmin>=kmax || eps<=0"<<endl;762 throw ParmError("VarianceSpectrum::FindMaximum : Errorkmin<=0 or kmax<=0 or kmin>=kmax || eps<=0");792 cout<<"VarianceSpectrum::FindMaximum_Error: kmin<=0 or kmax<=0 or kmin>=kmax || eps<=0"<<endl; 793 throw ParmError("VarianceSpectrum::FindMaximum_Error: kmin<=0 or kmax<=0 or kmin>=kmax || eps<=0"); 763 794 } 764 795 … … 802 833 { 803 834 if(kmin<=0 || kmax<=0. || kmin>=kmax || eps<=0.) { 804 cout<<"VarianceSpectrum::FindLimits : Errorkmin<=0 or kmax<=0 or kmin>=kmax or eps<=0"<<endl;805 throw ParmError("VarianceSpectrum::FindLimits : Errorkmin<=0 or kmax<=0 or kmin>=kmax || eps<=0");835 cout<<"VarianceSpectrum::FindLimits_Error: kmin<=0 or kmax<=0 or kmin>=kmax or eps<=0"<<endl; 836 throw ParmError("VarianceSpectrum::FindLimits_Error: kmin<=0 or kmax<=0 or kmin>=kmax || eps<=0"); 806 837 } 807 838
Note:
See TracChangeset
for help on using the changeset viewer.