Fully implemented cosmopower
This commit is contained in:
parent
052bc78e5f
commit
72df7b6c66
@ -197,7 +197,7 @@ double CosmoPower::integrandNormalize(double k)
|
||||
return power(k)*k*k*f*f;
|
||||
}
|
||||
|
||||
void CosmoPower::normalize(double sigma8)
|
||||
void CosmoPower::normalize()
|
||||
{
|
||||
int Nsteps = 30000;
|
||||
double normVal = 0;
|
||||
@ -216,7 +216,7 @@ void CosmoPower::normalize(double sigma8)
|
||||
|
||||
normVal /= (2*M_PI*M_PI);
|
||||
|
||||
normPower = sigma8*sigma8/normVal;
|
||||
normPower = SIGMA8*SIGMA8/normVal;
|
||||
}
|
||||
|
||||
void CosmoPower::updateCosmology()
|
||||
@ -248,3 +248,37 @@ double CosmoPower::power(double k)
|
||||
{
|
||||
return (this->*eval)(k);
|
||||
}
|
||||
|
||||
|
||||
void CosmoPower::setFunction(CosmoFunction f)
|
||||
{
|
||||
switch (f)
|
||||
{
|
||||
case POWER_EFSTATHIOU:
|
||||
eval = &CosmoPower::powerEfstathiou;
|
||||
break;
|
||||
case HU_WIGGLES:
|
||||
eval = &CosmoPower::powerHuWiggles;
|
||||
break;
|
||||
case HU_BARYON:
|
||||
eval = &CosmoPower::powerHuBaryons;
|
||||
break;
|
||||
case OLD_POWERSPECTRUM:
|
||||
eval = &CosmoPower::powerOld;
|
||||
break;
|
||||
case POWER_BARDEEN:
|
||||
eval = &CosmoPower::powerBardeen;
|
||||
break;
|
||||
case POWER_SUGIYAMA:
|
||||
eval = &CosmoPower::powerSugiyama;
|
||||
break;
|
||||
case POWER_BDM:
|
||||
eval = &CosmoPower::powerBDM;
|
||||
break;
|
||||
case POWER_TEST:
|
||||
eval = &CosmoPower::powerTest;
|
||||
break;
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
@ -41,10 +41,10 @@ namespace CosmoTool {
|
||||
|
||||
CosmoPower();
|
||||
|
||||
void setFunction();
|
||||
void setFunction(CosmoFunction f);
|
||||
|
||||
void updateCosmology();
|
||||
void normalize(double sigma8);
|
||||
void normalize();
|
||||
|
||||
|
||||
double eval_theta_theta(double k);
|
||||
|
@ -119,7 +119,7 @@ namespace CosmoTool
|
||||
}
|
||||
|
||||
template<typename Array, typename Array2>
|
||||
void get_Kvec(const Array& ik, Array2& kvec)
|
||||
void get_Kvec(const Array& ik, Array2& kvec) const
|
||||
{
|
||||
const DimArray& dims = this->getDims();
|
||||
assert(ik.size() == dims.size());
|
||||
@ -137,7 +137,7 @@ namespace CosmoTool
|
||||
}
|
||||
|
||||
template<typename Array2>
|
||||
void get_Kvec(long p, Array2& kvec)
|
||||
void get_Kvec(long p, Array2& kvec) const
|
||||
{
|
||||
const DimArray& dims = this->getDims();
|
||||
DimArray d(delta_k.size());
|
||||
@ -145,7 +145,7 @@ namespace CosmoTool
|
||||
get_Kvec(d, kvec);
|
||||
}
|
||||
|
||||
void get_IKvec(long p, DimArray& ikvec)
|
||||
void get_IKvec(long p, DimArray& ikvec) const
|
||||
{
|
||||
const DimArray& dims = this->getDims();
|
||||
assert(dims.size()==ikvec.size());
|
||||
@ -158,7 +158,7 @@ namespace CosmoTool
|
||||
|
||||
|
||||
template<typename Array>
|
||||
double get_K(const Array& ik)
|
||||
double get_K(const Array& ik) const
|
||||
{
|
||||
const DimArray& dims = this->getDims();
|
||||
assert(ik.size() == dims.size());
|
||||
@ -177,7 +177,7 @@ namespace CosmoTool
|
||||
return std::sqrt(k2);
|
||||
}
|
||||
|
||||
double get_K(long p)
|
||||
double get_K(long p) const
|
||||
{
|
||||
const DimArray& dims = this->getDims();
|
||||
DimArray d(delta_k.size());
|
||||
|
Loading…
Reference in New Issue
Block a user