KRJ4HPEPBBQQ6SF4D5R7SHIEC5W6IOQSE4YTEECMOCPTILKO3ZZQC
5A7OHW6V23YT7O3PJKS7J6IKPLXIMCRTW6VIWPZKYMEFRYQX5VZQC
3CP3B7DKC4YAZNE5PMOPZXWBCQMDXYWHZMZUUHDXE5QVKRW2JYCQC
MSBBCXVGD3GRLE5KAI6BKAFRV7SQUWI2SNN43AJAUD3ISRCEXY6QC
JHHVFKSN2L3YMG4JKXUDS6EBBYCDUDO56LNAZMG4QYS2FFPZF3SQC
722HZ7UFINNE3YKSYKP2NHZ5XEG5QQLQHSKC7PREJZR3EX6RDYUAC
B7Y552HZXBV2PD22T7ZXGFJKUYU23A7XDWV4XZK46SGQKX7U45PQC
FS7Q6TUHBK5WSRDC3TM6KV2BPGWATRBLDHFGEJ72BR3FRDEOC3WAC
XQFT6DACFOMNNXDYUZRGRCMEPWF34KW5PRZ7RVMVJHYCS76JIZSAC
extern "C" void CarpetX_SolvePoisson() {
extern "C" void CarpetX_SolvePoisson(const CCTK_INT gi_sol,
const CCTK_INT gi_rhs,
const CCTK_INT gi_res) {
assert(gi_rhs >= 0);
assert(gi_sol >= 0);
const bool have_res = gi_res >= 0;
if (have_res)
assert(gi_res >= 0);
const int tl = 0;
const int vi = 0;
const int gi_rhs = CCTK_GroupIndex("Poisson::rhs");
assert(gi_rhs >= 0);
const int gi_sol = CCTK_GroupIndex("Poisson::phi");
assert(gi_sol >= 0);
const int gi_res = CCTK_GroupIndex("Poisson::res");
assert(gi_res >= 0);
const int tl = 0;
const int vi = 0;
const auto &restrict groupdata_res = *leveldata.groupdata.at(gi_res);
ress.at(level) = groupdata_res.mfab.at(tl).get();
if (have_res) {
const auto &restrict groupdata_res = *leveldata.groupdata.at(gi_res);
ress.at(level) = groupdata_res.mfab.at(tl).get();
}
for (int level = 0; level < int(ghext->leveldata.size()); ++level)
CCTK_VINFO("norm_inf res[%d]: %g", level,
double(ress.at(level)->norminf(vi, 0, false, true)));
if (have_res)
for (int level = 0; level < int(ghext->leveldata.size()); ++level)
CCTK_VINFO("norm_inf res[%d]: %g", level,
double(ress.at(level)->norminf(vi, 0, false, true)));
for (int level = 0; level < int(ghext->leveldata.size()); ++level)
CCTK_VINFO("norm_inf res[%d]: %g", level,
double(ress.at(level)->norminf(vi, 0, false, true)));
if (have_res)
for (int level = 0; level < int(ghext->leveldata.size()); ++level)
CCTK_VINFO("norm_inf res[%d]: %g", level,
double(ress.at(level)->norminf(vi, 0, false, true)));
SolvePoisson();
const int gi_sol = CCTK_GroupIndex("Poisson::phi");
assert(gi_sol >= 0);
const int gi_rhs = CCTK_GroupIndex("Poisson::rhs");
assert(gi_rhs >= 0);
const int gi_res = CCTK_GroupIndex("Poisson::res");
assert(gi_res >= 0);
SolvePoisson(gi_sol, gi_rhs, gi_res);