// grid.cc -- classes for a 2D uniform tensor-product grid // $Id$ // // grid_arrays::grid_arrays // grid::grid // #include #include #include #include #include #include "jt/stdc.h" #include "jt/util++.hh" // jtutil::how_many_in_range(), // round::, fuzzy:: #include "jt/array.hh" #include "jt/linear_map.hh" #include "fp.hh" #include "coords.hh" #include "grid.hh" //***************************************************************************** // // This function constructs a grid_arrays object. // grid_arrays::grid_arrays(const grid_arrays::array_pars &array_pars_in, int N_gridfns_in) : gridfn_data_ (0, N_gridfns_in-1, array_pars_in.min_irho - array_pars_in.min_rho_N_ghost_zones, array_pars_in.max_irho + array_pars_in.max_rho_N_ghost_zones, array_pars_in.min_isigma - array_pars_in.min_sigma_N_ghost_zones, array_pars_in.max_isigma + array_pars_in.max_sigma_N_ghost_zones), N_gridfns_(N_gridfns_in), min_irho_(array_pars_in.min_irho), max_irho_(array_pars_in.max_irho), min_isigma_(array_pars_in.min_isigma), max_isigma_(array_pars_in.max_isigma), full_grid__min_irho_ (array_pars_in.min_irho - array_pars_in.min_rho_N_ghost_zones), full_grid__max_irho_ (array_pars_in.max_irho + array_pars_in.max_rho_N_ghost_zones), full_grid__min_isigma_ (array_pars_in.min_isigma - array_pars_in.min_sigma_N_ghost_zones), full_grid__max_isigma_ (array_pars_in.max_isigma + array_pars_in.max_sigma_N_ghost_zones) // no comma { } //***************************************************************************** // // This function constructs a grid object. // grid::grid(const grid_arrays::array_pars &grid_array_pars_in, const grid::grid_pars &grid_pars_in, int N_gridfns_in, bool verbose_flag = false) : grid_arrays(grid_array_pars_in, N_gridfns_in), rho_map_ (grid_array_pars_in.min_irho - grid_array_pars_in.min_rho_N_ghost_zones, grid_array_pars_in.max_irho + grid_array_pars_in.max_rho_N_ghost_zones, jtutil::radians_of_degrees( grid_pars_in.min_drho - grid_array_pars_in.min_rho_N_ghost_zones * grid_pars_in.delta_drho ), jtutil::radians_of_degrees(grid_pars_in.delta_drho), jtutil::radians_of_degrees( grid_pars_in.max_drho + grid_array_pars_in.max_rho_N_ghost_zones * grid_pars_in.delta_drho )), sigma_map_ (grid_array_pars_in.min_isigma - grid_array_pars_in.min_sigma_N_ghost_zones, grid_array_pars_in.max_isigma + grid_array_pars_in.max_sigma_N_ghost_zones, jtutil::radians_of_degrees( grid_pars_in.min_dsigma - grid_array_pars_in.min_sigma_N_ghost_zones * grid_pars_in.delta_dsigma ), jtutil::radians_of_degrees(grid_pars_in.delta_dsigma), jtutil::radians_of_degrees( grid_pars_in.max_dsigma + grid_array_pars_in.max_sigma_N_ghost_zones * grid_pars_in.delta_dsigma )), min_rho_(jtutil::radians_of_degrees(grid_pars_in.min_drho)), max_rho_(jtutil::radians_of_degrees(grid_pars_in.max_drho)), min_sigma_(jtutil::radians_of_degrees(grid_pars_in.min_dsigma)), max_sigma_(jtutil::radians_of_degrees(grid_pars_in.max_dsigma)) // no comma { if (verbose_flag) then printf("grid::grid(): created %d*%d grid (%d gridfn(s))\n", N_irho(), N_isigma(), N_gridfns()); }