#include #include #include #include #include "cctk.h" #include "cctk_Parameters.h" #include "gh.hh" #include "carpet.hh" #include "regrid.hh" namespace CarpetRegrid { using namespace std; using namespace Carpet; int ManualGridpointList (cGH const * const cctkGH, gh const & hh, gh::rregs & regss) { DECLARE_CCTK_PARAMETERS; assert (refinement_levels >= 1); // do nothing if the levels already exist if (reflevel == refinement_levels) return 0; regss.resize (refinement_levels); vector > newbbss; if (strcmp(gridpoints, "") != 0) { istringstream gp_str(gridpoints); try { gp_str >> newbbss; } catch (input_error) { CCTK_WARN (0, "Could not parse parameter \"gridpoints\""); } } vector > newobss; if (strcmp(outerbounds, "") !=0 ) { istringstream ob_str (outerbounds); try { ob_str >> newobss; } catch (input_error) { CCTK_WARN (0, "Could not parse parameter \"outerbounds\""); } bool good = newobss.size() == newbbss.size(); if (good) { for (size_t rl=0; rl > newrbss; newrbss.resize (newobss.size()); for (int rl=0; rl<(int)newobss.size(); ++rl) { newrbss.at(rl).resize(newbbss.at(rl).size()); for (int c=0; c<(int)newobss.at(rl).size(); ++c) { bbvect const & ob = newobss.at(rl).at(c); bbvect & rb = newrbss.at(rl).at(c); for (int d=0; d > newregs (newbbss.size()); for (int rl=1; rl regs; regs.reserve (newbbss.at(rl-1).size()); for (size_t c=0; c