[Users] 2D configuration with Carpet

Miguel Zilhão miguel.zilhao.nogueira at tecnico.ulisboa.pt
Wed Feb 14 23:08:24 CST 2018


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 at tecnico.ulisboa.pt 
> <mailto:miguel.zilhao.nogueira at 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 at aei.mpg.de <mailto:ian.hinder at aei.mpg.de> wrote:
>      >>>
>      >>>> On 13 Feb 2018, at 06:19, Miguel Zilhão <miguel.zilhao.nogueira at tecnico.ulisboa.pt
>     <mailto:miguel.zilhao.nogueira at tecnico.ulisboa.pt>
>      >>>> <mailto:miguel.zilhao.nogueira at tecnico.ulisboa.pt
>     <mailto:miguel.zilhao.nogueira at 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 at einsteintoolkit.org <mailto:Users at einsteintoolkit.org>
>      >> http://lists.einsteintoolkit.org/mailman/listinfo/users
>     <http://lists.einsteintoolkit.org/mailman/listinfo/users>
>      >
>      >
>      >
>      > _______________________________________________
>      > Users mailing list
>      > Users at einsteintoolkit.org <mailto:Users at einsteintoolkit.org>
>      > http://lists.einsteintoolkit.org/mailman/listinfo/users
>     <http://lists.einsteintoolkit.org/mailman/listinfo/users>
>      >
>     _______________________________________________
>     Users mailing list
>     Users at einsteintoolkit.org <mailto:Users at einsteintoolkit.org>
>     http://lists.einsteintoolkit.org/mailman/listinfo/users
>     <http://lists.einsteintoolkit.org/mailman/listinfo/users>
> 
> 
> 
> 
> -- 
> Erik Schnetter <schnetter at cct.lsu.edu <mailto:schnetter at cct.lsu.edu>>
> http://www.perimeterinstitute.ca/personal/eschnetter/
> 
-------------- next part --------------

#------------------------------------------------------------------------------
ActiveThorns = "
  ADMBase
  ADMCoupling
  ADMMacros
  AEILocalInterp
  Boundary
  Carpet
  CarpetInterp
  CarpetIOASCII
  CarpetIOBasic
  CarpetIOHDF5
  CarpetIOScalar
  CarpetLib
  CarpetReduce
  CarpetRegrid2
  CarpetSlab
  CartGrid3D
  CoordBase
  CoordGauge
  Fortran
  GenericFD
  GSL
  HDF5
  InitBase
  IOUtil
  LocalInterp
  LoopControl
  MoL
  ReflectionSymmetry
  # RotatingSymmetry90
  # RotatingSymmetry180
  Slab
  StaticConformal
  SymBase
  SystemStatistics
  Time
  TimerReport
  TmunuBase
"
#------------------------------------------------------------------------------


# Grid setup
#------------------------------------------------------------------------------

CartGrid3D::type                     = "coordbase"
Carpet::domain_from_coordbase        = yes
CoordBase::domainsize                = "minmax"

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                 = 3

CoordBase::boundary_size_x_lower     = 3
CoordBase::boundary_size_y_lower     = 3
CoordBase::boundary_size_z_lower     = 0
CoordBase::boundary_size_x_upper     = 3
CoordBase::boundary_size_y_upper     = 3
CoordBase::boundary_size_z_upper     = 0

CoordBase::boundary_shiftout_x_lower = 0
CoordBase::boundary_shiftout_y_lower = 0
CoordBase::boundary_shiftout_z_lower = 1
CoordBase::boundary_shiftout_x_upper = 0
CoordBase::boundary_shiftout_y_upper = 0
CoordBase::boundary_shiftout_z_upper = 1

CarpetRegrid2::symmetry_rotating180  = no

ReflectionSymmetry::reflection_x     = no
ReflectionSymmetry::reflection_y     = no
ReflectionSymmetry::reflection_z     = no
ReflectionSymmetry::avoid_origin_x   = yes
ReflectionSymmetry::avoid_origin_y   = yes
# ReflectionSymmetry::avoid_origin_z   = yes


# Mesh refinement
#------------------------------------------------------------------------------

Carpet::max_refinement_levels           = 6

CarpetRegrid2::num_centres              = 3

CarpetRegrid2::num_levels_1             = 6
CarpetRegrid2::position_x_1             = +1.0
CarpetRegrid2::radius_1[1]              = 24.0
CarpetRegrid2::radius_1[2]              = 12.0
CarpetRegrid2::radius_1[3]              =  6.0
CarpetRegrid2::radius_1[4]              =  3.0
CarpetRegrid2::radius_1[5]              =  1.5
# CarpetRegrid2::radius_1[6]              =  0.75

CarpetRegrid2::num_levels_2             = 6
CarpetRegrid2::position_x_2             = -1.0
CarpetRegrid2::radius_2[1]              = 24.0
CarpetRegrid2::radius_2[2]              = 12.0
CarpetRegrid2::radius_2[3]              =  6.0
CarpetRegrid2::radius_2[4]              =  3.0
CarpetRegrid2::radius_2[5]              =  1.5
# CarpetRegrid2::radius_2[6]              =  0.75

CarpetRegrid2::num_levels_3             = 6
CarpetRegrid2::active_3                 = no
CarpetRegrid2::radius_3[1]              = 24.0
CarpetRegrid2::radius_3[2]              = 12.0
CarpetRegrid2::radius_3[3]              =  6.0
CarpetRegrid2::radius_3[4]              =  3.0
CarpetRegrid2::radius_3[5]              =  1.5
# CarpetRegrid2::radius_3[6]              =  0.75


Carpet::use_buffer_zones                = yes
Carpet::prolongation_order_space        = 5
Carpet::prolongation_order_time         = 2

CarpetRegrid2::freeze_unaligned_levels  = yes
CarpetRegrid2::regrid_every             = 0

CarpetRegrid2::verbose                  = no

Carpet::grid_structure_filename         = "carpet-grid-structure"
Carpet::grid_coordinates_filename       = "carpet-grid-coordinates"

Time::dtfac                             = 0.4


# Initial Data
#------------------------------------------------------------------------------

ADMBase::initial_data                 = "Cartesian Minkowski"

ADMBase::lapse_timelevels             = 3
ADMBase::shift_timelevels             = 3
ADMBase::metric_timelevels            = 3


InitBase::initial_data_setup_method   = "init_some_levels"
Carpet::init_fill_timelevels          = yes
Carpet::init_3_timelevels             = no


# Evolution
#------------------------------------------------------------------------------

ADMBase::evolution_method         = "static"


# I/O thorns
#-------------------------------------------------------------------------------

Cactus::cctk_run_title       = $parfile
IO::out_dir                  = $parfile

IOBasic::outInfo_reductions  = "minimum maximum"
IOBasic::outInfo_vars        = "
  Carpet::physical_time_per_hour
  ADMBase::lapse
"

# Run termination
#-------------------------------------------------------------------------------

Cactus::terminate       = "iteration"
Cactus::cctk_itlast     = 1


More information about the Users mailing list