hi all,
i have a 2+1 simulation that i would like to run with the ET, and i would like to use Carpet for the mesh refinement in the spatial (x and y) directions. is this possible? is there an example parameter file that i could have a look at?
many thanks, Miguel
Miguel
Yes, this is possible. The trick is to set up a domain that is still 3D, but which is only 1 grid point wide in the z direction.
Clearly, this is not possible with cell-centred refinement, as refinement always splits cells into two. However, as vertex-centred refinement is the default, this might not be relevant here.
I also assume that you have a true 2+1 code that doesn't require any ghost zones in the z direction. You would then explicitly set the number of ghost zones and boundary zones to be 0 in the z direction.
The "usual" problem I encounter when setting up such a domain is that it's slightly inconvenient to specify the coordinates and grid spacings in the z direction. I prefer to define the domain extent via CoordBase, so I assume you're doing the same.
Usually, you would specify zmin, zmax, and ncells_z to define the domain. However, if you specify zmin=0, zmax=0, and then set ncells_z=0 (0 cells correspond to 1 point), then Carpet calculates dz = (zmax - zmin) / ncells_z, which is undefined since you divide zero by zero. So instead of specifying zmin, zmax, ncells_z, you have to specify zmin, zmax, and dz. Carpet then calculates ncells_k = (zmax - zmin) / dz, which is fine. In short, setting CoordBase::spacing = "numcells" will fail, and you have to use CoordBase::spacing = "gridspacing" instead.
That's about it. Of course, it's easy to make off-by-one errors in the parameter file, so looking at 1D ASCII output to see whether the coordinates and domain sizes you specified are correct is important.
Unfortunately I do not have a sample parameter file.
-erik
On Mon, Feb 12, 2018 at 8:14 PM, Miguel Zilhão < miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi all,
i have a 2+1 simulation that i would like to run with the ET, and i would like to use Carpet for the mesh refinement in the spatial (x and y) directions. is this possible? is there an example parameter file that i could have a look at?
many thanks, Miguel _______________________________________________ Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
hi Erik,
thanks for your reply. i've tried to set the parameters as you described, but i'm getting a Carpet assertion failure:
cactus_Lean_ET: Cactus/arrangements/Carpet/CarpetLib/src/gh.cc:61: gh::gh(const std::vector<vect<int, 3> >&, centering, int, centering, const std::vector<std::vector<bbox<int, 3> >
&, const i2vect&): Assertion `all(box.shape() / box.stride() >= boundary_width[0] +
boundary_width[1])' failed.
here's how i'm specifying my grid:
CoordBase::xmin = -48.00 CoordBase::ymin = -48.00 CoordBase::zmin = 0.00 CoordBase::xmax = +48.00 CoordBase::ymax = +48.00 CoordBase::zmax = +0.00 CoordBase::dx = 2.00 CoordBase::dy = 2.00 CoordBase::dz = 2.00
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_z_lower = 0 CoordBase::boundary_size_x_upper = 0 CoordBase::boundary_size_y_upper = 0 CoordBase::boundary_size_z_upper = 0
CoordBase::boundary_shiftout_x_lower = 0 CoordBase::boundary_shiftout_y_lower = 0 CoordBase::boundary_shiftout_z_lower = 0
am i missing something?
many thanks, Miguel
On 13/02/18 12:54, Erik Schnetter wrote:
Miguel
Yes, this is possible. The trick is to set up a domain that is still 3D, but which is only 1 grid point wide in the z direction.
Clearly, this is not possible with cell-centred refinement, as refinement always splits cells into two. However, as vertex-centred refinement is the default, this might not be relevant here.
I also assume that you have a true 2+1 code that doesn't require any ghost zones in the z direction. You would then explicitly set the number of ghost zones and boundary zones to be 0 in the z direction.
The "usual" problem I encounter when setting up such a domain is that it's slightly inconvenient to specify the coordinates and grid spacings in the z direction. I prefer to define the domain extent via CoordBase, so I assume you're doing the same.
Usually, you would specify zmin, zmax, and ncells_z to define the domain. However, if you specify zmin=0, zmax=0, and then set ncells_z=0 (0 cells correspond to 1 point), then Carpet calculates dz = (zmax - zmin) / ncells_z, which is undefined since you divide zero by zero. So instead of specifying zmin, zmax, ncells_z, you have to specify zmin, zmax, and dz. Carpet then calculates ncells_k = (zmax - zmin) / dz, which is fine. In short, setting CoordBase::spacing = "numcells" will fail, and you have to use CoordBase::spacing = "gridspacing" instead.
That's about it. Of course, it's easy to make off-by-one errors in the parameter file, so looking at 1D ASCII output to see whether the coordinates and domain sizes you specified are correct is important.
Unfortunately I do not have a sample parameter file.
-erik
On Mon, Feb 12, 2018 at 8:14 PM, Miguel Zilhão <miguel.zilhao.nogueira@tecnico.ulisboa.pt mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi all, i have a 2+1 simulation that i would like to run with the ET, and i would like to use Carpet for the mesh refinement in the spatial (x and y) directions. is this possible? is there an example parameter file that i could have a look at? many thanks, Miguel _______________________________________________ Users mailing list Users@einsteintoolkit.org <mailto:Users@einsteintoolkit.org> http://lists.einsteintoolkit.org/mailman/listinfo/users <http://lists.einsteintoolkit.org/mailman/listinfo/users>-- Erik Schnetter <schnetter@cct.lsu.edu mailto:schnetter@cct.lsu.edu> http://www.perimeterinstitute.ca/personal/eschnetter/
On 13 Feb 2018, at 06:19, Miguel Zilhão miguel.zilhao.nogueira@tecnico.ulisboa.pt wrote:
hi Erik,
thanks for your reply. i've tried to set the parameters as you described, but i'm getting a Carpet assertion failure:
cactus_Lean_ET: Cactus/arrangements/Carpet/CarpetLib/src/gh.cc:61 http://gh.cc:61/: gh::gh(const std::vector<vect<int, 3> >&, centering, int, centering, const std::vector<std::vector<bbox<int, 3> >
&, const i2vect&): Assertion `all(box.shape() / box.stride() >= boundary_width[0] +
boundary_width[1])' failed.
here's how i'm specifying my grid:
CoordBase::xmin = -48.00 CoordBase::ymin = -48.00 CoordBase::zmin = 0.00 CoordBase::xmax = +48.00 CoordBase::ymax = +48.00 CoordBase::zmax = +0.00 CoordBase::dx = 2.00 CoordBase::dy = 2.00 CoordBase::dz = 2.00
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_z_lower = 0 CoordBase::boundary_size_x_upper = 0 CoordBase::boundary_size_y_upper = 0 CoordBase::boundary_size_z_upper = 0
CoordBase::boundary_shiftout_x_lower = 0 CoordBase::boundary_shiftout_y_lower = 0 CoordBase::boundary_shiftout_z_lower = 0
am i missing something?
Hi Miguel,
There is an example parameter file in Kranc, for a true 2D Laplace equation (i.e. it doesn't take derivatives in the z direction):
https://github.com/ianhinder/Kranc/blob/master/Examples/laplace.par
I have not tried this recently, but it worked at one point.
hi Ian,
many thanks for the parameter file. this allowed me to go a little further (i was missing CoordBase::boundary_shiftout_z_lower = 1 and CoordBase::boundary_shiftout_z_upper = 1). however, i'm still getting the following error:
ERROR from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn Carpet, file ./Cactus/arrangements/Carpet/Carpet/src/SetupGH.cc:2512: -> There are not enough ghost zones for the desired spatial prolongation order on map 0, refinement level 0. With a spatial prolongation order of 5, you need at least 3 ghost zones.
i'm setting:
Carpet::prolongation_order_space = 5 Carpet::prolongation_order_time = 2
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
i'm guessing that in the example you provided things worked because you only had one grid? is there any way of doing this with more inner levels?
thanks, Miguel
On 14/02/18 22:25, ian.hinder@aei.mpg.de wrote:
On 13 Feb 2018, at 06:19, Miguel Zilhão <miguel.zilhao.nogueira@tecnico.ulisboa.pt mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi Erik,
thanks for your reply. i've tried to set the parameters as you described, but i'm getting a Carpet assertion failure:
cactus_Lean_ET: Cactus/arrangements/Carpet/CarpetLib/src/gh.cc:61 http://gh.cc:61/: gh::gh(const std::vector<vect<int, 3> >&, centering, int, centering, const std::vector<std::vector<bbox<int, 3> >
&, const i2vect&): Assertion `all(box.shape() / box.stride() >= boundary_width[0] +
boundary_width[1])' failed.
here's how i'm specifying my grid:
CoordBase::xmin = -48.00 CoordBase::ymin = -48.00 CoordBase::zmin = 0.00 CoordBase::xmax = +48.00 CoordBase::ymax = +48.00 CoordBase::zmax = +0.00 CoordBase::dx = 2.00 CoordBase::dy = 2.00 CoordBase::dz = 2.00
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_z_lower = 0 CoordBase::boundary_size_x_upper = 0 CoordBase::boundary_size_y_upper = 0 CoordBase::boundary_size_z_upper = 0
CoordBase::boundary_shiftout_x_lower = 0 CoordBase::boundary_shiftout_y_lower = 0 CoordBase::boundary_shiftout_z_lower = 0
am i missing something?
Hi Miguel,
There is an example parameter file in Kranc, for a true 2D Laplace equation (i.e. it doesn't take derivatives in the z direction):
https://github.com/ianhinder/Kranc/blob/master/Examples/laplace.par
I have not tried this recently, but it worked at one point.
-- Ian Hinder http://members.aei.mpg.de/ianhin
On 14 Feb 2018, at 16:21, Miguel Zilhão miguel.zilhao.nogueira@tecnico.ulisboa.pt wrote:
hi Ian,
many thanks for the parameter file. this allowed me to go a little further (i was missing CoordBase::boundary_shiftout_z_lower = 1 and CoordBase::boundary_shiftout_z_upper = 1). however, i'm still getting the following error:
ERROR from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn Carpet, file ./Cactus/arrangements/Carpet/Carpet/src/SetupGH.cc:2512: -> There are not enough ghost zones for the desired spatial prolongation order on map 0, refinement level 0. With a spatial prolongation order of 5, you need at least 3 ghost zones.
i'm setting:
Carpet::prolongation_order_space = 5 Carpet::prolongation_order_time = 2
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
i'm guessing that in the example you provided things worked because you only had one grid? is there any way of doing this with more inner levels?
Hi,
I have never tried to do this with mesh refinement, no. This might be a limitation in Carpet, because perhaps it tries to prolongate with the same order in every direction.
Miguel
Apparently you do need to keep requesting 3 ghost zones. This won't extend the grid since you still have 0 boundary zones.
-erik
On Wed, Feb 14, 2018 at 10:21 AM, Miguel Zilhão < miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi Ian,
many thanks for the parameter file. this allowed me to go a little further (i was missing CoordBase::boundary_shiftout_z_lower = 1 and CoordBase::boundary_shiftout_z_upper = 1). however, i'm still getting the following error:
ERROR from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn Carpet, file ./Cactus/arrangements/Carpet/C arpet/src/SetupGH.cc:2512: -> There are not enough ghost zones for the desired spatial prolongation order on map 0, refinement level 0. With a spatial prolongation order of 5, you need at least 3 ghost zones.
i'm setting:
Carpet::prolongation_order_space = 5 Carpet::prolongation_order_time = 2
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
i'm guessing that in the example you provided things worked because you only had one grid? is there any way of doing this with more inner levels?
thanks, Miguel
On 14/02/18 22:25, ian.hinder@aei.mpg.de wrote:
On 13 Feb 2018, at 06:19, Miguel Zilhão <miguel.zilhao.nogueira@tecnic
o.ulisboa.pt mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi Erik,
thanks for your reply. i've tried to set the parameters as you described, but i'm getting a Carpet assertion failure:
cactus_Lean_ET: Cactus/arrangements/Carpet/CarpetLib/src/gh.cc:61 < http://gh.cc:61/%3E: gh::gh(const
std::vector<vect<int, 3> >&, centering, int, centering, const std::vector<std::vector<bbox<int, 3> >
&, const i2vect&): Assertion `all(box.shape() / box.stride() >= boundary_width[0] +
boundary_width[1])' failed.
here's how i'm specifying my grid:
CoordBase::xmin = -48.00 CoordBase::ymin = -48.00 CoordBase::zmin = 0.00 CoordBase::xmax = +48.00 CoordBase::ymax = +48.00 CoordBase::zmax = +0.00 CoordBase::dx = 2.00 CoordBase::dy = 2.00 CoordBase::dz = 2.00
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_z_lower = 0 CoordBase::boundary_size_x_upper = 0 CoordBase::boundary_size_y_upper = 0 CoordBase::boundary_size_z_upper = 0
CoordBase::boundary_shiftout_x_lower = 0 CoordBase::boundary_shiftout_y_lower = 0 CoordBase::boundary_shiftout_z_lower = 0
am i missing something?
Hi Miguel,
There is an example parameter file in Kranc, for a true 2D Laplace equation (i.e. it doesn't take derivatives in the z direction):
https://github.com/ianhinder/Kranc/blob/master/Examples/laplace.par
I have not tried this recently, but it worked at one point.
-- Ian Hinder http://members.aei.mpg.de/ianhin
I have a parameter file which I have used fairly recently that does this. A very short running test case is attached.
--Steve
On 02/14/2018 09:21 AM, Miguel Zilhão wrote:
hi Ian,
many thanks for the parameter file. this allowed me to go a little further (i was missing CoordBase::boundary_shiftout_z_lower = 1 and CoordBase::boundary_shiftout_z_upper = 1). however, i'm still getting the following error:
ERROR from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn Carpet, file ./Cactus/arrangements/Carpet/Carpet/src/SetupGH.cc:2512: -> There are not enough ghost zones for the desired spatial prolongation order on map 0, refinement level 0. With a spatial prolongation order of 5, you need at least 3 ghost zones.
i'm setting:
Carpet::prolongation_order_space = 5 Carpet::prolongation_order_time = 2
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
i'm guessing that in the example you provided things worked because you only had one grid? is there any way of doing this with more inner levels?
thanks, Miguel
On 14/02/18 22:25, ian.hinder@aei.mpg.de wrote:
On 13 Feb 2018, at 06:19, Miguel Zilhão <miguel.zilhao.nogueira@tecnico.ulisboa.pt mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi Erik,
thanks for your reply. i've tried to set the parameters as you described, but i'm getting a Carpet assertion failure:
cactus_Lean_ET: Cactus/arrangements/Carpet/CarpetLib/src/gh.cc:61 http://gh.cc:61/: gh::gh(const std::vector<vect<int, 3> >&, centering, int, centering, const std::vector<std::vector<bbox<int, 3> >
&, const i2vect&): Assertion `all(box.shape() / box.stride() >= boundary_width[0] +
boundary_width[1])' failed.
here's how i'm specifying my grid:
CoordBase::xmin = -48.00 CoordBase::ymin = -48.00 CoordBase::zmin = 0.00 CoordBase::xmax = +48.00 CoordBase::ymax = +48.00 CoordBase::zmax = +0.00 CoordBase::dx = 2.00 CoordBase::dy = 2.00 CoordBase::dz = 2.00
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_z_lower = 0 CoordBase::boundary_size_x_upper = 0 CoordBase::boundary_size_y_upper = 0 CoordBase::boundary_size_z_upper = 0
CoordBase::boundary_shiftout_x_lower = 0 CoordBase::boundary_shiftout_y_lower = 0 CoordBase::boundary_shiftout_z_lower = 0
am i missing something?
Hi Miguel,
There is an example parameter file in Kranc, for a true 2D Laplace equation (i.e. it doesn't take derivatives in the z direction):
https://github.com/ianhinder/Kranc/blob/master/Examples/laplace.par
I have not tried this recently, but it worked at one point.
-- Ian Hinder http://members.aei.mpg.de/ianhin
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
hi all,
many thanks for the parameter file, Steve. it works, but as soon as i set Carpet::prolongation_order_space = 5, i get inconsistent grid structure type of errors:
WARNING level 1 from host meurglysIII process 1 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn CarpetLib, file /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/CarpetLib/src/dh.cc:161: -> /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/CarpetLib/src/dh.cc:813: [ml=0 rl=1 c=1] The following grid structure consistency check failed: Refinement prolongation: Send region must be contained in exterior send <= obox.exterior
WARNING level 0 from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn CarpetLib, file /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/CarpetLib/src/dh.cc:2118: -> The grid structure is inconsistent. It is impossible to continue. cactus_Lean_ET_master: /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/Carpet/src/helpers.cc:275: int Carpet::Abort(const cGH*, int): Assertion `0' failed.
so i guess it's as Ian said, that Carpet tries to prolongate with the same order in every direction? i find that in order for this to work i either have to decrease the prolongation to order 1, or put the boundary along the z direction back to a non-zero value. but i guess in this latter case i no longer have a truly 2D configuration, right?
thanks, Miguel
On 15/02/18 03:00, Steven R. Brandt wrote:
I have a parameter file which I have used fairly recently that does this. A very short running test case is attached.
--Steve
On 02/14/2018 09:21 AM, Miguel Zilhão wrote:
hi Ian,
many thanks for the parameter file. this allowed me to go a little further (i was missing CoordBase::boundary_shiftout_z_lower = 1 and CoordBase::boundary_shiftout_z_upper = 1). however, i'm still getting the following error:
ERROR from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn Carpet, file ./Cactus/arrangements/Carpet/Carpet/src/SetupGH.cc:2512: -> There are not enough ghost zones for the desired spatial prolongation order on map 0, refinement level 0. With a spatial prolongation order of 5, you need at least 3 ghost zones.
i'm setting:
Carpet::prolongation_order_space = 5 Carpet::prolongation_order_time = 2
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
i'm guessing that in the example you provided things worked because you only had one grid? is there any way of doing this with more inner levels?
thanks, Miguel
On 14/02/18 22:25, ian.hinder@aei.mpg.de wrote:
On 13 Feb 2018, at 06:19, Miguel Zilhão <miguel.zilhao.nogueira@tecnico.ulisboa.pt mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi Erik,
thanks for your reply. i've tried to set the parameters as you described, but i'm getting a Carpet assertion failure:
cactus_Lean_ET: Cactus/arrangements/Carpet/CarpetLib/src/gh.cc:61 http://gh.cc:61/: gh::gh(const std::vector<vect<int, 3> >&, centering, int, centering, const std::vector<std::vector<bbox<int, 3> >
&, const i2vect&): Assertion `all(box.shape() / box.stride() >= boundary_width[0] +
boundary_width[1])' failed.
here's how i'm specifying my grid:
CoordBase::xmin = -48.00 CoordBase::ymin = -48.00 CoordBase::zmin = 0.00 CoordBase::xmax = +48.00 CoordBase::ymax = +48.00 CoordBase::zmax = +0.00 CoordBase::dx = 2.00 CoordBase::dy = 2.00 CoordBase::dz = 2.00
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_z_lower = 0 CoordBase::boundary_size_x_upper = 0 CoordBase::boundary_size_y_upper = 0 CoordBase::boundary_size_z_upper = 0
CoordBase::boundary_shiftout_x_lower = 0 CoordBase::boundary_shiftout_y_lower = 0 CoordBase::boundary_shiftout_z_lower = 0
am i missing something?
Hi Miguel,
There is an example parameter file in Kranc, for a true 2D Laplace equation (i.e. it doesn't take derivatives in the z direction):
https://github.com/ianhinder/Kranc/blob/master/Examples/laplace.par
I have not tried this recently, but it worked at one point.
-- Ian Hinder http://members.aei.mpg.de/ianhin
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Miguel
Yes, Carpet prolongates with the same order in each direction. However, in your case, prolongation in the z direction is exact and does not require any ghost zones, since nothing needs to happen in the z direction. Carpet should handle this correctly. Can you post a complete, simplified parameter file to reproduce the problem?
-erik
On Wed, Feb 14, 2018 at 10:36 PM, Miguel Zilhão < miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi all,
many thanks for the parameter file, Steve. it works, but as soon as i set Carpet::prolongation_order_space = 5, i get inconsistent grid structure type of errors:
WARNING level 1 from host meurglysIII process 1 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn CarpetLib, file /home/mzilhao/dev/ET/Cactus/ arrangements/Carpet/CarpetLib/src/dh.cc:161: -> /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/CarpetLib/src/dh.cc:813: [ml=0 rl=1 c=1] The following grid structure consistency check failed: Refinement prolongation: Send region must be contained in exterior send <= obox.exterior
WARNING level 0 from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn CarpetLib, file /home/mzilhao/dev/ET/Cactus/ arrangements/Carpet/CarpetLib/src/dh.cc:2118: -> The grid structure is inconsistent. It is impossible to continue. cactus_Lean_ET_master: /home/mzilhao/dev/ET/Cactus/ arrangements/Carpet/Carpet/src/helpers.cc:275: int Carpet::Abort(const cGH*, int): Assertion `0' failed.
so i guess it's as Ian said, that Carpet tries to prolongate with the same order in every direction? i find that in order for this to work i either have to decrease the prolongation to order 1, or put the boundary along the z direction back to a non-zero value. but i guess in this latter case i no longer have a truly 2D configuration, right?
thanks, Miguel
On 15/02/18 03:00, Steven R. Brandt wrote:
I have a parameter file which I have used fairly recently that does
this. A very short running test
case is attached.
--Steve
On 02/14/2018 09:21 AM, Miguel Zilhão wrote:
hi Ian,
many thanks for the parameter file. this allowed me to go a little
further (i was missing
CoordBase::boundary_shiftout_z_lower = 1 and
CoordBase::boundary_shiftout_z_upper = 1).
however, i'm still getting the following error:
ERROR from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no
routine)
in thorn Carpet, file ./Cactus/arrangements/Carpet/Carpet/src/SetupGH.cc:2512:
-> There are not enough ghost zones for the desired spatialprolongation order on map 0,
refinement level 0. With a spatial prolongation order of 5, you need
at least 3 ghost zones.
i'm setting:
Carpet::prolongation_order_space = 5 Carpet::prolongation_order_time = 2
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
i'm guessing that in the example you provided things worked because you
only had one grid? is there
any way of doing this with more inner levels?
thanks, Miguel
On 14/02/18 22:25, ian.hinder@aei.mpg.de wrote:
On 13 Feb 2018, at 06:19, Miguel Zilhão <miguel.zilhao.nogueira@
tecnico.ulisboa.pt
mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi Erik,
thanks for your reply. i've tried to set the parameters as you
described, but i'm getting a Carpet
assertion failure:
cactus_Lean_ET: Cactus/arrangements/Carpet/CarpetLib/src/gh.cc:61 <
http://gh.cc:61/%3E: gh::gh(const
std::vector<vect<int, 3> >&, centering, int, centering, const
std::vector<std::vector<bbox<int,
3> >
&, const i2vect&): Assertion `all(box.shape() / box.stride() >=
boundary_width[0] +
boundary_width[1])' failed.
here's how i'm specifying my grid:
CoordBase::xmin = -48.00 CoordBase::ymin = -48.00 CoordBase::zmin = 0.00 CoordBase::xmax = +48.00 CoordBase::ymax = +48.00 CoordBase::zmax = +0.00 CoordBase::dx = 2.00 CoordBase::dy = 2.00 CoordBase::dz = 2.00
driver::ghost_size_x = 3 driver::ghost_size_y = 3 driver::ghost_size_z = 0
CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_z_lower = 0 CoordBase::boundary_size_x_upper = 0 CoordBase::boundary_size_y_upper = 0 CoordBase::boundary_size_z_upper = 0
CoordBase::boundary_shiftout_x_lower = 0 CoordBase::boundary_shiftout_y_lower = 0 CoordBase::boundary_shiftout_z_lower = 0
am i missing something?
Hi Miguel,
There is an example parameter file in Kranc, for a true 2D Laplace
equation (i.e. it doesn't take
derivatives in the z direction):
https://github.com/ianhinder/Kranc/blob/master/Examples/laplace.par
I have not tried this recently, but it worked at one point.
-- Ian Hinder http://members.aei.mpg.de/ianhin
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
hi Erik,
i've attached a simple parameter file that shows the problem. if i comment out the line Carpet::prolongation_order_space = 5 it seems to go through.
thanks, Miguel
On 15/02/18 13:07, Erik Schnetter wrote:
Miguel
Yes, Carpet prolongates with the same order in each direction. However, in your case, prolongation in the z direction is exact and does not require any ghost zones, since nothing needs to happen in the z direction. Carpet should handle this correctly. Can you post a complete, simplified parameter file to reproduce the problem?
-erik
On Wed, Feb 14, 2018 at 10:36 PM, Miguel Zilhão <miguel.zilhao.nogueira@tecnico.ulisboa.pt mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi all, many thanks for the parameter file, Steve. it works, but as soon as i set Carpet::prolongation_order_space = 5, i get inconsistent grid structure type of errors: WARNING level 1 from host meurglysIII process 1 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn CarpetLib, file /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/CarpetLib/src/dh.cc:161: -> /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/CarpetLib/src/dh.cc:813: [ml=0 rl=1 c=1] The following grid structure consistency check failed: Refinement prolongation: Send region must be contained in exterior send <= obox.exterior WARNING level 0 from host meurglysIII process 0 while executing schedule bin (none), routine (no thorn)::(no routine) in thorn CarpetLib, file /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/CarpetLib/src/dh.cc:2118: -> The grid structure is inconsistent. It is impossible to continue. cactus_Lean_ET_master: /home/mzilhao/dev/ET/Cactus/arrangements/Carpet/Carpet/src/helpers.cc:275: int Carpet::Abort(const cGH*, int): Assertion `0' failed. so i guess it's as Ian said, that Carpet tries to prolongate with the same order in every direction? i find that in order for this to work i either have to decrease the prolongation to order 1, or put the boundary along the z direction back to a non-zero value. but i guess in this latter case i no longer have a truly 2D configuration, right? thanks, Miguel On 15/02/18 03:00, Steven R. Brandt wrote: > I have a parameter file which I have used fairly recently that does this. A very short running test > case is attached. > > --Steve > > > On 02/14/2018 09:21 AM, Miguel Zilhão wrote: >> hi Ian, >> >> many thanks for the parameter file. this allowed me to go a little further (i was missing >> CoordBase::boundary_shiftout_z_lower = 1 and CoordBase::boundary_shiftout_z_upper = 1). >> however, i'm still getting the following error: >> >> ERROR from host meurglysIII process 0 >> while executing schedule bin (none), routine (no thorn)::(no routine) >> in thorn Carpet, file ./Cactus/arrangements/Carpet/Carpet/src/SetupGH.cc:2512: >> -> There are not enough ghost zones for the desired spatial prolongation order on map 0, >> refinement level 0. With a spatial prolongation order of 5, you need at least 3 ghost zones. >> >> i'm setting: >> >> Carpet::prolongation_order_space = 5 >> Carpet::prolongation_order_time = 2 >> >> driver::ghost_size_x = 3 >> driver::ghost_size_y = 3 >> driver::ghost_size_z = 0 >> >> i'm guessing that in the example you provided things worked because you only had one grid? is there >> any way of doing this with more inner levels? >> >> thanks, >> Miguel >> >> On 14/02/18 22:25, ian.hinder@aei.mpg.de <mailto:ian.hinder@aei.mpg.de> wrote: >>> >>>> On 13 Feb 2018, at 06:19, Miguel Zilhão <miguel.zilhao.nogueira@tecnico.ulisboa.pt <mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> >>>> <mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt <mailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt>>> wrote: >>>> >>>> hi Erik, >>>> >>>> thanks for your reply. i've tried to set the parameters as you described, but i'm getting a Carpet >>>> assertion failure: >>>> >>>> cactus_Lean_ET: Cactus/arrangements/Carpet/CarpetLib/src/gh.cc:61 <http://gh.cc:61/>: gh::gh(const >>>> std::vector<vect<int, 3> >&, centering, int, centering, const std::vector<std::vector<bbox<int, >>>> 3> > >>>>> &, const i2vect&): Assertion `all(box.shape() / box.stride() >= boundary_width[0] + >>>> boundary_width[1])' failed. >>>> >>>> here's how i'm specifying my grid: >>>> >>>> CoordBase::xmin = -48.00 >>>> CoordBase::ymin = -48.00 >>>> CoordBase::zmin = 0.00 >>>> CoordBase::xmax = +48.00 >>>> CoordBase::ymax = +48.00 >>>> CoordBase::zmax = +0.00 >>>> CoordBase::dx = 2.00 >>>> CoordBase::dy = 2.00 >>>> CoordBase::dz = 2.00 >>>> >>>> driver::ghost_size_x = 3 >>>> driver::ghost_size_y = 3 >>>> driver::ghost_size_z = 0 >>>> >>>> CoordBase::boundary_size_x_lower = 3 >>>> CoordBase::boundary_size_y_lower = 3 >>>> CoordBase::boundary_size_z_lower = 0 >>>> CoordBase::boundary_size_x_upper = 0 >>>> CoordBase::boundary_size_y_upper = 0 >>>> CoordBase::boundary_size_z_upper = 0 >>>> >>>> CoordBase::boundary_shiftout_x_lower = 0 >>>> CoordBase::boundary_shiftout_y_lower = 0 >>>> CoordBase::boundary_shiftout_z_lower = 0 >>>> >>>> am i missing something? >>> Hi Miguel, >>> >>> There is an example parameter file in Kranc, for a true 2D Laplace equation (i.e. it doesn't take >>> derivatives in the z direction): >>> >>> https://github.com/ianhinder/Kranc/blob/master/Examples/laplace.par <https://github.com/ianhinder/Kranc/blob/master/Examples/laplace.par> >>> >>> I have not tried this recently, but it worked at one point. >>> >>> -- >>> Ian Hinder >>> http://members.aei.mpg.de/ianhin <http://members.aei.mpg.de/ianhin> >>> >> _______________________________________________ >> Users mailing list >> Users@einsteintoolkit.org <mailto:Users@einsteintoolkit.org> >> http://lists.einsteintoolkit.org/mailman/listinfo/users <http://lists.einsteintoolkit.org/mailman/listinfo/users> > > > > _______________________________________________ > Users mailing list > Users@einsteintoolkit.org <mailto:Users@einsteintoolkit.org> > http://lists.einsteintoolkit.org/mailman/listinfo/users <http://lists.einsteintoolkit.org/mailman/listinfo/users> > _______________________________________________ Users mailing list Users@einsteintoolkit.org <mailto:Users@einsteintoolkit.org> http://lists.einsteintoolkit.org/mailman/listinfo/users <http://lists.einsteintoolkit.org/mailman/listinfo/users>-- Erik Schnetter <schnetter@cct.lsu.edu mailto:schnetter@cct.lsu.edu> http://www.perimeterinstitute.ca/personal/eschnetter/
users@lists.einsteintoolkit.org