Hi, I'm trying to use the thorns WeylScal4 and Multipole to compute psi4, but I have the following problem. They require GenericFD and this returns the following error message soon after initial data computation:
WARNING level 0 in thorn GenericFD processor 0 host i114-208.ranger.tacc.utexas.edu (line 107 of /work/01052/tg803155/EinsteinToolkit/Maxwell/Cactus/arrangements/KrancNumericalTools/GenericFD/src/GenericFD.c): -> Number of boundary points is different on different faces
I'm using ReflectionSymmetry and RotatingSymmetry180. Do GenericFD, Multipole and WeylScal4 work with these symmetries? At the end of the email you can find the parameters I'm using for the grid and for these thorns.
Thanks, Bruno
Dr. Bruno Giacomazzo JILA - University of Colorado 440 UCB Boulder, CO 80309 USA
Tel. : +1 303-492-0389 Fax : +1 303-492-5235 email : bruno.giacomazzo@jila.colorado.edu web: http://www.brunogiacomazzo.org
---------------------------------------------------------------------- There are only 10 types of people in the world: Those who understand binary, and those who don't ----------------------------------------------------------------------
# Parameters of thorn Carpet (implementing Driver) Carpet::convergence_level = 0 Carpet::domain_from_coordbase = "yes" Carpet::enable_all_storage = "no" Carpet::ghost_size = 3 Carpet::init_each_timelevel = "no" Carpet::init_fill_timelevels = "yes" Carpet::max_refinement_levels = 7 Carpet::num_integrator_substeps = 4 Carpet::output_timers_every = 2800 Carpet::prolongation_order_space = 5 Carpet::prolongation_order_time = 2 Carpet::regrid_during_initialisation = "no" Carpet::regrid_during_recovery = "no" Carpet::regrid_in_level_mode = "yes" Carpet::use_buffer_zones = "yes" Carpet::verbose = "no"
# Parameters of thorn CarpetLib (implementing CarpetLib) CarpetLib::print_memstats_every = 2800 CarpetLib::print_timestats_every = 2800
# Parameters of thorn CarpetRegrid2 (implementing CarpetRegrid2) CarpetRegrid2::num_centres = 1 CarpetRegrid2::num_levels_1 = 7 CarpetRegrid2::position_x_1 = 0 CarpetRegrid2::radius_1[1] = 320 CarpetRegrid2::radius_1[2] = 160 CarpetRegrid2::radius_1[3] = 80 CarpetRegrid2::radius_1[4] = 40 CarpetRegrid2::radius_1[5] = 30 CarpetRegrid2::radius_1[6] = 20 CarpetRegrid2::symmetry_rotating180 = "yes" CarpetRegrid2::verbose = "no"
# Parameters of thorn CartGrid3D (implementing grid) CartGrid3D::type = "coordbase"
# Parameters of thorn CoordBase (implementing CoordBase) CoordBase::boundary_shiftout_x_lower = 1 CoordBase::boundary_shiftout_z_lower = 1 CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_z_lower = 3 CoordBase::domainsize = "minmax" CoordBase::dx = 12.800000000000000711 CoordBase::dy = 12.800000000000000711 CoordBase::dz = 12.800000000000000711 CoordBase::xmax = 1024 CoordBase::xmin = 0 CoordBase::ymax = 1024 CoordBase::ymin = -1024 CoordBase::zmax = 1024 CoordBase::zmin = 0
# Parameters of thorn Multipole (implementing multipole) Multipole::l_max = 5 Multipole::nphi = 240 Multipole::nradii = 4 Multipole::ntheta = 120 Multipole::out_every = 64 Multipole::output_ascii = "no" Multipole::output_hdf5 = "yes" Multipole::radius[0] = 100 Multipole::radius[1] = 200 Multipole::radius[2] = 400 Multipole::radius[3] = 800 Multipole::variables = "WeylScal4::Psi4r{sw=-2 cmplx='WeylScal4::Psi4i' name='psi4'}"
# Parameters of thorn ReflectionSymmetry (implementing ReflectionSymmetry) ReflectionSymmetry::avoid_origin_x = "no" ReflectionSymmetry::avoid_origin_y = "no" ReflectionSymmetry::avoid_origin_z = "no" ReflectionSymmetry::reflection_x = "no" ReflectionSymmetry::reflection_y = "no" ReflectionSymmetry::reflection_z = "yes"
# Parameters of thorn WeylScal4 (implementing WeylScal4) WeylScal4::fd_order = "2nd"
Hello Bruno,
I'm using ReflectionSymmetry and RotatingSymmetry180. Do GenericFD, Multipole and WeylScal4 work with these symmetries? At the end of the email you can find the parameters I'm using for the grid and for these thorns.
Yes, they are compatible (crossing my fingers).
# Parameters of thorn CoordBase (implementing CoordBase) CoordBase::boundary_shiftout_x_lower = 1 CoordBase::boundary_shiftout_z_lower = 1 CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_z_lower = 3
Maybe CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_x_upper = 3 CoordBase::boundary_size_y_upper = 3 CoordBase::boundary_size_z_upper = 3 are missing? I certainly use those.
Yours, Roland
Hi Roland, thanks for the prompt reply. On Mar 1, 2012, at 12:46 PM, Roland Haas wrote:
# Parameters of thorn CoordBase (implementing CoordBase) CoordBase::boundary_shiftout_x_lower = 1 CoordBase::boundary_shiftout_z_lower = 1 CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_z_lower = 3
Maybe CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_x_upper = 3 CoordBase::boundary_size_y_upper = 3 CoordBase::boundary_size_z_upper = 3 are missing? I certainly use those.
this fixed the problem.
In the past I never used the *_upper and I used the*_ lower only for those directions where I was applying a symmetry condition. I think the *_upper just extends the grid from xmax to xmax+3*dx, while without them the boundary points are included in xmax. I'm not sure what is the effect of having added also y_lower, but the initial data look correct as before.
Thank you, Bruno
Dr. Bruno Giacomazzo JILA - University of Colorado 440 UCB Boulder, CO 80309 USA
Tel. : +1 303-492-0389 Fax : +1 303-492-5235 email : bruno.giacomazzo@jila.colorado.edu web: http://www.brunogiacomazzo.org
---------------------------------------------------------------------- There are only 10 types of people in the world: Those who understand binary, and those who don't ----------------------------------------------------------------------
On 1 Mar 2012, at 22:14, Bruno Giacomazzo wrote:
Hi Roland, thanks for the prompt reply.
On Mar 1, 2012, at 12:46 PM, Roland Haas wrote:
# Parameters of thorn CoordBase (implementing CoordBase) CoordBase::boundary_shiftout_x_lower = 1 CoordBase::boundary_shiftout_z_lower = 1 CoordBase::boundary_size_x_lower = 3 CoordBase::boundary_size_z_lower = 3
Maybe CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_x_upper = 3 CoordBase::boundary_size_y_upper = 3 CoordBase::boundary_size_z_upper = 3 are missing? I certainly use those.
this fixed the problem.
In the past I never used the *_upper and I used the*_ lower only for those directions where I was applying a symmetry condition. I think the *_upper just extends the grid from xmax to xmax+3*dx, while without them the boundary points are included in xmax. I'm not sure what is the effect of having added also y_lower, but the initial data look correct as before.
The boundary_size parameters identify a certain number of points as "boundary points". Application thorns are free to interpret these as they see fit. They default to 1, so you were using a boundary size of 1 for the physical boundaries.
WeylScal4, and generally all Kranc thorns, interpret the boundary points as those on which the standard stencil computation for the interior cannot be used, so it is consistent with other boundary conditions (e.g. symmetry boundary conditions) and interprocessor boundaries.
I think that GenericFD could/should be modified to allow different numbers of boundary points on the different faces, but this would not change the outcome here, as if you got past this check, WeylScal4 would complain because it really *does* need to have a boundary size at least as large as its stencil size.
On Thu, Mar 1, 2012 at 4:14 PM, Bruno Giacomazzo bruno.giacomazzo@jila.colorado.edu wrote:
Hi Roland, thanks for the prompt reply.
On Mar 1, 2012, at 12:46 PM, Roland Haas wrote:
# Parameters of thorn CoordBase (implementing CoordBase)
CoordBase::boundary_shiftout_x_lower = 1
CoordBase::boundary_shiftout_z_lower = 1
CoordBase::boundary_size_x_lower = 3
CoordBase::boundary_size_z_lower = 3
Maybe CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_x_upper = 3 CoordBase::boundary_size_y_upper = 3 CoordBase::boundary_size_z_upper = 3 are missing? I certainly use those.
this fixed the problem.
In the past I never used the *_upper and I used the*_ lower only for those directions where I was applying a symmetry condition. I think the *_upper just extends the grid from xmax to xmax+3*dx, while without them the boundary points are included in xmax. I'm not sure what is the effect of having added also y_lower, but the initial data look correct as before.
This parameter specifies to other thorns (including Carpet) how many boundary zones there are, as explained by Ian.
If you don't want the grid to become larger in these directions, you can set these to "inner" boundaries, which means that the boundary zones don't get added to the outside, but rather "relabel" grid points that would otherwise be interior grid points. Both are consistent; the difference in only where the boundary grid points are located with respect to the physical outer boundary. You can also use the shiftout parameters to move the boundary points with a similar effect.
On symmetry boundaries, you need to use "outer" boundaries and a "shiftout" of 1 (for vertex centering), as you already do. But you are free to specify anything on other boundaries.
-erik
Hi Erik and Ian, thanks for the explanation. In the past I never had problems when I was not setting those parameters (particularly the *_upper ones). Anyway I will always make sure to set them in my par files.
Cheers, Bruno
On Mar 1, 2012, at 2:43 PM, Erik Schnetter wrote:
On Thu, Mar 1, 2012 at 4:14 PM, Bruno Giacomazzo bruno.giacomazzo@jila.colorado.edu wrote:
Hi Roland, thanks for the prompt reply.
On Mar 1, 2012, at 12:46 PM, Roland Haas wrote:
# Parameters of thorn CoordBase (implementing CoordBase)
CoordBase::boundary_shiftout_x_lower = 1
CoordBase::boundary_shiftout_z_lower = 1
CoordBase::boundary_size_x_lower = 3
CoordBase::boundary_size_z_lower = 3
Maybe CoordBase::boundary_size_y_lower = 3 CoordBase::boundary_size_x_upper = 3 CoordBase::boundary_size_y_upper = 3 CoordBase::boundary_size_z_upper = 3 are missing? I certainly use those.
this fixed the problem.
In the past I never used the *_upper and I used the*_ lower only for those directions where I was applying a symmetry condition. I think the *_upper just extends the grid from xmax to xmax+3*dx, while without them the boundary points are included in xmax. I'm not sure what is the effect of having added also y_lower, but the initial data look correct as before.
This parameter specifies to other thorns (including Carpet) how many boundary zones there are, as explained by Ian.
If you don't want the grid to become larger in these directions, you can set these to "inner" boundaries, which means that the boundary zones don't get added to the outside, but rather "relabel" grid points that would otherwise be interior grid points. Both are consistent; the difference in only where the boundary grid points are located with respect to the physical outer boundary. You can also use the shiftout parameters to move the boundary points with a similar effect.
On symmetry boundaries, you need to use "outer" boundaries and a "shiftout" of 1 (for vertex centering), as you already do. But you are free to specify anything on other boundaries.
-erik
-- Erik Schnetter schnetter@cct.lsu.edu http://www.perimeterinstitute.ca/personal/eschnetter/
Dr. Bruno Giacomazzo JILA - University of Colorado 440 UCB Boulder, CO 80309 USA
Tel. : +1 303-492-0389 Fax : +1 303-492-5235 email : bruno.giacomazzo@jila.colorado.edu web: http://www.brunogiacomazzo.org
---------------------------------------------------------------------- There are only 10 types of people in the world: Those who understand binary, and those who don't ----------------------------------------------------------------------
users@lists.einsteintoolkit.org