Multiply the power spectrum by the volume to have proper units
This commit is contained in:
parent
01f36b9be7
commit
a3ef55c318
@ -69,17 +69,22 @@ namespace CosmoTool
|
|||||||
std::complex<T> *d = rand_map.data();
|
std::complex<T> *d = rand_map.data();
|
||||||
long idx;
|
long idx;
|
||||||
const DimArray& dims = rand_map.getDims();
|
const DimArray& dims = rand_map.getDims();
|
||||||
|
const std::vector<double>& delta_k = rand_map.get_delta_k();
|
||||||
long plane_size;
|
long plane_size;
|
||||||
bool alleven = rand_map.allDimensionsEven();
|
bool alleven = rand_map.allDimensionsEven();
|
||||||
|
double V = 1;
|
||||||
|
|
||||||
|
for (int p = 0; p < delta_k.size(); p++)
|
||||||
|
V *= (2*M_PI/delta_k[p]);
|
||||||
|
|
||||||
for (long p = 1; p < rand_map.size(); p++)
|
for (long p = 1; p < rand_map.size(); p++)
|
||||||
{
|
{
|
||||||
double A_k = std::sqrt(0.5*f(rand_map.get_K(p)));
|
double A_k = std::sqrt(0.5*V*f(rand_map.get_K(p)));
|
||||||
d[p] = std::complex<T>(gsl_ran_gaussian(rng, A_k),
|
d[p] = std::complex<T>(gsl_ran_gaussian(rng, A_k),
|
||||||
gsl_ran_gaussian(rng, A_k));
|
gsl_ran_gaussian(rng, A_k));
|
||||||
}
|
}
|
||||||
// Generate the mean value
|
// Generate the mean value
|
||||||
d[0] = std::complex<T>(gsl_ran_gaussian(rng, std::sqrt(f(0))), 0);
|
d[0] = std::complex<T>(gsl_ran_gaussian(rng, std::sqrt(V*f(0))), 0);
|
||||||
|
|
||||||
if (!rand_map.firstDimensionEven())
|
if (!rand_map.firstDimensionEven())
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user