#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::mexts & bbsss, gh::rbnds & obss, gh::rprocs & pss) { DECLARE_CCTK_PARAMETERS; assert (refinement_levels >= 1); // do nothing if the levels already exist if (reflevel == refinement_levels) return 0; assert (bbsss.size() >= 1); vector > bbss = bbsss.at(0); bbss.resize (refinement_levels); obss.resize (refinement_levels); pss.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 bbs; gh::cbnds obs; bbs.reserve (newbbss.at(rl-1).size()); obs.reserve (newbbss.at(rl-1).size()); for (size_t c=0; c