W62UFG4ZAE6JRINNKSA3EIH35S4NSKAJSAVSCCNN4ME75ZXCSVTQC
# CCTK_REAL gf000 TYPE=gf TAGS='index={0 0 0}' "Test grid function"
# CCTK_REAL gf001 TYPE=gf TAGS='index={0 0 1}' "Test grid function"
# CCTK_REAL gf010 TYPE=gf TAGS='index={0 1 0}' "Test grid function"
# CCTK_REAL gf011 TYPE=gf TAGS='index={0 1 1}' "Test grid function"
# CCTK_REAL gf100 TYPE=gf TAGS='index={1 0 0}' "Test grid function"
# CCTK_REAL gf101 TYPE=gf TAGS='index={1 0 1}' "Test grid function"
# CCTK_REAL gf110 TYPE=gf TAGS='index={1 1 0}' "Test grid function"
# CCTK_REAL gf111 TYPE=gf TAGS='index={1 1 1}' "Test grid function"
CCTK_REAL gf000 TYPE=gf TAGS='index={0 0 0}' "Test grid function"
CCTK_REAL gf001 TYPE=gf TAGS='index={0 0 1}' "Test grid function"
CCTK_REAL gf010 TYPE=gf TAGS='index={0 1 0}' "Test grid function"
CCTK_REAL gf011 TYPE=gf TAGS='index={0 1 1}' "Test grid function"
CCTK_REAL gf100 TYPE=gf TAGS='index={1 0 0}' "Test grid function"
CCTK_REAL gf101 TYPE=gf TAGS='index={1 0 1}' "Test grid function"
CCTK_REAL gf110 TYPE=gf TAGS='index={1 1 0}' "Test grid function"
CCTK_REAL gf111 TYPE=gf TAGS='index={1 1 1}' "Test grid function"
# WRITES: gf000(interior)
# WRITES: gf001(interior)
# WRITES: gf010(interior)
# WRITES: gf011(interior)
# WRITES: gf100(interior)
# WRITES: gf101(interior)
# WRITES: gf110(interior)
# WRITES: gf111(interior)
WRITES: gf000(interior)
WRITES: gf001(interior)
WRITES: gf010(interior)
WRITES: gf011(interior)
WRITES: gf100(interior)
WRITES: gf101(interior)
WRITES: gf110(interior)
WRITES: gf111(interior)
});
Loop::loop_int<0, 0, 0>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 0, 0, 0, operator_order);
gf000[p.idx] = good_data;
});
Loop::loop_int<0, 0, 1>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 0, 0, 1, operator_order);
gf001[p.idx] = good_data;
});
Loop::loop_int<0, 1, 0>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 0, 1, 0, operator_order);
gf010[p.idx] = good_data;
});
Loop::loop_int<0, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 0, 1, 1, operator_order);
gf011[p.idx] = good_data;
});
Loop::loop_int<1, 0, 0>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 1, 0, 0, operator_order);
gf100[p.idx] = good_data;
});
Loop::loop_int<1, 0, 1>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 1, 0, 1, operator_order);
gf101[p.idx] = good_data;
Loop::loop_int<1, 1, 0>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 1, 1, 0, operator_order);
gf110[p.idx] = good_data;
});
Loop::loop_int<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 1, 1, 1, operator_order);
gf111[p.idx] = good_data;
});
Loop::loop_int<0, 0, 0>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 0, 0, 0, operator_order);
const CCTK_REAL diff = fabs(gf000[p.idx] - good_data);
my_max_diff = fmax(diff, my_max_diff);
});
Loop::loop_int<0, 0, 1>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 0, 0, 1, operator_order);
const CCTK_REAL diff = fabs(gf001[p.idx] - good_data);
my_max_diff = fmax(diff, my_max_diff);
});
Loop::loop_int<0, 1, 0>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 0, 1, 0, operator_order);
const CCTK_REAL diff = fabs(gf010[p.idx] - good_data);
my_max_diff = fmax(diff, my_max_diff);
});
Loop::loop_int<0, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 0, 1, 1, operator_order);
const CCTK_REAL diff = fabs(gf011[p.idx] - good_data);
my_max_diff = fmax(diff, my_max_diff);
});
Loop::loop_int<1, 0, 0>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 1, 0, 0, operator_order);
const CCTK_REAL diff = fabs(gf100[p.idx] - good_data);
my_max_diff = fmax(diff, my_max_diff);
});
Loop::loop_int<1, 0, 1>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 1, 0, 1, operator_order);
const CCTK_REAL diff = fabs(gf101[p.idx] - good_data);
my_max_diff = fmax(diff, my_max_diff);
});
Loop::loop_int<1, 1, 0>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 1, 1, 0, operator_order);
const CCTK_REAL diff = fabs(gf110[p.idx] - good_data);
my_max_diff = fmax(diff, my_max_diff);
});
Loop::loop_int<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
const CCTK_REAL good_data =
fun(p.x, p.y, p.z, dx, dy, dz, 1, 1, 1, operator_order);
const CCTK_REAL diff = fabs(gf111[p.idx] - good_data);
my_max_diff = fmax(diff, my_max_diff);
});
0 0 0
1 0.025 0
2 0.05 0
ActiveThorns = "
CarpetX
IOUtil
TestProlongate
"
$nlevels = 2
$ncells = 20
$blocking_factor = 2
Cactus::cctk_show_schedule = no
Cactus::cctk_itlast = 2
CarpetX::ghost_size = 3
CarpetX::prolongation_type = "ddf"
CarpetX::prolongation_order = 1
CarpetX::verbose = yes
CarpetX::ncells_x = $ncells
CarpetX::ncells_y = $ncells
CarpetX::ncells_z = $ncells
CarpetX::blocking_factor_x = $blocking_factor
CarpetX::blocking_factor_y = 1 # $blocking_factor
CarpetX::blocking_factor_z = 1 # $blocking_factor
CarpetX::max_num_levels = $nlevels
CarpetX::regrid_every = 1
CarpetX::regrid_error_threshold = 0.01
CarpetX::dtfac = 0.5
CarpetX::out_plotfile_groups = ""
CarpetX::out_tsv = yes
IO::out_dir = $parfile
IO::out_every = 1
0 0 0
1 0.025 0
2 0.05 0
ActiveThorns = "
CarpetX
IOUtil
TestProlongate
"
$nlevels = 2
$ncells = 20
$blocking_factor = 2
Cactus::cctk_show_schedule = no
Cactus::cctk_itlast = 2
CarpetX::ghost_size = 3
CarpetX::prolongation_type = "ddf"
CarpetX::prolongation_order = 3
CarpetX::verbose = yes
CarpetX::ncells_x = $ncells
CarpetX::ncells_y = $ncells
CarpetX::ncells_z = $ncells
CarpetX::blocking_factor_x = $blocking_factor
CarpetX::blocking_factor_y = 1 # $blocking_factor
CarpetX::blocking_factor_z = 1 # $blocking_factor
CarpetX::max_num_levels = $nlevels
CarpetX::regrid_every = 1
CarpetX::regrid_error_threshold = 0.01
CarpetX::dtfac = 0.5
CarpetX::out_plotfile_groups = ""
CarpetX::out_tsv = yes
IO::out_dir = $parfile
IO::out_every = 1