Skip to content

Commit 5b312c5

Browse files
authored
Merge pull request #39 from chcheng3/main
NewRadX: Prevent NewRadX from being applied at symmetry boundaries
2 parents 2fb7330 + 30ce71c commit 5b312c5

34 files changed

+531
-1151
lines changed

NewRadX/configuration.ccl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Configuration definition for thorn NewRadX
22

3-
REQUIRES Loop
3+
REQUIRES CarpetX Loop
44

55
PROVIDES NewRadX
66
{

NewRadX/interface.ccl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
IMPLEMENTS: NewRadX
44

5+
USES INCLUDE HEADER: driver.hxx
56
USES INCLUDE HEADER: loop_device.hxx
67

78
INCLUDE HEADER: newradx.hxx in newradx.hxx

NewRadX/src/newradx.cxx

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
#include "newradx.hxx"
2-
#include "loop.hxx"
3-
#include "loop_device.hxx"
41
#include <cctk.h>
52
#include <cctk_Arguments_Checked.h>
63
#include <cmath>
4+
#include "loop.hxx"
5+
#include "loop_device.hxx"
6+
#include "driver.hxx"
7+
#include "newradx.hxx"
78

89
namespace NewRadX {
910

@@ -109,10 +110,24 @@ void NewRadX_Apply(const cGH *restrict const cctkGH,
109110
assert(0);
110111
};
111112

113+
const auto symmetries = CarpetX::ghext->patchdata.at(cctk_patch).symmetries;
114+
const vect<vect<bool, Loop::dim>, 2> is_sym_bnd {
115+
{
116+
symmetries[0][0] != CarpetX::symmetry_t::none,
117+
symmetries[0][1] != CarpetX::symmetry_t::none,
118+
symmetries[0][2] != CarpetX::symmetry_t::none
119+
},
120+
{
121+
symmetries[1][0] != CarpetX::symmetry_t::none,
122+
symmetries[1][1] != CarpetX::symmetry_t::none,
123+
symmetries[1][2] != CarpetX::symmetry_t::none
124+
}
125+
};
126+
112127
const Loop::GridDescBaseDevice grid(cctkGH);
113128
grid.loop_outermost_int_device<0, 0, 0>(
114-
grid.nghostzones,
115-
[=] CCTK_DEVICE CCTK_HOST(const Loop::PointDesc &p)
129+
grid.nghostzones, is_sym_bnd,
130+
[=] CCTK_DEVICE(const Loop::PointDesc &p)
116131
CCTK_ATTRIBUTE_ALWAYS_INLINE {
117132
// The main part of the boundary condition assumes that we have an
118133
// outgoing radial wave with some speed v0:

TestNewRadX/test/scalarwave_newradx.par

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,58 +6,66 @@ ActiveThorns = "
66
"
77

88
$nlevels = 1
9-
$ncells = 30
9+
$ncells = 20
1010
$blocking_factor = 2
1111

1212
Cactus::cctk_show_schedule = "yes"
1313
Cactus::cctk_full_warnings = "yes"
1414

1515
Cactus::presync_mode = "mixed-error"
1616

17-
Cactus::terminate = "time"
18-
Cactus::cctk_final_time = 20
17+
Cactus::terminate = "iteration"
18+
Cactus::cctk_itlast = 30
1919

2020
CarpetX::ghost_size = 3
2121
CarpetX::prolongation_type = "ddf"
2222
CarpetX::prolongation_order = 1
2323
CarpetX::verbose = no
2424

25-
CarpetX::xmin = -10 # + 0.123456789
26-
CarpetX::ymin = -10 # + 0.223456789
27-
CarpetX::zmin = -10 # + 0.323456789
28-
CarpetX::xmax = +10 # + 0.123456789
29-
CarpetX::ymax = +10 # + 0.223456789
30-
CarpetX::zmax = +10 # + 0.323456789
25+
CarpetX::xmin = -10
26+
CarpetX::ymin = -10
27+
CarpetX::zmin = 0
28+
CarpetX::xmax = +10
29+
CarpetX::ymax = +10
30+
CarpetX::zmax = +10
3131

32-
CarpetX::ncells_x = $ncells
33-
CarpetX::ncells_y = $ncells
32+
CarpetX::ncells_x = $ncells * 2
33+
CarpetX::ncells_y = $ncells * 2
3434
CarpetX::ncells_z = $ncells
3535

3636
CarpetX::blocking_factor_x = $blocking_factor
3737
CarpetX::blocking_factor_y = $blocking_factor
3838
CarpetX::blocking_factor_z = $blocking_factor
3939

40-
CarpetX::boundary_x = "neumann"
40+
CarpetX::boundary_x = "none"
4141
CarpetX::boundary_y = "neumann"
42-
CarpetX::boundary_z = "neumann"
43-
CarpetX::boundary_upper_x = "neumann"
42+
CarpetX::boundary_z = "none"
43+
CarpetX::boundary_upper_x = "none"
4444
CarpetX::boundary_upper_y = "neumann"
4545
CarpetX::boundary_upper_z = "neumann"
4646

47+
CarpetX::reflection_x = "no"
48+
CarpetX::reflection_y = "no"
49+
CarpetX::reflection_z = "yes"
50+
51+
Driver::periodic = "yes"
52+
Driver::periodic_x = "yes"
53+
Driver::periodic_y = "no"
54+
Driver::periodic_z = "no"
55+
4756
CarpetX::max_num_levels = $nlevels
4857
CarpetX::regrid_every = 1
49-
CarpetX::regrid_error_threshold = 0.08
58+
Driver::regrid_error_threshold = 0.08
5059

5160
CarpetX::dtfac = 0.25
5261

5362
IO::parfile_write = "no"
5463
IO::out_fileinfo = "axis labels"
5564

5665
IO::out_dir = $parfile
57-
IO::out_every = 1
66+
IO::out_every = 30
5867

5968
CarpetX::out_metadata = no
60-
CarpetX::out_tsv_every = 30
6169
CarpetX::out_tsv_vars = "
6270
TestNewRadX::uu
6371
TestNewRadX::vv
Lines changed: 47 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,48 @@
11
# 1:iteration 2:time 3:patch 4:level 5:i 6:j 7:k 8:x 9:y 10:z 11:uu_err 12:vv_err
2-
0 0.0000000000000000e+00 0 0 -3 15 15 -1.2000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
3-
0 0.0000000000000000e+00 0 0 -2 15 15 -1.1333333333333334e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
4-
0 0.0000000000000000e+00 0 0 -1 15 15 -1.0666666666666666e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
5-
0 0.0000000000000000e+00 0 0 0 15 15 -1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
6-
0 0.0000000000000000e+00 0 0 1 15 15 -9.3333333333333339e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
7-
0 0.0000000000000000e+00 0 0 2 15 15 -8.6666666666666661e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
8-
0 0.0000000000000000e+00 0 0 3 15 15 -8.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
9-
0 0.0000000000000000e+00 0 0 4 15 15 -7.3333333333333339e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
10-
0 0.0000000000000000e+00 0 0 5 15 15 -6.6666666666666670e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
11-
0 0.0000000000000000e+00 0 0 6 15 15 -6.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
12-
0 0.0000000000000000e+00 0 0 7 15 15 -5.3333333333333339e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
13-
0 0.0000000000000000e+00 0 0 8 15 15 -4.6666666666666670e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
14-
0 0.0000000000000000e+00 0 0 9 15 15 -4.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
15-
0 0.0000000000000000e+00 0 0 10 15 15 -3.3333333333333339e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
16-
0 0.0000000000000000e+00 0 0 11 15 15 -2.6666666666666670e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
17-
0 0.0000000000000000e+00 0 0 12 15 15 -2.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
18-
0 0.0000000000000000e+00 0 0 13 15 15 -1.3333333333333339e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
19-
0 0.0000000000000000e+00 0 0 14 15 15 -6.6666666666666785e-01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20-
0 0.0000000000000000e+00 0 0 15 15 15 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
21-
0 0.0000000000000000e+00 0 0 16 15 15 6.6666666666666607e-01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
22-
0 0.0000000000000000e+00 0 0 17 15 15 1.3333333333333321e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
23-
0 0.0000000000000000e+00 0 0 18 15 15 2.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
24-
0 0.0000000000000000e+00 0 0 19 15 15 2.6666666666666661e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
25-
0 0.0000000000000000e+00 0 0 20 15 15 3.3333333333333321e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
26-
0 0.0000000000000000e+00 0 0 21 15 15 4.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
27-
0 0.0000000000000000e+00 0 0 22 15 15 4.6666666666666661e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
28-
0 0.0000000000000000e+00 0 0 23 15 15 5.3333333333333321e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
29-
0 0.0000000000000000e+00 0 0 24 15 15 6.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
30-
0 0.0000000000000000e+00 0 0 25 15 15 6.6666666666666643e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
31-
0 0.0000000000000000e+00 0 0 26 15 15 7.3333333333333321e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
32-
0 0.0000000000000000e+00 0 0 27 15 15 8.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
33-
0 0.0000000000000000e+00 0 0 28 15 15 8.6666666666666643e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
34-
0 0.0000000000000000e+00 0 0 29 15 15 9.3333333333333321e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
35-
0 0.0000000000000000e+00 0 0 30 15 15 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
36-
0 0.0000000000000000e+00 0 0 31 15 15 1.0666666666666664e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
37-
0 0.0000000000000000e+00 0 0 32 15 15 1.1333333333333332e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
38-
0 0.0000000000000000e+00 0 0 33 15 15 1.2000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
2+
0 0.0000000000000000e+00 0 0 -3 20 0 -1.1500000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
3+
0 0.0000000000000000e+00 0 0 -2 20 0 -1.1000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
4+
0 0.0000000000000000e+00 0 0 -1 20 0 -1.0500000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
5+
0 0.0000000000000000e+00 0 0 0 20 0 -1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
6+
0 0.0000000000000000e+00 0 0 1 20 0 -9.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
7+
0 0.0000000000000000e+00 0 0 2 20 0 -9.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
8+
0 0.0000000000000000e+00 0 0 3 20 0 -8.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
9+
0 0.0000000000000000e+00 0 0 4 20 0 -8.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
10+
0 0.0000000000000000e+00 0 0 5 20 0 -7.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
11+
0 0.0000000000000000e+00 0 0 6 20 0 -7.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
12+
0 0.0000000000000000e+00 0 0 7 20 0 -6.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
13+
0 0.0000000000000000e+00 0 0 8 20 0 -6.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
14+
0 0.0000000000000000e+00 0 0 9 20 0 -5.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
15+
0 0.0000000000000000e+00 0 0 10 20 0 -5.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
16+
0 0.0000000000000000e+00 0 0 11 20 0 -4.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
17+
0 0.0000000000000000e+00 0 0 12 20 0 -4.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
18+
0 0.0000000000000000e+00 0 0 13 20 0 -3.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
19+
0 0.0000000000000000e+00 0 0 14 20 0 -3.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20+
0 0.0000000000000000e+00 0 0 15 20 0 -2.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
21+
0 0.0000000000000000e+00 0 0 16 20 0 -2.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
22+
0 0.0000000000000000e+00 0 0 17 20 0 -1.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
23+
0 0.0000000000000000e+00 0 0 18 20 0 -1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
24+
0 0.0000000000000000e+00 0 0 19 20 0 -5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
25+
0 0.0000000000000000e+00 0 0 20 20 0 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
26+
0 0.0000000000000000e+00 0 0 21 20 0 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
27+
0 0.0000000000000000e+00 0 0 22 20 0 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
28+
0 0.0000000000000000e+00 0 0 23 20 0 1.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
29+
0 0.0000000000000000e+00 0 0 24 20 0 2.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
30+
0 0.0000000000000000e+00 0 0 25 20 0 2.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
31+
0 0.0000000000000000e+00 0 0 26 20 0 3.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
32+
0 0.0000000000000000e+00 0 0 27 20 0 3.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
33+
0 0.0000000000000000e+00 0 0 28 20 0 4.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
34+
0 0.0000000000000000e+00 0 0 29 20 0 4.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
35+
0 0.0000000000000000e+00 0 0 30 20 0 5.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
36+
0 0.0000000000000000e+00 0 0 31 20 0 5.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
37+
0 0.0000000000000000e+00 0 0 32 20 0 6.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
38+
0 0.0000000000000000e+00 0 0 33 20 0 6.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
39+
0 0.0000000000000000e+00 0 0 34 20 0 7.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
40+
0 0.0000000000000000e+00 0 0 35 20 0 7.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
41+
0 0.0000000000000000e+00 0 0 36 20 0 8.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
42+
0 0.0000000000000000e+00 0 0 37 20 0 8.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
43+
0 0.0000000000000000e+00 0 0 38 20 0 9.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
44+
0 0.0000000000000000e+00 0 0 39 20 0 9.5000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
45+
0 0.0000000000000000e+00 0 0 40 20 0 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
46+
0 0.0000000000000000e+00 0 0 41 20 0 1.0500000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
47+
0 0.0000000000000000e+00 0 0 42 20 0 1.1000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
48+
0 0.0000000000000000e+00 0 0 43 20 0 1.1500000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00

0 commit comments

Comments
 (0)