CarpetX: a Cactus driver for the Einstein Toolkit based on AMReX
# Parameter definitions for thorn CarpetX

PRIVATE:

BOOLEAN verbose "Verbose output" STEERABLE=always
{
} no

BOOLEAN poison_undefined_values "Set undefined grid point values to nan" STEERABLE=always
{
} yes



CCTK_REAL xmin "Domain size (location of vertices)"
{
  *:* :: ""
} -1.0

CCTK_REAL xmax "Domain size (location of vertices)"
{
  *:* :: ""
} 1.0

CCTK_REAL ymin "Domain size (location of vertices)"
{
  *:* :: ""
} -1.0

CCTK_REAL ymax "Domain size (location of vertices)"
{
  *:* :: ""
} 1.0

CCTK_REAL zmin "Domain size (location of vertices)"
{
  *:* :: ""
} -1.0

CCTK_REAL zmax "Domain size (location of vertices)"
{
  *:* :: ""
} 1.0



CCTK_INT ncells_x "Number of grid cells"
{
  1:* :: "must be a multiple of the blocking factor"
} 128

CCTK_INT ncells_y "Number of grid cells"
{
  1:* :: "must be a multiple of the blocking factor"
} 128

CCTK_INT ncells_z "Number of grid cells"
{
  1:* :: "must be a multiple of the blocking factor"
} 128



RESTRICTED:

BOOLEAN periodic_x "Periodic"
{
} yes

BOOLEAN periodic_y "Periodic"
{
} yes

BOOLEAN periodic_z "Periodic"
{
} yes

BOOLEAN periodic "Periodic"
{
} no



PRIVATE:

BOOLEAN reflection_x "Reflection symmetry at the lower x boundary"
{
} no

BOOLEAN reflection_y "Reflection symmetry at the lower y boundary"
{
} no

BOOLEAN reflection_z "Reflection symmetry at the lower z boundary"
{
} no

BOOLEAN reflection_upper_x "Reflection symmetry at the upper x boundary"
{
} no

BOOLEAN reflection_upper_y "Reflection symmetry at the upper y boundary"
{
} no

BOOLEAN reflection_upper_z "Reflection symmetry at the upper z boundary"
{
} no



CCTK_INT blocking_factor_x "Blocking factor"
{
  1:* :: ""
} 8

CCTK_INT blocking_factor_y "Blocking factor"
{
  1:* :: ""
} 8

CCTK_INT blocking_factor_z "Blocking factor"
{
  1:* :: "must be a power of 2"
} 8

CCTK_INT max_grid_size_x "Maximum grid size"
{
  1:* :: "must be a multiple of the blocking factor"
} 32

CCTK_INT max_grid_size_y "Maximum grid size"
{
  1:* :: "must be a multiple of the blocking factor"
} 32

CCTK_INT max_grid_size_z "Maximum grid size"
{
  1:* :: "must be a multiple of the blocking factor"
} 32

CCTK_INT max_tile_size_x "Maximum tile size"
{
  1:* :: ""
} 1024000

CCTK_INT max_tile_size_y "Maximum tile size"
{
  1:* :: ""
} 16

CCTK_INT max_tile_size_z "Maximum tile size"
{
  1:* :: ""
} 32

CCTK_REAL grid_efficiency "Minimum AMR grid efficiency"
{
  0.0:* :: ""
} 0.7



CCTK_INT max_num_levels "Maximum number of refinement levels"
{
  1:* :: ""
} 1

CCTK_INT regrid_every "Regridding interval" STEERABLE=always
{
  0 :: "never"
  1:* :: "every that many iterations"
} 0

CCTK_REAL regrid_error_threshold "Regridding error threshold" STEERABLE=always
{
  0.0:* :: ""
} 1.0



CCTK_INT ghost_size "Number of ghost zones"
{
  -1 :: "use ghost_size_[xyz]"
  0:* :: ""
} -1

CCTK_INT ghost_size_x "Number of ghost zones"
{
  0:* :: ""
} 1

CCTK_INT ghost_size_y "Number of ghost zones"
{
  0:* :: ""
} 1

CCTK_INT ghost_size_z "Number of ghost zones"
{
  0:* :: ""
} 1



KEYWORD prolongation_type "Prolongation type"
{
  "interpolate" :: "interpolate between data points"
  "conservative" :: "interpolate cell averages, ensuring conservation"
  "ddf" :: "interpolate in vertex centred and conserve in cell centred directions"
} "interpolate"

CCTK_INT prolongation_order "Prolongation order"
{
  0:* :: ""
} 1

CCTK_INT interpolation_order "Interpolation order" STEERABLE=always
{
  0:* :: ""
} 1



BOOLEAN use_subcycling_wip "Use subcycling in time"
{
} no  



BOOLEAN do_reflux "Manage flux registers to ensure conservation"
{
} yes



BOOLEAN do_restrict "Automatically restrict fine to coarse grid functions"
{
} yes



BOOLEAN restrict_during_sync "Restrict fine to coarse grid functions when syncing"
{
} yes



CCTK_REAL dtfac "The standard timestep condition dt = dtfac*min(delta_space)"
{
  *:* :: ""
} 0.5



STRING in_dir "Input directory" STEERABLE=always
{
  ".*" :: ""
} ""

STRING in_file "Input file name" STEERABLE=always
{
  ".*" :: ""
} ""

STRING in_silo_vars "Variables to input in Silo format" STEERABLE=always
{
  ".*" :: ""
} ""



BOOLEAN out_metadata "Output metadata in YAML format?" STEERABLE=always
{
} no

STRING out_norm_vars "Variables to output as norms" STEERABLE=always
{
  ".*" :: ""
} "all"

BOOLEAN out_norm_omit_unstable "Omit unstable norms (e.g. maxloc)" STEERABLE=always
{
} no

STRING out_plotfile_groups "Groups to output as AMReX plotfile" STEERABLE=always
{
  ".*" :: ""
} ""

STRING out_silo_vars "Variables to output in Silo format" STEERABLE=always
{
  ".*" :: ""
} ""

BOOLEAN out_tsv "Output in TSV (tab-separated values) format?" STEERABLE=always
{
} no

STRING out_tsv_vars "Variables to output in TSV format" STEERABLE=always
{
  ".*" :: ""
} ""



SHARES: Cactus

USES BOOLEAN terminate_next
USES KEYWORD terminate
USES CCTK_INT cctk_itlast
USES CCTK_REAL cctk_initial_time
USES CCTK_REAL cctk_final_time
USES CCTK_REAL max_runtime
USES KEYWORD presync_mode

SHARES: IO

USES STRING out_dir
USES CCTK_INT out_every
USES KEYWORD out_mode
USES CCTK_INT out_proc_every

# USES STRING filereader_ID_dir
# USES STRING filereader_ID_files
# 
# USES STRING checkpoint_dir
# USES STRING recover_dir