From 493436954f28ac90d76c5b7ea49d375b731e8144 Mon Sep 17 00:00:00 2001 From: Oliver Hahn Date: Fri, 23 Feb 2024 22:17:07 +0100 Subject: [PATCH 1/5] added output whether PS is normalised using sigma8 or not --- src/cosmology_calculator.hh | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cosmology_calculator.hh b/src/cosmology_calculator.hh index 1748430..23dbb35 100644 --- a/src/cosmology_calculator.hh +++ b/src/cosmology_calculator.hh @@ -184,6 +184,7 @@ public: transfer_function_->intialise(); if( !transfer_function_->tf_isnormalised_ ){ cosmo_param_.set("pnorm", this->compute_pnorm_from_sigma8()*Dplus_start_*Dplus_start_ ); + music::ilog << "Setting PS normalisation from specified sigma8 = " << sigma8 << std::endl; }else{ // WARNING: we do explicit back-scaling here, which is notably different from monofonIC cosmo_param_.set("pnorm", Dplus_start_*Dplus_start_/Dplus_target_/Dplus_target_); From a424e07a5ecdc35abb8bec075c1accec111398d8 Mon Sep 17 00:00:00 2001 From: Oliver Hahn Date: Fri, 23 Feb 2024 22:22:35 +0100 Subject: [PATCH 2/5] fixed some inconsistencies with fourier vs. real-space derefinement and convolution margins --- src/densities.cc | 11 +++++------ src/densities.hh | 2 +- src/main.cc | 1 + src/mesh.hh | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/densities.cc b/src/densities.cc index ec09459..05ac825 100644 --- a/src/densities.cc +++ b/src/densities.cc @@ -331,11 +331,11 @@ void GenerateDensityHierarchy(config_file &cf, const cosmology::calculator* cc, unsigned levelmin = cf.get_value_safe("setup", "levelmin_TF", levelminPoisson); unsigned levelmax = cf.get_value("setup", "levelmax"); - unsigned margin = cf.get_value_safe("setup", "convolution_margin", 8); + unsigned margin = cf.get_value_safe("setup", "convolution_margin", 4); bool fix = cf.get_value_safe("setup","fix_mode_amplitude",false); bool flip = cf.get_value_safe("setup","flip_mode_amplitude",false); - bool fourier_splicing = true; //cf.get_value_safe("setup","fourier_splicing",true); + bool fourier_splicing = cf.get_value_safe("setup","fourier_splicing",true); if( fix && levelmin != levelmax ){ music::wlog.Print("You have chosen mode fixing for a zoom. This is not well tested,\n please proceed at your own risk..."); @@ -521,12 +521,11 @@ void normalize_levelmin_density(grid_hierarchy &delta) } -void coarsen_density(const refinement_hierarchy &rh, GridHierarchy &u, bool kspace) +void coarsen_density(const refinement_hierarchy &rh, GridHierarchy &u, bool bfourier_coarsening ) { const unsigned levelmin_TF = u.levelmin(); - const bool benforce_coarse = !kspace; - if (kspace) + if (bfourier_coarsening) { for (int i = levelmin_TF; i >= (int)rh.levelmin(); --i) fft_coarsen(*(u.get_grid(i)), *(u.get_grid(i - 1))); @@ -547,7 +546,7 @@ void coarsen_density(const refinement_hierarchy &rh, GridHierarchy &u, b rh.size(i, 0), rh.size(i, 1), rh.size(i, 2), benforce_coarse); } } - if( !benforce_coarse ){ + if( !fourier_coarsening ){ normalize_levelmin_density( u ); } } diff --git a/src/densities.hh b/src/densities.hh index e6b52ae..0c0700a 100644 --- a/src/densities.hh +++ b/src/densities.hh @@ -27,6 +27,6 @@ void GenerateDensityUnigrid(config_file &cf, const cosmology::calculator*, tf_ty void normalize_density(grid_hierarchy &delta); -void coarsen_density(const refinement_hierarchy &rh, GridHierarchy &u, bool kspace); +void coarsen_density(const refinement_hierarchy &rh, GridHierarchy &u, bool bfourier_coarsening ); #endif diff --git a/src/main.cc b/src/main.cc index fcb0dbe..16dbf79 100644 --- a/src/main.cc +++ b/src/main.cc @@ -589,6 +589,7 @@ int main(int argc, const char *argv[]) poisson_plugin *the_poisson_solver = the_poisson_plugin_creator->create(cf); // .. this parameter needs to be read after the random module is initialised as it will be overwritten by it + // .. e.g. PANPHASIA wants false, while MUSIC RNG wants true const bool use_fourier_coarsening = cf.get_value_safe("setup", "fourier_splicing", true); //--------------------------------------------------------------------------------- diff --git a/src/mesh.hh b/src/mesh.hh index 11f52f6..7518a0f 100644 --- a/src/mesh.hh +++ b/src/mesh.hh @@ -1317,7 +1317,7 @@ public: preserve_dims_ = cf_.get_value_safe("setup", "preserve_dims", false); equal_extent_ = cf_.get_value_safe("setup", "force_equal_extent", false); blocking_factor_ = cf.get_value_safe("setup", "blocking_factor", 0); - margin_ = cf.get_value_safe("setup", "convolution_margin", 32); + margin_ = cf.get_value_safe("setup", "convolution_margin", 4); bool bnoshift = cf_.get_value_safe("setup", "no_shift", false); bool force_shift = cf_.get_value_safe("setup", "force_shift", false); From cc12cd8fcf0308946b7a513231e2e131ee8dcee3 Mon Sep 17 00:00:00 2001 From: Oliver Hahn Date: Fri, 23 Feb 2024 22:27:48 +0100 Subject: [PATCH 3/5] fix compilationn error --- src/cosmology_calculator.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cosmology_calculator.hh b/src/cosmology_calculator.hh index 23dbb35..53775d4 100644 --- a/src/cosmology_calculator.hh +++ b/src/cosmology_calculator.hh @@ -184,7 +184,7 @@ public: transfer_function_->intialise(); if( !transfer_function_->tf_isnormalised_ ){ cosmo_param_.set("pnorm", this->compute_pnorm_from_sigma8()*Dplus_start_*Dplus_start_ ); - music::ilog << "Setting PS normalisation from specified sigma8 = " << sigma8 << std::endl; + music::ilog << "Fixing PS normalisation from specified sigma8 = " << cosmo_param_["sigma_8"] << std::endl; }else{ // WARNING: we do explicit back-scaling here, which is notably different from monofonIC cosmo_param_.set("pnorm", Dplus_start_*Dplus_start_/Dplus_target_/Dplus_target_); From ffd49efc496ee0a3d5683bb602ae43fa3172cff6 Mon Sep 17 00:00:00 2001 From: Oliver Hahn Date: Fri, 23 Feb 2024 22:30:40 +0100 Subject: [PATCH 4/5] fixed another typo --- src/densities.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/densities.cc b/src/densities.cc index 05ac825..cead5c6 100644 --- a/src/densities.cc +++ b/src/densities.cc @@ -543,10 +543,10 @@ void coarsen_density(const refinement_hierarchy &rh, GridHierarchy &u, b || rh.size(i, 0) != u.get_grid(i)->size(0) || rh.size(i, 1) != u.get_grid(i)->size(1) || rh.size(i, 2) != u.get_grid(i)->size(2)) { u.cut_patch(i, rh.offset_abs(i, 0), rh.offset_abs(i, 1), rh.offset_abs(i, 2), - rh.size(i, 0), rh.size(i, 1), rh.size(i, 2), benforce_coarse); + rh.size(i, 0), rh.size(i, 1), rh.size(i, 2), !bfourier_coarsening ); } } - if( !fourier_coarsening ){ + if( !bfourier_coarsening ){ normalize_levelmin_density( u ); } } From 672c99171a2c69fc66dba1be1a9a09d20247a443 Mon Sep 17 00:00:00 2001 From: Oliver Hahn Date: Sat, 24 Feb 2024 00:48:50 +0100 Subject: [PATCH 5/5] fixed bug in previous commit --- src/densities.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/densities.cc b/src/densities.cc index cead5c6..83b8d1e 100644 --- a/src/densities.cc +++ b/src/densities.cc @@ -335,7 +335,7 @@ void GenerateDensityHierarchy(config_file &cf, const cosmology::calculator* cc, bool fix = cf.get_value_safe("setup","fix_mode_amplitude",false); bool flip = cf.get_value_safe("setup","flip_mode_amplitude",false); - bool fourier_splicing = cf.get_value_safe("setup","fourier_splicing",true); + bool fourier_splicing = true; //cf.get_value_safe("setup","fourier_splicing",true); if( fix && levelmin != levelmax ){ music::wlog.Print("You have chosen mode fixing for a zoom. This is not well tested,\n please proceed at your own risk...");