/*+ ARES/HADES/BORG Package -- ./libLSS/tests/test_window3d.cpp Copyright (C) 2014-2020 Guilhem Lavaux Copyright (C) 2009-2020 Jens Jasche Additional contributions from: Guilhem Lavaux (2023) +*/ #include #include "libLSS/mpi/generic_mpi.hpp" #include #include #include #include #include "libLSS/tools/console.hpp" #include "libLSS/tools/static_init.hpp" #include "libLSS/data/window3d.hpp" #include "libLSS/samplers/core/random_number.hpp" #include "libLSS/samplers/rgen/gsl_random_number.hpp" #include static const int N0 = 128; struct BasicSelFunction { Healpix_Map C; double getRadialSelection(double r, int i) const { return std::exp(-0.5*(r*r/400.)); } int getNumRadial() const { return 1; } double get_sky_completeness(double x, double y, double z) const { return C[C.vec2pix(vec3(x,y,z))]; } double get_sky_completeness(double ra, double dec) const { return C[C.ang2pix(pointing(0.5*M_PI-dec, ra))]; } }; using namespace LibLSS; int main(int argc, char **argv) { Console& console = Console::instance(); MPI_Communication *comm = LibLSS::setupMPI(argc, argv); boost::multi_array selFuncData(boost::extents[N0][N0][N0]); double L[3] = {200.,200.,200.}; double xmin[3] = {-100,-100,-100}; double delta[3] = {200./N0, 200./N0, 200./N0 }; StaticInit::execute(); RandomNumberThreaded rng(-1); console.setVerboseLevel(); LibLSS::smp_set_nested(true); BasicSelFunction sel; sel.C.SetNside(1, RING); sel.C.fill(0); sel.C[0] = 1.0; compute_window_value_elem(comm, rng, sel, selFuncData, L, delta, xmin, 0.001); H5::H5File f("test_window.h5", H5F_ACC_TRUNC); CosmoTool::hdf5_write_array(f, "selData", selFuncData); return 0; }