mirror of
https://github.com/hoellin/selfisys_public.git
synced 2025-06-07 16:41:11 +00:00
1212 lines
No EOL
148 KiB
HTML
1212 lines
No EOL
148 KiB
HTML
|
|
|
|
<!DOCTYPE html>
|
|
<html class="writer-html5" lang="en" data-content_root="../../">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>selfisys.sbmy_interface — SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
|
|
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=80d5e7a1" />
|
|
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=e59714d7" />
|
|
|
|
|
|
<script src="../../_static/jquery.js?v=5d32c60e"></script>
|
|
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
<script src="../../_static/documentation_options.js?v=75025241"></script>
|
|
<script src="../../_static/doctools.js?v=9bcbadda"></script>
|
|
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
<script src="../../_static/js/theme.js"></script>
|
|
<link rel="index" title="Index" href="../../genindex.html" />
|
|
<link rel="search" title="Search" href="../../search.html" />
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav">
|
|
<div class="wy-grid-for-nav">
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
<div class="wy-side-scroll">
|
|
<div class="wy-side-nav-search" >
|
|
|
|
|
|
|
|
<a href="../../index.html" class="icon icon-home">
|
|
SelfiSys
|
|
</a>
|
|
<div role="search">
|
|
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
<input type="hidden" name="area" value="default" />
|
|
</form>
|
|
</div>
|
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../selfisys.hiddenbox.html">hiddenbox</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../selfisys.normalise_hb.html">normalise_hb</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../selfisys.prior.html">prior</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../selfisys.selection_functions.html">selection_functions</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../selfisys.selfi_interface.html">selfi_interface</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../selfisys.grf.html">grf</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../selfisys.utils.html">selfisys.utils package</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#submodules">Submodules</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#python-code">Python code</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../CONTRIBUTING.html#questions">Questions?</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<p class="caption" role="heading"><span class="caption-text">References</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../REFERENCES.html">References</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="../../index.html">SelfiSys</a>
|
|
</nav>
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content style-external-links">
|
|
<div role="navigation" aria-label="Page navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
<li class="breadcrumb-item"><a href="../index.html">Module code</a></li>
|
|
<li class="breadcrumb-item active">selfisys.sbmy_interface</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
</div>
|
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
<div itemprop="articleBody">
|
|
|
|
<h1>Source code for selfisys.sbmy_interface</h1><div class="highlight"><pre>
|
|
<span></span><span class="ch">#!/usr/bin/env python3</span>
|
|
<span class="c1"># ----------------------------------------------------------------------</span>
|
|
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
|
|
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
|
|
<span class="c1"># See the LICENSE file in the root directory for details.</span>
|
|
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
|
|
<span class="c1"># ----------------------------------------------------------------------</span>
|
|
|
|
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">"Tristan Hoellinger"</span>
|
|
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">"0.1.0"</span>
|
|
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">"2024"</span>
|
|
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">"GPLv3"</span>
|
|
|
|
<span class="sd">"""Simbelmynë-related functions for the SelfiSys pipeline.</span>
|
|
<span class="sd">"""</span>
|
|
|
|
<span class="kn">import</span> <span class="nn">os</span>
|
|
<span class="kn">import</span> <span class="nn">gc</span>
|
|
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Tuple</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">selfisys.utils.logger</span> <span class="kn">import</span> <span class="n">getCustomLogger</span><span class="p">,</span> <span class="n">INDENT</span><span class="p">,</span> <span class="n">UNINDENT</span>
|
|
|
|
<span class="n">logger</span> <span class="o">=</span> <span class="n">getCustomLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
|
|
|
|
|
|
<div class="viewcode-block" id="get_power_spectrum_from_cosmo">
|
|
<a class="viewcode-back" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo">[docs]</a>
|
|
<span class="k">def</span> <span class="nf">get_power_spectrum_from_cosmo</span><span class="p">(</span>
|
|
<span class="n">L</span><span class="p">,</span>
|
|
<span class="n">size</span><span class="p">,</span>
|
|
<span class="n">cosmo</span><span class="p">,</span>
|
|
<span class="n">fname_power_spectrum</span><span class="p">,</span>
|
|
<span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Compute a power spectrum from cosmological parameters and save it to</span>
|
|
<span class="sd"> disk.</span>
|
|
|
|
<span class="sd"> Parameters</span>
|
|
<span class="sd"> ----------</span>
|
|
<span class="sd"> L : float</span>
|
|
<span class="sd"> Size of the simulation box (in Mpc/h).</span>
|
|
<span class="sd"> size : int</span>
|
|
<span class="sd"> Number of grid points along each axis.</span>
|
|
<span class="sd"> cosmo : dict</span>
|
|
<span class="sd"> Cosmological parameters (and infrastructure parameters).</span>
|
|
<span class="sd"> fname_power_spectrum : str</span>
|
|
<span class="sd"> Name (including path) of the power spectrum file to read/write.</span>
|
|
<span class="sd"> force : bool, optional</span>
|
|
<span class="sd"> If True, forces recomputation even if the file exists. Default</span>
|
|
<span class="sd"> is False.</span>
|
|
|
|
<span class="sd"> Raises</span>
|
|
<span class="sd"> ------</span>
|
|
<span class="sd"> OSError</span>
|
|
<span class="sd"> If file writing fails or the directory path is invalid.</span>
|
|
<span class="sd"> RuntimeError</span>
|
|
<span class="sd"> For unexpected issues during power spectrum computation.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">fname_power_spectrum</span><span class="p">)</span> <span class="ow">or</span> <span class="n">force</span><span class="p">:</span>
|
|
<span class="kn">from</span> <span class="nn">pysbmy.power</span> <span class="kn">import</span> <span class="n">PowerSpectrum</span>
|
|
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Computing power spectrum for L=</span><span class="si">%.2f</span><span class="s2">, size=</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
|
<span class="n">P</span> <span class="o">=</span> <span class="n">PowerSpectrum</span><span class="p">(</span><span class="n">L</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">cosmo</span><span class="p">)</span>
|
|
<span class="n">P</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_power_spectrum</span><span class="p">)</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Power spectrum written to </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">fname_power_spectrum</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"File write error at </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">fname_power_spectrum</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
|
<span class="k">raise</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">"Unexpected error in power spectrum computation: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
|
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"get_power_spectrum_from_cosmo failed."</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
|
|
<span class="k">finally</span><span class="p">:</span>
|
|
<span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span></div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="compute_Phi">
|
|
<a class="viewcode-back" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi">[docs]</a>
|
|
<span class="k">def</span> <span class="nf">compute_Phi</span><span class="p">(</span>
|
|
<span class="n">G_ss_path</span><span class="p">,</span>
|
|
<span class="n">P_ss_path</span><span class="p">,</span>
|
|
<span class="n">g_obj</span><span class="p">,</span>
|
|
<span class="n">norm</span><span class="p">,</span>
|
|
<span class="n">AliasingCorr</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
<span class="n">verbosity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Compute the summary statistics from a field object, based on a</span>
|
|
<span class="sd"> provided summary-statistics Fourier grid and baseline spectrum.</span>
|
|
|
|
<span class="sd"> Parameters</span>
|
|
<span class="sd"> ----------</span>
|
|
<span class="sd"> G_ss_path : str</span>
|
|
<span class="sd"> Path to the FourierGrid file used for summary-statistics.</span>
|
|
<span class="sd"> P_ss_path : str</span>
|
|
<span class="sd"> Path to the baseline power spectrum file for normalisation.</span>
|
|
<span class="sd"> g_obj : Field</span>
|
|
<span class="sd"> Input field object from which to compute summary statistics.</span>
|
|
<span class="sd"> norm : ndarray</span>
|
|
<span class="sd"> Normalisation constants for the summary statistics.</span>
|
|
<span class="sd"> AliasingCorr : bool, optional</span>
|
|
<span class="sd"> Whether to apply aliasing correction. Default is True.</span>
|
|
<span class="sd"> verbosity : int, optional</span>
|
|
<span class="sd"> Verbosity level (0=quiet, 1=normal, 2=debug). Default 1.</span>
|
|
|
|
<span class="sd"> Returns</span>
|
|
<span class="sd"> -------</span>
|
|
<span class="sd"> Phi : ndarray</span>
|
|
<span class="sd"> Vector of summary statistics.</span>
|
|
|
|
<span class="sd"> Raises</span>
|
|
<span class="sd"> ------</span>
|
|
<span class="sd"> OSError</span>
|
|
<span class="sd"> If file reading fails at G_ss_path or P_ss_path.</span>
|
|
<span class="sd"> RuntimeError</span>
|
|
<span class="sd"> If unexpected issues occur during computation.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="kn">from</span> <span class="nn">pysbmy.correlations</span> <span class="kn">import</span> <span class="n">get_autocorrelation</span>
|
|
<span class="kn">from</span> <span class="nn">pysbmy.power</span> <span class="kn">import</span> <span class="n">FourierGrid</span><span class="p">,</span> <span class="n">PowerSpectrum</span>
|
|
<span class="kn">from</span> <span class="nn">pysbmy</span> <span class="kn">import</span> <span class="n">c_double</span>
|
|
<span class="kn">from</span> <span class="nn">io</span> <span class="kn">import</span> <span class="n">BytesIO</span>
|
|
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Reading FourierGrid from </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">G_ss_path</span><span class="p">)</span>
|
|
<span class="n">G_ss</span> <span class="o">=</span> <span class="n">FourierGrid</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">G_ss_path</span><span class="p">)</span>
|
|
|
|
<span class="k">if</span> <span class="n">verbosity</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
|
<span class="n">Pk</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">get_autocorrelation</span><span class="p">(</span><span class="n">g_obj</span><span class="p">,</span> <span class="n">G_ss</span><span class="p">,</span> <span class="n">AliasingCorr</span><span class="o">=</span><span class="n">AliasingCorr</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="kn">from</span> <span class="nn">selfisys.utils.low_level</span> <span class="kn">import</span> <span class="n">stdout_redirector</span>
|
|
|
|
<span class="n">f</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">()</span>
|
|
<span class="k">with</span> <span class="n">stdout_redirector</span><span class="p">(</span><span class="n">f</span><span class="p">):</span>
|
|
<span class="n">Pk</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">get_autocorrelation</span><span class="p">(</span><span class="n">g_obj</span><span class="p">,</span> <span class="n">G_ss</span><span class="p">,</span> <span class="n">AliasingCorr</span><span class="o">=</span><span class="n">AliasingCorr</span><span class="p">)</span>
|
|
<span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
|
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Reading baseline PowerSpectrum from </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">P_ss_path</span><span class="p">)</span>
|
|
<span class="n">P_ss</span> <span class="o">=</span> <span class="n">PowerSpectrum</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">P_ss_path</span><span class="p">)</span>
|
|
<span class="n">Phi</span> <span class="o">=</span> <span class="n">Pk</span> <span class="o">/</span> <span class="p">(</span><span class="n">norm</span> <span class="o">*</span> <span class="n">P_ss</span><span class="o">.</span><span class="n">powerspectrum</span><span class="p">)</span>
|
|
|
|
<span class="k">del</span> <span class="n">G_ss</span><span class="p">,</span> <span class="n">P_ss</span>
|
|
<span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="n">Phi</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">c_double</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"File not found or inaccessible: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
|
<span class="k">raise</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">"Unexpected error in compute_Phi: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
|
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"compute_Phi failed."</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
|
|
<span class="k">finally</span><span class="p">:</span>
|
|
<span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span></div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="generate_white_noise_Field">
|
|
<a class="viewcode-back" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field">[docs]</a>
|
|
<span class="k">def</span> <span class="nf">generate_white_noise_Field</span><span class="p">(</span>
|
|
<span class="n">L</span><span class="p">,</span>
|
|
<span class="n">size</span><span class="p">,</span>
|
|
<span class="n">seedphase</span><span class="p">,</span>
|
|
<span class="n">fname_whitenoise</span><span class="p">,</span>
|
|
<span class="n">seedname_whitenoise</span><span class="p">,</span>
|
|
<span class="n">force_phase</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Generate a white noise realisation in physical space and write it to</span>
|
|
<span class="sd"> disk.</span>
|
|
|
|
<span class="sd"> Parameters</span>
|
|
<span class="sd"> ----------</span>
|
|
<span class="sd"> L : float</span>
|
|
<span class="sd"> Size of the simulation box (in Mpc/h).</span>
|
|
<span class="sd"> size : int</span>
|
|
<span class="sd"> Number of grid points along each axis.</span>
|
|
<span class="sd"> seedphase : int or list of int</span>
|
|
<span class="sd"> User-provided seed to generate the initial white noise.</span>
|
|
<span class="sd"> fname_whitenoise : str</span>
|
|
<span class="sd"> File path to write the white noise realisation.</span>
|
|
<span class="sd"> seedname_whitenoise : str</span>
|
|
<span class="sd"> File path to write the seed state of the RNG.</span>
|
|
<span class="sd"> force_phase : bool, optional</span>
|
|
<span class="sd"> If True, forces regeneration of the random phases. Default is</span>
|
|
<span class="sd"> False.</span>
|
|
|
|
<span class="sd"> Raises</span>
|
|
<span class="sd"> ------</span>
|
|
<span class="sd"> OSError</span>
|
|
<span class="sd"> If file writing fails or directory paths are invalid.</span>
|
|
<span class="sd"> RuntimeError</span>
|
|
<span class="sd"> For unexpected issues.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">fname_whitenoise</span><span class="p">)</span> <span class="ow">or</span> <span class="n">force_phase</span><span class="p">:</span>
|
|
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
|
<span class="kn">from</span> <span class="nn">pysbmy.field</span> <span class="kn">import</span> <span class="n">BaseField</span>
|
|
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Generating white noise for L=</span><span class="si">%.2f</span><span class="s2">, size=</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
|
<span class="n">rng</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">default_rng</span><span class="p">(</span><span class="n">seedphase</span><span class="p">)</span>
|
|
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Saving RNG state to </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">seedname_whitenoise</span><span class="p">)</span>
|
|
<span class="n">np</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">seedname_whitenoise</span><span class="p">,</span> <span class="n">rng</span><span class="o">.</span><span class="n">bit_generator</span><span class="o">.</span><span class="n">state</span><span class="p">)</span>
|
|
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">seedname_whitenoise</span> <span class="o">+</span> <span class="s2">".txt"</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
|
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">rng</span><span class="o">.</span><span class="n">bit_generator</span><span class="o">.</span><span class="n">state</span><span class="p">))</span>
|
|
|
|
<span class="n">data</span> <span class="o">=</span> <span class="n">rng</span><span class="o">.</span><span class="n">standard_normal</span><span class="p">(</span><span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="o">**</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="n">wn</span> <span class="o">=</span> <span class="n">BaseField</span><span class="p">(</span><span class="n">L</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
|
|
<span class="k">del</span> <span class="n">data</span>
|
|
|
|
<span class="n">wn</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_whitenoise</span><span class="p">)</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"White noise field written to </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">fname_whitenoise</span><span class="p">)</span>
|
|
<span class="k">del</span> <span class="n">wn</span>
|
|
<span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Writing white noise failed at '</span><span class="si">%s</span><span class="s2">': </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">fname_whitenoise</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
|
<span class="k">raise</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">"Unexpected error in generate_white_noise_Field: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
|
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"generate_white_noise_Field failed."</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
|
|
<span class="k">finally</span><span class="p">:</span>
|
|
<span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span></div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="setup_sbmy_parfiles">
|
|
<a class="viewcode-back" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles">[docs]</a>
|
|
<span class="k">def</span> <span class="nf">setup_sbmy_parfiles</span><span class="p">(</span>
|
|
<span class="n">d</span><span class="p">,</span>
|
|
<span class="n">cosmology</span><span class="p">,</span>
|
|
<span class="n">file_names</span><span class="p">,</span>
|
|
<span class="n">hiddenbox_params</span><span class="p">,</span>
|
|
<span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Set up Simbelmynë parameter file (please refer to the Simbelmynë</span>
|
|
<span class="sd"> documentation for more details).</span>
|
|
|
|
<span class="sd"> Parameters</span>
|
|
<span class="sd"> ----------</span>
|
|
<span class="sd"> d : int</span>
|
|
<span class="sd"> Index (from 1 to S) specifying a direction in parameter space, 0</span>
|
|
<span class="sd"> for the expansion point, or -1 for mock data.</span>
|
|
<span class="sd"> cosmology : array, double, dimension=5</span>
|
|
<span class="sd"> Cosmological parameters.</span>
|
|
<span class="sd"> file_names : dict</span>
|
|
<span class="sd"> Dictionary containing the names of the input/output files for</span>
|
|
<span class="sd"> the simulation.</span>
|
|
<span class="sd"> hiddenbox_params : dict</span>
|
|
<span class="sd"> See the `HiddenBox` class for more details.</span>
|
|
<span class="sd"> force : bool, optional, default=False</span>
|
|
<span class="sd"> If True, forces recompute the simulation parameter files.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
<span class="kn">from</span> <span class="nn">os.path</span> <span class="kn">import</span> <span class="n">exists</span>
|
|
|
|
<span class="n">fname_simparfile</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_simparfile"</span><span class="p">]</span>
|
|
<span class="n">fname_power_spectrum</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_power_spectrum"</span><span class="p">]</span>
|
|
<span class="n">fname_whitenoise</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_whitenoise"</span><span class="p">]</span>
|
|
<span class="n">fname_outputinitialdensity</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_outputinitialdensity"</span><span class="p">]</span>
|
|
<span class="n">fnames_outputrealspacedensity</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fnames_outputrealspacedensity"</span><span class="p">]</span>
|
|
<span class="n">fnames_outputdensity</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fnames_outputdensity"</span><span class="p">]</span>
|
|
<span class="n">fnames_outputLPTdensity</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fnames_outputLPTdensity"</span><span class="p">]</span>
|
|
|
|
<span class="n">Npop</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"Npop"</span><span class="p">]</span>
|
|
<span class="n">Np0</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"Np0"</span><span class="p">]</span>
|
|
<span class="n">Npm0</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"Npm0"</span><span class="p">]</span>
|
|
<span class="n">size</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"size"</span><span class="p">]</span>
|
|
<span class="n">L</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"L"</span><span class="p">]</span>
|
|
<span class="n">Ntimesteps</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"Ntimesteps"</span><span class="p">]</span>
|
|
<span class="n">sim_params</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"sim_params"</span><span class="p">]</span>
|
|
<span class="n">eff_redshifts</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"eff_redshifts"</span><span class="p">]</span>
|
|
<span class="n">TimeSteps</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"TimeSteps"</span><span class="p">]</span>
|
|
<span class="n">TimeStepDistribution</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"TimeStepDistribution"</span><span class="p">]</span>
|
|
<span class="n">modified_selfi</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"modified_selfi"</span><span class="p">]</span>
|
|
<span class="n">fsimdir</span> <span class="o">=</span> <span class="n">hiddenbox_params</span><span class="p">[</span><span class="s2">"fsimdir"</span><span class="p">]</span>
|
|
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">exists</span><span class="p">(</span><span class="n">fname_simparfile</span> <span class="o">+</span> <span class="s2">"_</span><span class="si">{}</span><span class="s2">.sbmy"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">Npop</span><span class="p">))</span> <span class="ow">or</span> <span class="n">force</span><span class="p">:</span>
|
|
<span class="kn">from</span> <span class="nn">pysbmy</span> <span class="kn">import</span> <span class="n">param_file</span>
|
|
<span class="kn">from</span> <span class="nn">re</span> <span class="kn">import</span> <span class="n">search</span>
|
|
<span class="kn">from</span> <span class="nn">selfisys.global_parameters</span> <span class="kn">import</span> <span class="n">BASEID_OBS</span>
|
|
|
|
<span class="k">if</span> <span class="n">TimeSteps</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">eff_redshifts</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"TimeSteps must be provided if eff_redshifts is None."</span><span class="p">)</span>
|
|
|
|
<span class="n">regex</span> <span class="o">=</span> <span class="sa">r</span><span class="s2">"([a-zA-Z]+)(\d+)?([a-zA-Z]+)?(\d+)?([a-zA-Z]+)?"</span>
|
|
<span class="n">m</span> <span class="o">=</span> <span class="n">search</span><span class="p">(</span><span class="n">regex</span><span class="p">,</span> <span class="n">sim_params</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"std"</span><span class="p">:</span>
|
|
<span class="c1"># Single LPT+COLA/PM Simbelmynë data card with linear time</span>
|
|
<span class="c1"># stepping</span>
|
|
<span class="k">if</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"0"</span><span class="p">:</span>
|
|
<span class="n">RedshiftLPT</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="s2">"0."</span> <span class="o">+</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)[</span><span class="mi">1</span><span class="p">:])</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">RedshiftLPT</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span>
|
|
|
|
<span class="n">RedshiftFCs</span> <span class="o">=</span> <span class="mf">0.0</span>
|
|
<span class="n">WriteLPTSnapshot</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="n">WriteLPTDensity</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="k">match</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
|
|
<span class="k">case</span> <span class="s2">"RSD"</span><span class="p">:</span>
|
|
<span class="n">ModulePMCOLA</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="n">EvolutionMode</span> <span class="o">=</span> <span class="mi">2</span>
|
|
<span class="n">NumberOfTimeSteps</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="n">RedshiftFCs</span> <span class="o">=</span> <span class="n">RedshiftLPT</span>
|
|
<span class="n">NonLinearRSD</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="k">case</span> <span class="s2">"PM"</span><span class="p">:</span>
|
|
<span class="n">ModulePMCOLA</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="n">EvolutionMode</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="n">NumberOfTimeSteps</span> <span class="o">=</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
|
<span class="n">NonLinearRSD</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">if</span> <span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="ow">and</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">5</span><span class="p">)[:</span><span class="mi">3</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"lin"</span><span class="p">)</span> <span class="k">else</span> <span class="mi">1</span>
|
|
<span class="k">case</span> <span class="s2">"COLA"</span><span class="p">:</span>
|
|
<span class="n">ModulePMCOLA</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="n">EvolutionMode</span> <span class="o">=</span> <span class="mi">2</span>
|
|
<span class="n">NumberOfTimeSteps</span> <span class="o">=</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
|
<span class="n">NonLinearRSD</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">if</span> <span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="ow">and</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">5</span><span class="p">)[:</span><span class="mi">3</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"lin"</span><span class="p">)</span> <span class="k">else</span> <span class="mi">1</span>
|
|
<span class="k">case</span><span class="w"> </span><span class="k">_</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"sim_params = </span><span class="si">{}</span><span class="s2"> not valid"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">sim_params</span><span class="p">))</span>
|
|
<span class="n">NumberOfTimeSteps</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">4</span><span class="p">))</span> <span class="k">if</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="mi">0</span>
|
|
<span class="k">elif</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"custom"</span><span class="p">:</span>
|
|
<span class="c1"># Single LPT+COLA/PM Simbelmynë card with user-provided time</span>
|
|
<span class="c1"># stepping object</span>
|
|
<span class="n">RedshiftLPT</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span>
|
|
<span class="k">match</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
|
|
<span class="k">case</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="n">ModulePMCOLA</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="n">EvolutionMode</span> <span class="o">=</span> <span class="mi">2</span>
|
|
<span class="k">case</span> <span class="s2">"PM"</span><span class="p">:</span>
|
|
<span class="n">ModulePMCOLA</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="n">EvolutionMode</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="n">NonLinearRSD</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">if</span> <span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="ow">and</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">5</span><span class="p">)[:</span><span class="mi">3</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"lin"</span><span class="p">)</span> <span class="k">else</span> <span class="mi">1</span>
|
|
<span class="k">case</span> <span class="s2">"COLA"</span><span class="p">:</span>
|
|
<span class="n">ModulePMCOLA</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="n">EvolutionMode</span> <span class="o">=</span> <span class="mi">2</span>
|
|
<span class="n">NonLinearRSD</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">if</span> <span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="ow">and</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">5</span><span class="p">)[:</span><span class="mi">3</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"lin"</span><span class="p">)</span> <span class="k">else</span> <span class="mi">1</span>
|
|
<span class="k">case</span><span class="w"> </span><span class="k">_</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"sim_params = </span><span class="si">{}</span><span class="s2"> not valid"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">sim_params</span><span class="p">))</span>
|
|
<span class="k">if</span> <span class="n">TimeStepDistribution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"TimeStepDistribution must be provided for 'custom'."</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"splitLPT"</span><span class="p">:</span>
|
|
<span class="c1"># Use as many Simbelmynë data cards as there are populations</span>
|
|
<span class="c1"># of galaxies</span>
|
|
<span class="k">if</span> <span class="n">eff_redshifts</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"eff_redshifts must be provided for 'splitLPT'."</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">eff_redshifts</span><span class="p">)</span> <span class="o">!=</span> <span class="n">Ntimesteps</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"len(eff_redshifts) != Ntimesteps"</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"split"</span><span class="p">:</span>
|
|
<span class="c1"># Use as many Simbelmynë data cards as there are populations</span>
|
|
<span class="c1"># of galaxies</span>
|
|
<span class="k">if</span> <span class="n">TimeStepDistribution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"TimeStepDistribution must be for 'split'."</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">eff_redshifts</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"eff_redshifts must be provided for 'split'."</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">eff_redshifts</span><span class="p">)</span> <span class="o">!=</span> <span class="n">Ntimesteps</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"len(eff_redshifts) != Ntimesteps"</span><span class="p">)</span>
|
|
|
|
<span class="n">RedshiftLPT</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span>
|
|
<span class="k">match</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
|
|
<span class="k">case</span> <span class="s2">"RSD"</span><span class="p">:</span>
|
|
<span class="n">ModulePMCOLA</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="n">EvolutionMode</span> <span class="o">=</span> <span class="mi">2</span>
|
|
<span class="n">NonLinearRSD</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="k">case</span><span class="w"> </span><span class="k">_</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"sim_params = </span><span class="si">{}</span><span class="s2"> not valid"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">sim_params</span><span class="p">))</span>
|
|
<span class="n">NumberOfTimeSteps</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">4</span><span class="p">))</span> <span class="k">if</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="mi">0</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"sim_params = </span><span class="si">{}</span><span class="s2"> not valid"</span> <span class="o">+</span> <span class="n">sim_params</span><span class="p">)</span>
|
|
|
|
<span class="k">if</span> <span class="n">sim_params</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">:]</span> <span class="o">==</span> <span class="n">BASEID_OBS</span><span class="p">:</span>
|
|
<span class="kn">from</span> <span class="nn">selfisys.global_parameters</span> <span class="kn">import</span> <span class="p">(</span>
|
|
<span class="n">h_obs</span> <span class="k">as</span> <span class="n">h</span><span class="p">,</span>
|
|
<span class="n">Omega_b_obs</span> <span class="k">as</span> <span class="n">Omega_b</span><span class="p">,</span>
|
|
<span class="n">Omega_m_obs</span> <span class="k">as</span> <span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">nS_obs</span> <span class="k">as</span> <span class="n">nS</span><span class="p">,</span>
|
|
<span class="n">sigma8_obs</span> <span class="k">as</span> <span class="n">sigma8</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="n">modified_selfi</span><span class="p">:</span>
|
|
<span class="c1"># Treat the cosmological parameters as nuisance</span>
|
|
<span class="c1"># parameters within the hidden box forward model</span>
|
|
<span class="n">h</span><span class="p">,</span> <span class="n">Omega_b</span><span class="p">,</span> <span class="n">Omega_m</span><span class="p">,</span> <span class="n">nS</span><span class="p">,</span> <span class="n">sigma8</span> <span class="o">=</span> <span class="n">cosmology</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="c1"># Fix the fiducial cosmology within the hidden box</span>
|
|
<span class="kn">from</span> <span class="nn">selfisys.global_parameters</span> <span class="kn">import</span> <span class="p">(</span>
|
|
<span class="n">h_planck</span> <span class="k">as</span> <span class="n">h</span><span class="p">,</span>
|
|
<span class="n">Omega_b_planck</span> <span class="k">as</span> <span class="n">Omega_b</span><span class="p">,</span>
|
|
<span class="n">Omega_m_planck</span> <span class="k">as</span> <span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">nS_planck</span> <span class="k">as</span> <span class="n">nS</span><span class="p">,</span>
|
|
<span class="n">sigma8_planck</span> <span class="k">as</span> <span class="n">sigma8</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="k">if</span> <span class="n">d</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span> <span class="c1"># -1 for mock data, -2 to recompute the observations</span>
|
|
<span class="n">WriteInitialConditions</span> <span class="o">=</span> <span class="mi">1</span>
|
|
<span class="n">WriteDensities</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1"># also write real space density fields</span>
|
|
<span class="k">else</span><span class="p">:</span> <span class="c1"># d=0 for expansion point or d>0 for the gradients</span>
|
|
<span class="n">WriteInitialConditions</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="n">WriteDensities</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1"># also write real space density fields</span>
|
|
|
|
<span class="k">if</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"std"</span><span class="p">:</span>
|
|
<span class="n">S</span> <span class="o">=</span> <span class="n">param_file</span><span class="p">(</span> <span class="c1">## Module LPT ##</span>
|
|
<span class="n">ModuleLPT</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="c1"># Basic setup:</span>
|
|
<span class="n">Particles</span><span class="o">=</span><span class="n">Np0</span><span class="p">,</span>
|
|
<span class="n">Mesh</span><span class="o">=</span><span class="n">size</span><span class="p">,</span>
|
|
<span class="n">BoxSize</span><span class="o">=</span><span class="n">L</span><span class="p">,</span>
|
|
<span class="n">corner0</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner1</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner2</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="c1"># Initial conditions:</span>
|
|
<span class="n">ICsMode</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteICsRngState</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteInitialConditions</span><span class="o">=</span><span class="n">WriteInitialConditions</span><span class="p">,</span>
|
|
<span class="n">InputWhiteNoise</span><span class="o">=</span><span class="n">fname_whitenoise</span><span class="p">,</span>
|
|
<span class="n">OutputInitialConditions</span><span class="o">=</span><span class="n">fname_outputinitialdensity</span><span class="p">,</span>
|
|
<span class="c1"># Power spectrum:</span>
|
|
<span class="n">InputPowerSpectrum</span><span class="o">=</span><span class="n">fname_power_spectrum</span><span class="p">,</span>
|
|
<span class="c1"># Final conditions for LPT:</span>
|
|
<span class="n">RedshiftLPT</span><span class="o">=</span><span class="n">RedshiftLPT</span><span class="p">,</span>
|
|
<span class="n">WriteLPTSnapshot</span><span class="o">=</span><span class="n">WriteLPTSnapshot</span><span class="p">,</span>
|
|
<span class="n">WriteLPTDensity</span><span class="o">=</span><span class="n">WriteLPTDensity</span><span class="p">,</span>
|
|
<span class="n">OutputLPTDensity</span><span class="o">=</span><span class="n">fnames_outputLPTdensity</span><span class="p">,</span>
|
|
<span class="c1">####################</span>
|
|
<span class="c1">## Module PM/COLA ##</span>
|
|
<span class="c1">####################</span>
|
|
<span class="n">ModulePMCOLA</span><span class="o">=</span><span class="n">ModulePMCOLA</span><span class="p">,</span>
|
|
<span class="n">EvolutionMode</span><span class="o">=</span><span class="n">EvolutionMode</span><span class="p">,</span> <span class="c1"># 1 for PM, 2 for COLA</span>
|
|
<span class="n">ParticleMesh</span><span class="o">=</span><span class="n">Npm0</span><span class="p">,</span>
|
|
<span class="n">NumberOfTimeSteps</span><span class="o">=</span><span class="n">NumberOfTimeSteps</span><span class="p">,</span>
|
|
<span class="c1"># Final snapshot:</span>
|
|
<span class="n">RedshiftFCs</span><span class="o">=</span><span class="n">RedshiftFCs</span><span class="p">,</span>
|
|
<span class="n">WriteFinalSnapshot</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteFinalDensity</span><span class="o">=</span><span class="n">WriteDensities</span><span class="p">,</span>
|
|
<span class="n">OutputFinalDensity</span><span class="o">=</span><span class="n">fnames_outputrealspacedensity</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
|
<span class="c1">#########</span>
|
|
<span class="c1">## RSD ##</span>
|
|
<span class="c1">#########</span>
|
|
<span class="n">ModuleRSD</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteIntermediaryRSD</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">DoNonLinearMapping</span><span class="o">=</span><span class="n">NonLinearRSD</span><span class="p">,</span>
|
|
<span class="n">WriteRSDensity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputRSDensity</span><span class="o">=</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="c1">## Cosmological parameters ##</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="n">h</span><span class="o">=</span><span class="n">h</span><span class="p">,</span>
|
|
<span class="n">Omega_q</span><span class="o">=</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_b</span><span class="o">=</span><span class="n">Omega_b</span><span class="p">,</span>
|
|
<span class="n">Omega_m</span><span class="o">=</span><span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_k</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">n_s</span><span class="o">=</span><span class="n">nS</span><span class="p">,</span>
|
|
<span class="n">sigma8</span><span class="o">=</span><span class="n">sigma8</span><span class="p">,</span>
|
|
<span class="n">w0_fld</span><span class="o">=-</span><span class="mf">1.0</span><span class="p">,</span>
|
|
<span class="n">wa_fld</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">S</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_simparfile</span> <span class="o">+</span> <span class="s2">"_</span><span class="si">{}</span><span class="s2">.sbmy"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">Npop</span><span class="p">))</span>
|
|
<span class="k">elif</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"custom"</span><span class="p">:</span>
|
|
<span class="n">RedshiftFCs</span> <span class="o">=</span> <span class="n">eff_redshifts</span>
|
|
<span class="n">fname_outputdensity</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="n">fnames_outputdensity</span><span class="p">[</span><span class="mi">0</span><span class="p">][:</span> <span class="n">fnames_outputdensity</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s2">"_"</span><span class="p">)]</span> <span class="o">+</span> <span class="s2">".h5"</span>
|
|
<span class="p">)</span>
|
|
<span class="n">S</span> <span class="o">=</span> <span class="n">param_file</span><span class="p">(</span> <span class="c1">## Module LPT ##</span>
|
|
<span class="n">ModuleLPT</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="c1"># Basic setup:</span>
|
|
<span class="n">Particles</span><span class="o">=</span><span class="n">Np0</span><span class="p">,</span>
|
|
<span class="n">Mesh</span><span class="o">=</span><span class="n">size</span><span class="p">,</span>
|
|
<span class="n">BoxSize</span><span class="o">=</span><span class="n">L</span><span class="p">,</span>
|
|
<span class="n">corner0</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner1</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner2</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="c1"># Initial conditions:</span>
|
|
<span class="n">ICsMode</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteICsRngState</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteInitialConditions</span><span class="o">=</span><span class="n">WriteInitialConditions</span><span class="p">,</span>
|
|
<span class="n">InputWhiteNoise</span><span class="o">=</span><span class="n">fname_whitenoise</span><span class="p">,</span>
|
|
<span class="n">OutputInitialConditions</span><span class="o">=</span><span class="n">fname_outputinitialdensity</span><span class="p">,</span>
|
|
<span class="c1"># Power spectrum:</span>
|
|
<span class="n">InputPowerSpectrum</span><span class="o">=</span><span class="n">fname_power_spectrum</span><span class="p">,</span>
|
|
<span class="c1"># Final conditions for LPT:</span>
|
|
<span class="n">RedshiftLPT</span><span class="o">=</span><span class="n">RedshiftLPT</span><span class="p">,</span>
|
|
<span class="n">WriteLPTSnapshot</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteLPTDensity</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="c1">####################</span>
|
|
<span class="c1">## Module PM/COLA ##</span>
|
|
<span class="c1">####################</span>
|
|
<span class="n">ModulePMCOLA</span><span class="o">=</span><span class="n">ModulePMCOLA</span><span class="p">,</span>
|
|
<span class="n">EvolutionMode</span><span class="o">=</span><span class="n">EvolutionMode</span><span class="p">,</span> <span class="c1"># 1 for PM, 2 for COLA</span>
|
|
<span class="n">ParticleMesh</span><span class="o">=</span><span class="n">Npm0</span><span class="p">,</span>
|
|
<span class="n">OutputKickBase</span><span class="o">=</span><span class="n">fsimdir</span> <span class="o">+</span> <span class="s2">"/data/cola_kick_"</span><span class="p">,</span>
|
|
<span class="c1"># Final snapshot:</span>
|
|
<span class="n">RedshiftFCs</span><span class="o">=</span><span class="n">RedshiftFCs</span><span class="p">,</span>
|
|
<span class="n">WriteFinalSnapshot</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteFinalDensity</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">OutputFinalDensity</span><span class="o">=</span><span class="n">fnames_outputrealspacedensity</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
|
<span class="c1"># Intermediate snapshots:</span>
|
|
<span class="n">WriteSnapshots</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteDensities</span><span class="o">=</span><span class="n">WriteDensities</span><span class="p">,</span>
|
|
<span class="n">OutputDensitiesBase</span><span class="o">=</span><span class="n">fnames_outputrealspacedensity</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span>
|
|
<span class="p">:</span> <span class="n">fnames_outputrealspacedensity</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s2">"_"</span><span class="p">)</span>
|
|
<span class="p">]</span>
|
|
<span class="o">+</span> <span class="s2">"_"</span><span class="p">,</span>
|
|
<span class="n">OutputDensitiesExt</span><span class="o">=</span><span class="s2">".h5"</span><span class="p">,</span>
|
|
<span class="c1">############################</span>
|
|
<span class="c1">## Time step distribution ##</span>
|
|
<span class="c1">############################</span>
|
|
<span class="n">TimeStepDistribution</span><span class="o">=</span><span class="n">TimeStepDistribution</span><span class="p">,</span>
|
|
<span class="n">ModifiedDiscretization</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="c1"># Modified KD discretisation</span>
|
|
<span class="n">n_LPT</span><span class="o">=-</span><span class="mf">2.5</span><span class="p">,</span> <span class="c1"># Exponent for the Ansatz in KD operators</span>
|
|
<span class="c1">#########</span>
|
|
<span class="c1">## RSD ##</span>
|
|
<span class="c1">#########</span>
|
|
<span class="n">ModuleRSD</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteIntermediaryRSD</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">DoNonLinearMapping</span><span class="o">=</span><span class="n">NonLinearRSD</span><span class="p">,</span>
|
|
<span class="n">WriteRSDensity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputRSDensity</span><span class="o">=</span><span class="n">fname_outputdensity</span><span class="p">,</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="c1">## Cosmological parameters ##</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="n">h</span><span class="o">=</span><span class="n">h</span><span class="p">,</span>
|
|
<span class="n">Omega_q</span><span class="o">=</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_b</span><span class="o">=</span><span class="n">Omega_b</span><span class="p">,</span>
|
|
<span class="n">Omega_m</span><span class="o">=</span><span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_k</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">n_s</span><span class="o">=</span><span class="n">nS</span><span class="p">,</span>
|
|
<span class="n">sigma8</span><span class="o">=</span><span class="n">sigma8</span><span class="p">,</span>
|
|
<span class="n">w0_fld</span><span class="o">=-</span><span class="mf">1.0</span><span class="p">,</span>
|
|
<span class="n">wa_fld</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">S</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_simparfile</span> <span class="o">+</span> <span class="s2">"_</span><span class="si">{}</span><span class="s2">.sbmy"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">Npop</span><span class="p">))</span>
|
|
<span class="k">elif</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"split"</span><span class="p">:</span>
|
|
<span class="n">datadir</span> <span class="o">=</span> <span class="n">fsimdir</span> <span class="o">+</span> <span class="s2">"/data/"</span>
|
|
<span class="n">RedshiftFCs</span> <span class="o">=</span> <span class="n">eff_redshifts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
|
|
<span class="c1"># Write the parameter file for the first simulation</span>
|
|
<span class="n">S</span> <span class="o">=</span> <span class="n">param_file</span><span class="p">(</span>
|
|
<span class="c1">################</span>
|
|
<span class="c1">## Module LPT ##</span>
|
|
<span class="c1">################</span>
|
|
<span class="n">ModuleLPT</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="c1"># Basic setup:</span>
|
|
<span class="n">Particles</span><span class="o">=</span><span class="n">Np0</span><span class="p">,</span>
|
|
<span class="n">Mesh</span><span class="o">=</span><span class="n">size</span><span class="p">,</span>
|
|
<span class="n">BoxSize</span><span class="o">=</span><span class="n">L</span><span class="p">,</span>
|
|
<span class="n">corner0</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner1</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner2</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="c1"># Initial conditions:</span>
|
|
<span class="n">ICsMode</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteICsRngState</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteInitialConditions</span><span class="o">=</span><span class="n">WriteInitialConditions</span><span class="p">,</span>
|
|
<span class="n">InputWhiteNoise</span><span class="o">=</span><span class="n">fname_whitenoise</span><span class="p">,</span>
|
|
<span class="n">OutputInitialConditions</span><span class="o">=</span><span class="n">fname_outputinitialdensity</span><span class="p">,</span>
|
|
<span class="c1"># Power spectrum:</span>
|
|
<span class="n">InputPowerSpectrum</span><span class="o">=</span><span class="n">fname_power_spectrum</span><span class="p">,</span>
|
|
<span class="c1"># Final conditions for LPT:</span>
|
|
<span class="n">RedshiftLPT</span><span class="o">=</span><span class="n">RedshiftLPT</span><span class="p">,</span>
|
|
<span class="n">WriteLPTSnapshot</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteLPTDensity</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="c1">####################</span>
|
|
<span class="c1">## Module PM/COLA ##</span>
|
|
<span class="c1">####################</span>
|
|
<span class="n">ModulePMCOLA</span><span class="o">=</span><span class="n">ModulePMCOLA</span><span class="p">,</span>
|
|
<span class="n">EvolutionMode</span><span class="o">=</span><span class="n">EvolutionMode</span><span class="p">,</span>
|
|
<span class="n">ParticleMesh</span><span class="o">=</span><span class="n">Npm0</span><span class="p">,</span>
|
|
<span class="n">OutputKickBase</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"cola_kick_0_"</span><span class="p">,</span>
|
|
<span class="c1"># Final snapshot:</span>
|
|
<span class="n">RedshiftFCs</span><span class="o">=</span><span class="n">RedshiftFCs</span><span class="p">,</span>
|
|
<span class="n">WriteFinalSnapshot</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputFinalSnapshot</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"cola_snapshot_0.gadget3"</span><span class="p">,</span>
|
|
<span class="n">WriteFinalDensity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputFinalDensity</span><span class="o">=</span><span class="n">fnames_outputrealspacedensity</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
|
<span class="n">WriteLPTDisplacements</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputPsiLPT1</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"lpt_psi1_0.h5"</span><span class="p">,</span>
|
|
<span class="n">OutputPsiLPT2</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"lpt_psi2_0.h5"</span><span class="p">,</span>
|
|
<span class="c1">############################</span>
|
|
<span class="c1">## Time step distribution ##</span>
|
|
<span class="c1">############################</span>
|
|
<span class="n">TimeStepDistribution</span><span class="o">=</span><span class="n">TimeStepDistribution</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
|
<span class="n">ModifiedDiscretization</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="c1">#########</span>
|
|
<span class="c1">## RSD ##</span>
|
|
<span class="c1">#########</span>
|
|
<span class="n">ModuleRSD</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteIntermediaryRSD</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">DoNonLinearMapping</span><span class="o">=</span><span class="n">NonLinearRSD</span><span class="p">,</span>
|
|
<span class="n">WriteRSDensity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputRSDensity</span><span class="o">=</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="c1">## Cosmological parameters ##</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="n">h</span><span class="o">=</span><span class="n">h</span><span class="p">,</span>
|
|
<span class="n">Omega_q</span><span class="o">=</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_b</span><span class="o">=</span><span class="n">Omega_b</span><span class="p">,</span>
|
|
<span class="n">Omega_m</span><span class="o">=</span><span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_k</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">n_s</span><span class="o">=</span><span class="n">nS</span><span class="p">,</span>
|
|
<span class="n">sigma8</span><span class="o">=</span><span class="n">sigma8</span><span class="p">,</span>
|
|
<span class="n">w0_fld</span><span class="o">=-</span><span class="mf">1.0</span><span class="p">,</span>
|
|
<span class="n">wa_fld</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">S</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_simparfile</span> <span class="o">+</span> <span class="s2">"_pop0.sbmy"</span><span class="p">)</span>
|
|
|
|
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">Ntimesteps</span><span class="p">):</span>
|
|
<span class="n">RedshiftFCs</span> <span class="o">=</span> <span class="n">eff_redshifts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
|
|
|
<span class="n">S</span> <span class="o">=</span> <span class="n">param_file</span><span class="p">(</span>
|
|
<span class="n">ModuleLPT</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="c1"># Basic setup:</span>
|
|
<span class="n">Particles</span><span class="o">=</span><span class="n">Np0</span><span class="p">,</span>
|
|
<span class="n">Mesh</span><span class="o">=</span><span class="n">size</span><span class="p">,</span>
|
|
<span class="n">BoxSize</span><span class="o">=</span><span class="n">L</span><span class="p">,</span>
|
|
<span class="n">corner0</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner1</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner2</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">InputPsiLPT1</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"lpt_psi1_0.h5"</span><span class="p">,</span>
|
|
<span class="n">InputPsiLPT2</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"lpt_psi2_0.h5"</span><span class="p">,</span>
|
|
<span class="c1">####################</span>
|
|
<span class="c1">## Module PM/COLA ##</span>
|
|
<span class="c1">####################</span>
|
|
<span class="n">ModulePMCOLA</span><span class="o">=</span><span class="n">ModulePMCOLA</span><span class="p">,</span>
|
|
<span class="n">InputPMCOLASnapshot</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"cola_snapshot_</span><span class="si">{:d}</span><span class="s2">.gadget3"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">),</span>
|
|
<span class="n">EvolutionMode</span><span class="o">=</span><span class="n">EvolutionMode</span><span class="p">,</span>
|
|
<span class="n">ParticleMesh</span><span class="o">=</span><span class="n">Npm0</span><span class="p">,</span>
|
|
<span class="n">OutputKickBase</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"cola_kick_</span><span class="si">{:d}</span><span class="s2">_"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="p">),</span>
|
|
<span class="c1"># Final snapshot:</span>
|
|
<span class="n">RedshiftFCs</span><span class="o">=</span><span class="n">RedshiftFCs</span><span class="p">,</span>
|
|
<span class="n">WriteFinalSnapshot</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputFinalSnapshot</span><span class="o">=</span><span class="n">datadir</span> <span class="o">+</span> <span class="s2">"cola_snapshot_</span><span class="si">{:d}</span><span class="s2">.gadget3"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="p">),</span>
|
|
<span class="n">WriteFinalDensity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputFinalDensity</span><span class="o">=</span><span class="n">fnames_outputrealspacedensity</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="n">i</span><span class="p">],</span>
|
|
<span class="n">WriteLPTDisplacements</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="c1">############################</span>
|
|
<span class="c1">## Time step distribution ##</span>
|
|
<span class="c1">############################</span>
|
|
<span class="n">TimeStepDistribution</span><span class="o">=</span><span class="n">TimeStepDistribution</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
|
|
<span class="n">ModifiedDiscretization</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="c1">#########</span>
|
|
<span class="c1">## RSD ##</span>
|
|
<span class="c1">#########</span>
|
|
<span class="n">ModuleRSD</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteIntermediaryRSD</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">DoNonLinearMapping</span><span class="o">=</span><span class="n">NonLinearRSD</span><span class="p">,</span>
|
|
<span class="n">WriteRSDensity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputRSDensity</span><span class="o">=</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="c1">## Cosmological parameters ##</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="n">h</span><span class="o">=</span><span class="n">h</span><span class="p">,</span>
|
|
<span class="n">Omega_q</span><span class="o">=</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_b</span><span class="o">=</span><span class="n">Omega_b</span><span class="p">,</span>
|
|
<span class="n">Omega_m</span><span class="o">=</span><span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_k</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">n_s</span><span class="o">=</span><span class="n">nS</span><span class="p">,</span>
|
|
<span class="n">sigma8</span><span class="o">=</span><span class="n">sigma8</span><span class="p">,</span>
|
|
<span class="n">w0_fld</span><span class="o">=-</span><span class="mf">1.0</span><span class="p">,</span>
|
|
<span class="n">wa_fld</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">S</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_simparfile</span> <span class="o">+</span> <span class="s2">"_pop</span><span class="si">{}</span><span class="s2">.sbmy"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="p">))</span>
|
|
<span class="k">elif</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"splitLPT"</span><span class="p">:</span>
|
|
<span class="n">datadir</span> <span class="o">=</span> <span class="n">fsimdir</span> <span class="o">+</span> <span class="s2">"/data/"</span>
|
|
<span class="n">RedshiftLPT</span> <span class="o">=</span> <span class="n">eff_redshifts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="n">RedshiftFCs</span> <span class="o">=</span> <span class="n">eff_redshifts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
|
|
<span class="c1"># Write the parameter file for the first simulation</span>
|
|
<span class="n">S</span> <span class="o">=</span> <span class="n">param_file</span><span class="p">(</span>
|
|
<span class="c1">################</span>
|
|
<span class="c1">## Module LPT ##</span>
|
|
<span class="c1">################</span>
|
|
<span class="n">ModuleLPT</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="c1"># Basic setup:</span>
|
|
<span class="n">Particles</span><span class="o">=</span><span class="n">Np0</span><span class="p">,</span>
|
|
<span class="n">Mesh</span><span class="o">=</span><span class="n">size</span><span class="p">,</span>
|
|
<span class="n">BoxSize</span><span class="o">=</span><span class="n">L</span><span class="p">,</span>
|
|
<span class="n">corner0</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner1</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner2</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="c1"># Initial conditions:</span>
|
|
<span class="n">ICsMode</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteICsRngState</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">InputWhiteNoise</span><span class="o">=</span><span class="n">fname_whitenoise</span><span class="p">,</span>
|
|
<span class="n">OutputInitialConditions</span><span class="o">=</span><span class="n">fname_outputinitialdensity</span><span class="p">,</span>
|
|
<span class="n">InputPowerSpectrum</span><span class="o">=</span><span class="n">fname_power_spectrum</span><span class="p">,</span>
|
|
<span class="c1"># Final conditions for LPT:</span>
|
|
<span class="n">RedshiftLPT</span><span class="o">=</span><span class="n">RedshiftLPT</span><span class="p">,</span>
|
|
<span class="n">WriteLPTSnapshot</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteLPTDensity</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="c1"># Final snapshot:</span>
|
|
<span class="n">RedshiftFCs</span><span class="o">=</span><span class="n">RedshiftFCs</span><span class="p">,</span>
|
|
<span class="n">WriteFinalDensity</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteLPTDisplacements</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="c1">#########</span>
|
|
<span class="c1">## RSD ##</span>
|
|
<span class="c1">#########</span>
|
|
<span class="n">ModuleRSD</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteIntermediaryRSD</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">DoNonLinearMapping</span><span class="o">=</span><span class="n">NonLinearRSD</span><span class="p">,</span>
|
|
<span class="n">WriteRSDensity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputRSDensity</span><span class="o">=</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="c1">## Cosmological parameters ##</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="n">h</span><span class="o">=</span><span class="n">h</span><span class="p">,</span>
|
|
<span class="n">Omega_q</span><span class="o">=</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_b</span><span class="o">=</span><span class="n">Omega_b</span><span class="p">,</span>
|
|
<span class="n">Omega_m</span><span class="o">=</span><span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_k</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">n_s</span><span class="o">=</span><span class="n">nS</span><span class="p">,</span>
|
|
<span class="n">sigma8</span><span class="o">=</span><span class="n">sigma8</span><span class="p">,</span>
|
|
<span class="n">w0_fld</span><span class="o">=-</span><span class="mf">1.0</span><span class="p">,</span>
|
|
<span class="n">wa_fld</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">S</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_simparfile</span> <span class="o">+</span> <span class="s2">"_pop0.sbmy"</span><span class="p">)</span>
|
|
|
|
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">Ntimesteps</span><span class="p">):</span>
|
|
<span class="n">RedshiftLPT</span> <span class="o">=</span> <span class="n">eff_redshifts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
|
<span class="n">RedshiftFCs</span> <span class="o">=</span> <span class="n">eff_redshifts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
|
|
|
<span class="n">S</span> <span class="o">=</span> <span class="n">param_file</span><span class="p">(</span>
|
|
<span class="c1">################</span>
|
|
<span class="c1">## Module LPT ##</span>
|
|
<span class="c1">################</span>
|
|
<span class="n">ModuleLPT</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="c1"># Basic setup:</span>
|
|
<span class="n">Particles</span><span class="o">=</span><span class="n">Np0</span><span class="p">,</span>
|
|
<span class="n">Mesh</span><span class="o">=</span><span class="n">size</span><span class="p">,</span>
|
|
<span class="n">BoxSize</span><span class="o">=</span><span class="n">L</span><span class="p">,</span>
|
|
<span class="n">corner0</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner1</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">corner2</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="c1"># Initial conditions:</span>
|
|
<span class="n">ICsMode</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteICsRngState</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">InputWhiteNoise</span><span class="o">=</span><span class="n">fname_whitenoise</span><span class="p">,</span>
|
|
<span class="n">OutputInitialConditions</span><span class="o">=</span><span class="n">fname_outputinitialdensity</span><span class="p">,</span>
|
|
<span class="n">InputPowerSpectrum</span><span class="o">=</span><span class="n">fname_power_spectrum</span><span class="p">,</span>
|
|
<span class="c1"># Final conditions for LPT:</span>
|
|
<span class="n">RedshiftLPT</span><span class="o">=</span><span class="n">RedshiftLPT</span><span class="p">,</span>
|
|
<span class="n">WriteLPTDensity</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">WriteLPTDisplacements</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="c1">#########</span>
|
|
<span class="c1">## RSD ##</span>
|
|
<span class="c1">#########</span>
|
|
<span class="n">ModuleRSD</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">WriteIntermediaryRSD</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
|
<span class="n">DoNonLinearMapping</span><span class="o">=</span><span class="n">NonLinearRSD</span><span class="p">,</span>
|
|
<span class="n">WriteRSDensity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="n">OutputRSDensity</span><span class="o">=</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="c1">## Cosmological parameters ##</span>
|
|
<span class="c1">#############################</span>
|
|
<span class="n">h</span><span class="o">=</span><span class="n">h</span><span class="p">,</span>
|
|
<span class="n">Omega_q</span><span class="o">=</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_b</span><span class="o">=</span><span class="n">Omega_b</span><span class="p">,</span>
|
|
<span class="n">Omega_m</span><span class="o">=</span><span class="n">Omega_m</span><span class="p">,</span>
|
|
<span class="n">Omega_k</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="n">n_s</span><span class="o">=</span><span class="n">nS</span><span class="p">,</span>
|
|
<span class="n">sigma8</span><span class="o">=</span><span class="n">sigma8</span><span class="p">,</span>
|
|
<span class="n">w0_fld</span><span class="o">=-</span><span class="mf">1.0</span><span class="p">,</span>
|
|
<span class="n">wa_fld</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="n">S</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_simparfile</span> <span class="o">+</span> <span class="s2">"_pop</span><span class="si">{}</span><span class="s2">.sbmy"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="p">))</span></div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="handle_time_stepping">
|
|
<a class="viewcode-back" href="../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping">[docs]</a>
|
|
<span class="k">def</span> <span class="nf">handle_time_stepping</span><span class="p">(</span>
|
|
<span class="n">aa</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span>
|
|
<span class="n">total_steps</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
|
<span class="n">modeldir</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">figuresdir</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">sim_params</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">force</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
|
<span class="p">)</span> <span class="o">-></span> <span class="n">Tuple</span><span class="p">[</span><span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">int</span><span class="p">]],</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]]:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Create and merge individual time-stepping objects.</span>
|
|
|
|
<span class="sd"> Parameters</span>
|
|
<span class="sd"> ----------</span>
|
|
<span class="sd"> aa : list of float</span>
|
|
<span class="sd"> List of scale factors in ascending order.</span>
|
|
<span class="sd"> total_steps : int</span>
|
|
<span class="sd"> Total number of time steps to distribute among the provided</span>
|
|
<span class="sd"> scale factors.</span>
|
|
<span class="sd"> modeldir : str</span>
|
|
<span class="sd"> Directory path to store generated time-stepping files.</span>
|
|
<span class="sd"> figuresdir : str</span>
|
|
<span class="sd"> Directory path to store time-stepping plots.</span>
|
|
<span class="sd"> sim_params : str</span>
|
|
<span class="sd"> Simulation parameter string (e.g., "custom", "std", "nograv").</span>
|
|
<span class="sd"> force : bool, optional</span>
|
|
<span class="sd"> Whether to force recompute the time-stepping files. Default is</span>
|
|
<span class="sd"> False.</span>
|
|
|
|
<span class="sd"> Returns</span>
|
|
<span class="sd"> -------</span>
|
|
<span class="sd"> merged_path : str</span>
|
|
<span class="sd"> Path to the merged time-stepping file.</span>
|
|
<span class="sd"> indices_steps_cumul : list of int or None</span>
|
|
<span class="sd"> Cumulative indices for the distributed steps. Returns None if</span>
|
|
<span class="sd"> using splitLPT or if `sim_params` indicates an alternative</span>
|
|
<span class="sd"> strategy.</span>
|
|
<span class="sd"> eff_redshifts : float or None</span>
|
|
<span class="sd"> Effective redshift derived from the final scale factor in</span>
|
|
<span class="sd"> 'custom' or 'nograv' mode. None otherwise.</span>
|
|
|
|
<span class="sd"> Raises</span>
|
|
<span class="sd"> ------</span>
|
|
<span class="sd"> NotImplementedError</span>
|
|
<span class="sd"> If a unsupported time-stepping strategy is used.</span>
|
|
<span class="sd"> OSError</span>
|
|
<span class="sd"> If file or directory operations fail.</span>
|
|
<span class="sd"> RuntimeError</span>
|
|
<span class="sd"> If unexpected issues occur during time-stepping setup.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">pysbmy.timestepping</span> <span class="kn">import</span> <span class="n">StandardTimeStepping</span><span class="p">,</span> <span class="n">read_timestepping</span>
|
|
<span class="kn">from</span> <span class="nn">selfisys.utils.plot_utils</span> <span class="kn">import</span> <span class="n">reset_plotting</span><span class="p">,</span> <span class="n">setup_plotting</span>
|
|
<span class="kn">from</span> <span class="nn">selfisys.utils.timestepping</span> <span class="kn">import</span> <span class="n">merge_nTS</span>
|
|
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Evaluating time-stepping strategy: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">sim_params</span><span class="p">)</span>
|
|
|
|
<span class="n">indices_steps_cumul</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="n">eff_redshifts</span> <span class="o">=</span> <span class="kc">None</span>
|
|
|
|
<span class="n">isstd</span> <span class="o">=</span> <span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"std"</span><span class="p">)</span>
|
|
<span class="n">splitLPT</span> <span class="o">=</span> <span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"splitLPT"</span><span class="p">)</span>
|
|
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="c1"># Case 1: standard approach with distributed steps</span>
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">isstd</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">splitLPT</span><span class="p">:</span>
|
|
<span class="n">reset_plotting</span><span class="p">()</span> <span class="c1"># Revert to default plotting style</span>
|
|
<span class="n">merged_path</span> <span class="o">=</span> <span class="n">modeldir</span> <span class="o">+</span> <span class="s2">"merged.h5"</span>
|
|
|
|
<span class="c1"># Create time-stepping</span>
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">merged_path</span><span class="p">)</span> <span class="ow">or</span> <span class="n">force</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Setting up time-stepping..."</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Distribute steps among the scale factors</span>
|
|
<span class="n">nsteps</span> <span class="o">=</span> <span class="p">[</span>
|
|
<span class="nb">round</span><span class="p">((</span><span class="n">aa</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">aa</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="o">/</span> <span class="p">(</span><span class="n">aa</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">aa</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">*</span> <span class="n">total_steps</span><span class="p">)</span>
|
|
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">aa</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="p">]</span>
|
|
<span class="c1"># Adjust the largest gap if rounding caused a mismatch</span>
|
|
<span class="k">if</span> <span class="nb">sum</span><span class="p">(</span><span class="n">nsteps</span><span class="p">)</span> <span class="o">!=</span> <span class="n">total_steps</span><span class="p">:</span>
|
|
<span class="n">nsteps</span><span class="p">[</span><span class="n">nsteps</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">nsteps</span><span class="p">))]</span> <span class="o">+=</span> <span class="n">total_steps</span> <span class="o">-</span> <span class="nb">sum</span><span class="p">(</span><span class="n">nsteps</span><span class="p">)</span>
|
|
|
|
<span class="n">indices_steps_cumul</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">cumsum</span><span class="p">(</span><span class="n">nsteps</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="n">np</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">modeldir</span> <span class="o">+</span> <span class="s2">"indices_steps_cumul.npy"</span><span class="p">,</span> <span class="n">indices_steps_cumul</span><span class="p">)</span>
|
|
|
|
<span class="n">INDENT</span><span class="p">()</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">"Generating individual time-stepping objects..."</span><span class="p">)</span>
|
|
|
|
<span class="n">TS_paths</span> <span class="o">=</span> <span class="p">[]</span>
|
|
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">ai</span><span class="p">,</span> <span class="n">af</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">aa</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">aa</span><span class="p">[</span><span class="mi">1</span><span class="p">:])):</span>
|
|
<span class="n">snapshots</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">full</span><span class="p">((</span><span class="n">nsteps</span><span class="p">[</span><span class="n">i</span><span class="p">]),</span> <span class="kc">False</span><span class="p">)</span>
|
|
<span class="n">snapshots</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> <span class="c1"># Mark last step as a snapshot</span>
|
|
<span class="n">TS</span> <span class="o">=</span> <span class="n">StandardTimeStepping</span><span class="p">(</span><span class="n">ai</span><span class="p">,</span> <span class="n">af</span><span class="p">,</span> <span class="n">snapshots</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
|
<span class="n">TS_path</span> <span class="o">=</span> <span class="n">modeldir</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">"ts</span><span class="si">{</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="si">}</span><span class="s2">.h5"</span>
|
|
<span class="n">TS</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">TS_path</span><span class="p">))</span>
|
|
<span class="n">TS_paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">TS_path</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Ensure the timestepping object are readable and plot</span>
|
|
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">path_ts</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">TS_paths</span><span class="p">):</span>
|
|
<span class="n">read_timestepping</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">path_ts</span><span class="p">))</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">figuresdir</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">"TS</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.png"</span><span class="p">))</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">"Generating individual time-stepping objects done."</span><span class="p">)</span>
|
|
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">"Merging time-stepping..."</span><span class="p">)</span>
|
|
<span class="n">merge_nTS</span><span class="p">([</span><span class="nb">str</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">TS_paths</span><span class="p">],</span> <span class="n">merged_path</span><span class="p">)</span>
|
|
<span class="n">TS_merged</span> <span class="o">=</span> <span class="n">read_timestepping</span><span class="p">(</span><span class="n">merged_path</span><span class="p">)</span>
|
|
<span class="n">TS_merged</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">figuresdir</span> <span class="o">+</span> <span class="s2">"TS_merged.png"</span><span class="p">))</span>
|
|
|
|
<span class="c1"># Restore the project's plotting style</span>
|
|
<span class="n">setup_plotting</span><span class="p">()</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">"Merging time-stepping done."</span><span class="p">)</span>
|
|
<span class="n">UNINDENT</span><span class="p">()</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Setting up time-stepping done."</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">"Time-stepping objects already computed."</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Evaluate final effective redshift</span>
|
|
<span class="k">if</span> <span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"custom"</span><span class="p">)</span> <span class="ow">or</span> <span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"nograv"</span><span class="p">):</span>
|
|
<span class="n">eff_redshifts</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="n">aa</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Time-stepping strategy not yet implemented."</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Case 2: splitted</span>
|
|
<span class="k">elif</span> <span class="n">splitLPT</span><span class="p">:</span>
|
|
<span class="n">indices_steps_cumul</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"pop</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">aa</span><span class="p">))]</span>
|
|
<span class="n">eff_redshifts</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span> <span class="o">/</span> <span class="n">a</span> <span class="o">-</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">aa</span><span class="p">[</span><span class="mi">1</span><span class="p">:]]</span>
|
|
|
|
<span class="c1"># Case 3: other</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">"Standard time-stepping or no special distribution required."</span><span class="p">)</span>
|
|
|
|
<span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"File or directory access error in handle_time_stepping: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
|
<span class="k">raise</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">"An error occurred during time-stepping setup: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
|
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"Time-stepping setup failed."</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
|
|
<span class="k">finally</span><span class="p">:</span>
|
|
<span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span>
|
|
|
|
<span class="k">return</span> <span class="n">merged_path</span><span class="p">,</span> <span class="n">indices_steps_cumul</span><span class="p">,</span> <span class="n">eff_redshifts</span></div>
|
|
|
|
</pre></div>
|
|
|
|
</div>
|
|
</div>
|
|
<footer>
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<p>© Copyright 2025, Tristan Hoellinger.</p>
|
|
</div>
|
|
|
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
|
|
|
|
</footer>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<script>
|
|
jQuery(function () {
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html> |