# Parameter definitions for thorn GRHydro # $Header$ shares:ADMBase USES int initial_shift "" { } USES KEYWORD metric_type "" { } EXTENDS KEYWORD shift_evolution_method "" { "Comoving" :: "Set the shift so the matter is approximately comoving" } ######################################### ### PARAMETRES SHARED FROM HydroBase ### ######################################### shares: HydroBase USES CCTK_INT timelevels USES KEYWORD prolongation_type USES INT hydro_excision EXTENDS KEYWORD evolution_method "" { "GRHydro" :: "Use GRHydro to evolve the hydro variables" } EXTENDS KEYWORD Bvec_evolution_method "" { "GRHydro" :: "Use GRHydro to evolve the MHD variables" } EXTENDS KEYWORD Y_e_evolution_method "" { "GRHydro" :: "Use GRHydro to evolve Y_e" } EXTENDS KEYWORD temperature_evolution_method "" { "GRHydro" :: "Use GRHydro to evolve temperature and entropy" } ######################################### ### PARAMETRES SHARED FROM MoL ### ######################################### shares: MethodOfLines USES CCTK_INT MoL_Num_Evolved_Vars USES CCTK_INT MoL_Num_Constrained_Vars USES CCTK_INT MoL_Num_SaveAndRestore_Vars USES CCTK_INT MoL_Max_Evolved_Array_Size USES CCTK_INT MoL_Num_ArrayEvolved_Vars shares:SpaceMask USES boolean use_mask shares: ADMMacros USES INT spatial_order restricted: BOOLEAN GRHydro_enable_internal_excision "Set this to 'false' to disable the thorn-internal excision." STEERABLE=ALWAYS { } "true" CCTK_INT GRHydro_hydro_excision "Turns excision automatically on in HydroBase" ACCUMULATOR-BASE=HydroBase::hydro_excision { 1:1 :: "Only '1' allowed" } 1 CCTK_INT GRHydro_MaxNumEvolvedVars "The maximum number of evolved variables used by GRHydro" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars { 5:10 :: "dens scon[3] tau Bvec[3] psidc ye" } 5 CCTK_INT GRHydro_MaxNumConstrainedVars "The maximum number of constrained variables used by GRHydro" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Constrained_Vars { 7:15 :: "A small range, depending on testing or not" } 9 CCTK_INT GRHydro_MaxNumSandRVars "The maximum number of save and restore variables used by GRHydro" ACCUMULATOR-BASE=MethodofLines::MoL_Num_SaveAndRestore_Vars { 0:16 :: "A small range, depending on testing or not" } 16 keyword recon_method "Which reconstruction method to use" { "tvd" :: "Slope limited TVD" "ppm" :: "PPM reconstruction" "eno" :: "ENO reconstruction" } "tvd" keyword method_type "Which type of method to use" { "RSA FV" :: "Reconstruct-Solve-Average finite volume method" "Flux Split FD" :: "Finite difference using Lax-Friedrichs flux splitting" } "RSA FV" boolean check_for_trivial_rp "Do check for trivial Riemann Problem" { } "yes" keyword recon_vars "Which type of variables to reconstruct" { "primitive" :: "Reconstruct the primitive variables" "conservative" :: "Reconstruct the conserved variables" } "primitive" keyword tvd_limiter "Which slope limiter to use" { "minmod" :: "Minmod" "vanleerMC" :: "Van Leer MC - Ian" "vanleerMC2" :: "Van Leer MC - Luca" "minmod2" :: "Minmod - Ian" "minmod3" :: "Minmod - Luca (or vice versa). Expect I've made a typo" "Superbee" :: "Superbee" } "minmod" real myfloor "A minimum number for the TVD reconstruction routine" { 0.0: :: "Must be positive" } 1.e-10 boolean ppm_detect "Should the PPM solver use shock detection?" { } "no" keyword ppm_flatten "Which flattening procedure should the PPM solver use?" { "stencil_3" :: "our flattening procedure, which requires only stencil 3 and which may work" "stencil_4" :: "original C&W flattening procedure, which requires stencil 4" } "stencil_3" real ppm_epsilon "Epsilon for PPM zone flattening" { 0.0: :: "Must be positive. Default is from Colella & Woodward" } 0.33 real ppm_omega1 "Omega1 for PPM zone flattening" { : :: "Anything goes. Default is from Colella & Woodward" } 0.75 real ppm_omega2 "Omega2 for PPM zone flattening" { : :: "Anything goes. Default is from Colella & Woodward" } 10.0 real ppm_omega_tracer "Omega for tracer PPM zone flattening" { : :: "Anything goes. Default is from Plewa & Mueller" } 0.50 real ppm_epsilon_shock "Epsilon for PPM shock detection" { : :: "Anything goes. Default is from Colella & Woodward" } 0.01 real ppm_eta1 "Eta1 for PPM shock detection" { : :: "Anything goes. Default is from Colella & Woodward" } 20.0 real ppm_eta2 "Eta2 for PPM shock detection" { : :: "Anything goes. Default is from Colella & Woodward" } 0.05 real ppm_k0 "K0 for PPM shock detection" { : :: "Anything goes. Default suggested by Colella & Woodward is: (polytropic constant)/10.0" } 0.2 real ppm_small "A floor used by PPM shock detection" { 0.0:1.0 :: "In [0,1]" } 1.e-7 int ppm_mppm "Use modified (enhanced) ppm scheme" { 0:1 :: "0 (off, default) or 1 (on)" } 0 int ppm_mppm_debug_eigenvalues "write eigenvalues into debug grid variables" { 0:1 :: "0 (off, default) or 1 (on)" } 0 int eno_order "The order of accuracy of the ENO reconstruction" { 1:* :: "Anything above 1, but above 5 is pointless" } 2 keyword riemann_solver "Which Riemann solver to use" { "Roe" :: "Standard Roe solver" "Marquina" :: "Marquina flux" "HLLE" :: "HLLE" } "HLLE" keyword HLLE_type "Which HLLE type to use" { "Standard" :: "Standard HLLE solver" "Tadmor" :: "Tadmor's simplification of HLLE" } "Standard" keyword left_eigenvectors "How to compute the left eigenvectors" { "analytical" :: "Analytical left eigenvectors" "numerical" :: "Numerical left eigenvectors" } "analytical" keyword numerical_viscosity "How to compute the numerical viscosity" { "fast" :: "Fast numerical viscosity" "normal" :: "Normal numerical viscosity" } "fast" keyword bound "Which boundary condition to use - FIXME" { "flat" :: "Zero order extrapolation" "none" :: "None" "static" :: "Static, no longer supported" "scalar" :: "Constant" } "none" int GRHydro_stencil "Width of the stencil" { 0: :: "Must be positive" } 2 keyword GRHydro_eos_type "Type of Equation of State" { "Polytype" :: "P = P(rho) or P = P(eps)" "General" :: "P = P(rho, eps)" } "General" string GRHydro_eos_table "Name for the Equation of State" { .* :: "Can be anything" } "Ideal_Fluid" real GRHydro_eos_rf_prec "Precision to which root finding should be carried out" STEERABLE=ALWAYS { (0.0:* :: "anything larger than 0 goes" } 1.0e-8 # cott@tapir.caltech.edu: # The below parameter controls the handling of EOS_Omni keyerr=667 # failures. In these failures, no new temperature can be found for the # eps it was called with. This may happen, for example, when a strong # shock appears for the first time. Code checking this parameter will, # if it is set to true, locally inject heat to fix the problem. # This normally happens only very rarely, but one must monitor total energy # conservation to check that this does ruin energy conservation. boolean GRHydro_eos_hot_eps_fix "Activate quasi-failsafe mode for hot EOSs" STEERABLE=ALWAYS { } "no" ####################### Other Parameters ############################## #Parameters controlling conservative <-> primitive change. int GRHydro_c2p_warnlevel "Warnlevel for Con2Prim warnings" STEERABLE=ALWAYS { 0:1 :: "Either 0 or 1" } 0 boolean c2p_reset_pressure "If the pressure guess is unphysical should we recompute it?" { } "no" real c2p_reset_pressure_to_value "The value to which the pressure is reset to when a failure occurrs in C2P" { 0: :: "greater than zero" } 1.e-20 real GRHydro_eps_min "Minimum value of internal energy - this is now only used in GRHydro_InitData's GRHydro_Only_Atmo routine" { 0: :: "Positive" } 1.e-10 real GRHydro_perc_ptol "Tolerance for primitive variable solve (percent)" STEERABLE=ALWAYS { 0: :: "Do we really want both tolerances?" } 1.e-8 real GRHydro_del_ptol "Tolerance for primitive variable solve (absolute)" STEERABLE=ALWAYS { 0: :: "Do we really want both tolerances?" } 1.e-18 int GRHydro_countmax "Maximum number of iterations for Con2Prim solve" { 1:* :: "Must be positive" } 100 int GRHydro_countmin "Minimum number of iterations for Con2Prim solve" { 0:* :: "Must be non negative" } 1 int GRHydro_polish "Number of extra iterations after root found" { 0:* :: "Must be non negative" } 0 ###Parameters for compact fluid objects REAL GRHydro_rho_central "Central Density for Star" { : :: "" } 1.e-5 ##Parameters for the atmosphere. REAL rho_abs_min "A minimum rho below which evolution is turned off (atmosphere). If negative, the relative minimum will be used instead." { -1.0: :: "" } -1.0 REAL rho_rel_min "A minimum relative rho (rhomin = centden * rho_rel_min) below which evolution is turned off (atmosphere). Only used if rho_abs_min < 0.0" { 0: :: "" } 1.e-9 REAL initial_rho_abs_min "An absolute value for rho in the atmosphere. To be used by initial data routines only. Unused if negative." { -1.0: :: "" } -1.0 REAL initial_rho_rel_min "A relative (to the central density) value for rho in the atmosphere. To be used by initial data routines only. Unused if negative." { -1.0: :: "" } -1.0 REAL initial_atmosphere_factor "A relative (to the initial atmosphere) value for rho in the atmosphere. This is used at initial time only. Unused if negative." { -1.0: :: "" } -1.0 REAL rho_abs_min_after_recovery "A new absolute value for rho in the atmosphere. To be used after recovering. Unused if negative." STEERABLE=ALWAYS { -1.0: :: "" } -1.0 REAL GRHydro_atmo_tolerance "A point is set to atmosphere in the Con2Prim's if its rho < GRHydro_rho_min *(1+GRHydro_atmo_tolerance). This avoids occasional spurious oscillations in carpet buffer zones lying in the atmosphere (because prolongation happens on conserved variables)" STEERABLE=ALWAYS { 0.0: :: "Zero or larger. A useful value could be 0.0001" } 0.0 BOOLEAN wk_atmosphere "Use some of Wolfgang Kastauns atmosphere tricks" { } "no" BOOLEAN Check_Rho_Minimum "Should a check on rho < GRHydro_rho_min be performed and written as WARNING level 2?" { } "no" boolean EoS_Change "Recalculate fluid quantities if changing the EoS" { } "no" keyword EoS_Change_type "Change polytropic K or Gamma?" { "K" :: "Change the K" "Gamma" :: "Change the Gamma" "GammaKS" :: "Change K and Gamma, Shibata et al. 2004 3-D GR Core Collapse style" } "Gamma" real initial_Gamma "If changing Gamma, what was the value used in the initial data routine?" { (0.0: :: "Positive" } 1.3333 real initial_k "If changing K, what was the value used in the initial data routine?" { (0.0: :: "Positive" } 100.0 #If you want to use FishEye, you need the weighted fluxes BOOLEAN use_weighted_fluxes "Weight the flux terms by the cell surface areas" { } "no" #For the comoving shift real comoving_factor "Factor multiplying the velocity for the comoving shift" { 0.0:2.0 :: "[0,2] is allowed, but [0,1] is probably reasonable" } 0.0 keyword comoving_attenuate "Which attenuation method for the comoving shift" { "sqrt" :: "Multiply by sqrt(rho/rho_max)" "tanh" :: "Multiply by 1/2*(1+tanh(factor*(rho/rho_max - offset)))" } "tanh" keyword comoving_v_method "Which method for getting the radial velocity" { "projected" :: "vr = x_i . v^i / r" "components" :: "vr = sqrt(v_i v^i)" } "projected" real comoving_tanh_factor "The factor in the above tanh attenuation" { (0.0:* :: "Any positive number" } 10.0 real comoving_tanh_offset "The offset in the above tanh attenuation" { 0.0:1.0 :: "Only makes sense in [0,1]" } 0.05 int set_trivial_rp_grid_function "set gf for triv. rp (only for debugging)" { 0:1 :: "0 for no (default), 1 for yes" } 0 #Advect a tracer? boolean evolve_tracer "Should we advect tracers?" { } "no" int number_of_tracers "Number of tracer variables to be advected" { 0:* :: "positive or zero" } 0 boolean use_min_tracer "Should there be a floor on the tracer?" { } "no" real min_tracer "The floor placed on the tracer" { *:* :: "Anything" } 0.0 #Track particles? int number_of_particles "Number of particles to track" ACCUMULATOR-BASE=MethodOfLines::MoL_Max_Evolved_Array_Size { 0:* :: "0 switches off particle tracking" } 0 int number_of_arrays "Number of arrays to evolve" ACCUMULATOR-BASE=MethodOfLines::MoL_Num_ArrayEvolved_Vars { 0:3 :: "Either zero or three, depending on the particles" } 0 STRING particle_interpolator "What interpolator should be used for the particles" { ".+" :: "A valid interpolator name" } "Lagrange polynomial interpolation" CCTK_INT particle_interpolation_order "What order should be used for the particle interpolation" { 1:* :: "A valid positive interpolation order" } 2 #Finding the local gradient keyword gradient_method "Which method is used to set GRHydro::DiffRho?" { "First diff" :: "Standard first differences" "Curvature" :: "Curvature based method of Paramesh / FLASH" "Rho weighted" :: "Based on the size of rho" } "First diff" # NaN detection level INT GRHydro_NaN_verbose "The warning level for NaNs occuring within GRHydro" { 0:* :: "The warning level" } 2 CCTK_REAL GRHydro_lorentz_overshoot_cutoff "Set the Lorentz factor to this value in case it overshoots (1/0)" { 0:* :: "Some big value" } 1.e100 boolean clean_divergence "Should we advect tracers?" { } "no" CCTK_REAL ch_dc "The c_h parameter for divergence cleaning" { 0:* :: "Any value, but one is preferred" } 1.0 CCTK_REAL cp_dc "The c_p parameter for divergence cleaning" { 0:* :: "Any value, but one to 12 is preferred" } 1.0 ############### temporary parameters to be removed once connected issues are fixed. boolean con2prim_oct_hack "Disregard c2p failures in oct/rotsym90 boundary cells with xyz < 0" STEERABLE=ALWAYS { } "no" int GRHydro_c2p_warn_from_reflevel "Start warning on given refinement level and on higher levels" STEERABLE=ALWAYS { 0: :: "Greater or equal to 0" } 0