Hello all,
Constraint transport:
- unigrid, cell centred implementation seems to work for the balsara
shock tube tests as long as one is careful picking the parameters for
the shock to make sure it is perfectly diagonal on the grid
- Roland will re-run the test and send around the parameter files and
sample output
- still unsure about how many ghost zones are required
As promised attached please find parameter files and a plot of the
interesting output for the Balsara shock tube tests.
These are /similar/ but not identical to Bruno Mundom's original
balsara1d.par file (in GRHydro_initData/par). Please note that at least
the diagonal shock tube only runs on a single MPI processor (it produces
wrong results on more than one MPI process since it makes assumptions
about cctk_lsh and the location of the origin). Differences are: use TVD
instead of PPM, use ICN instead of RK2, use "flat" instead of "none",
use 4 ghost zones, put point at the origin, make domain cubical. None of
these should in principle be required (and they might not be, it was
just easier to test with them turned on since they make MoL much simpler
and detach the outer boundaries).
As of now the status is:
* any x,y,z shock has perfect divergence transport (divB=0 exactly)
* the diagonal shock (after checking it is diagonal on the grid),
develops small divergences on the order of divB=4e-12 in step 3. These
seem to be caused by roundoff. The expressions in the FORTRAN code
should give precisely zero. This I have tested with the attached Maple
worksheet which was created by copying and pasting the FORTRAN code then
making it digestible to Maple (in grhydro_cons.mw,
constraint_transport.mw is the beautified version used to check the
expressions first).
My current guess for the non-zero divB would be that (a) I have an
insidious bug, (b) divB is zero because of many numerical cancellations
(there are on the order of 16 terms contributing to it) so what I see is
simply loss of numerical accuracy.
In the attached image the upper half shows the x component of the B
field B^i and the lower half the divergence.
Yours,
Roland
--
My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from
http://keys.gnupg.net.
###
ActiveThorns = "time MoL cartgrid3d carpetioascii carpetslab ioutil Fortran boundary hydrobase grhydro grhydro_initdata nanchecker eos_omni CoordBase LoopControl CarpetLib Carpet CarpetIOHDF5 CarpetReduce spacemask ADMCoupling ADMMacros ADMBASE STATICCONFORMAL TMUNUBASE SymBase localreduce CarpetIOBasic initbase GRHydro_InitData TimerReport"
NaNChecker::check_every = 1
NaNChecker::check_vars = "ADMBase::curv ADMBase::metric ADMBase::lapse ADMBase::shift HydroBase::rho HydroBase::eps HydroBase::press HydroBase::vel HydroBase::w_lorentz HydroBase::Bvec"
NaNChecker::action_if_found = "terminate"
#NaNChecker::action_if_found = "abort"
#NaNChecker::action_if_found = "just warn" #"terminate", "just warn", "abort"
#NaNChecker::check_after=0
Carpet::output_timers_every = 64
Carpet::output_timer_tree_every = 64
Carpet::output_initialise_timer_tree = "yes"
CarpetLib::print_memstats_every = 256
CarpetLib::memstat_file = "carpetlib-memory-statistics.asc"
TimerReport::out_every = 256
TimerReport::out_filename = "TimerReport"
#TimerReport::output_all_timers = "yes"
#TimerReport::output_all_timers_together = "yes"
#TimerReport::output_all_timers_readable = "yes"
#TimerReport::before_checkpoint = "yes"
TimerReport::n_top_timers = 0
#This is a hack. ghost_size should be the same as grhydro::grhydro_stencil.
driver::ghost_size=4
grhydro::grhydro_stencil=4
#time::dtfac = 0.25
#time::dtfac = 0.8
time::dtfac = 0.2
methodoflines::ODE_Method = "icn"
methodoflines::MoL_Intermediate_Steps=1
#admbase::initial_data="prim2con2prim_test"
#GRHydro_InitData::Bx_init=0.1
#GRHydro_InitData::By_init=0.12
#GRHydro_InitData::Bz_init=0.14
HydroBase::initial_hydro="shocktube"
GRHydro_InitData::shocktube_type="diagshock2D"
GRHydro_InitData::shock_case="Balsara1"
HydroBase::timelevels=2
HydroBase::evolution_method="grhydro"
HydroBase::Bvec_evolution_method="grhydro"
SpaceMask::use_mask="yes"
EOS_Omni::gl_gamma=2.0
grhydro::track_divB="yes"
#grhydro::clean_divergence="yes"
#grhydro::clean_divergence="no"
grhydro::transport_constraints = "yes"
grhydro::psidcspeed="light speed"
grhydro::kap_dc=1.0
grhydro::method_type="RSA FV"
grhydro::recon_method="tvd"
#grhydro::recon_method="tvd"
#grhydro::tvd_limiter="vanleerMC"
grhydro::recon_vars="primitive"
grhydro::riemann_solver="HLLE"
grhydro::bound="flat"
#grhydro::bound="none"
grhydro::grhydro_eos_type = "General"
grhydro::grhydro_eos_table="Ideal_Fluid"
grhydro::Grhydro_MaxNumConstrainedVars=13
grhydro::GRHydro_MaxNumEvolvedVars=10
grid::type = "BySpacing"
grid::domain = "full"
#grid::dxyz = 0.01
#grid::dxyz = 0.000625
grid::dxyz = 0.0000625
grid::avoid_origin = no
driver::global_nx = 93
driver::global_ny = 93
driver::global_nz = 93
Cactus::terminate="iteration"
#Cactus::terminate="time"
#Cactus::cctk_final_time = 0.02
#Cactus::cctk_final_time = 0.4
#cactus::cctk_itlast = 40
cactus::cctk_itlast = 4
#cactus::cctk_itlast = 2
IO::out_dir = $parfile
#IOBasic::outInfo_every = 1
#IOBasic::outInfo_vars = "HydroBase::rho"
CarpetIOBasic::outInfo_vars="hydrobase::rho GRHydro::divB"
CarpetIOBasic::outInfo_every=1
IOASCII::out1D_every = 1
IOASCII::out1D_d=no
IOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::dens grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
##CarpetIOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::psidc grhydro::dens grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::dens grhydro::tau grhydro::scon "
#CarpetIOHDF5::out_every = 1
#CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::psidc grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::tau grhydro::scon "
CarpetIOHDF5::out3D_every = 1
CarpetIOHDF5::out3D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
CarpetIOHDF5::out2D_every = 1
CarpetIOHDF5::out2D_xy = "yes"
CarpetIOHDF5::out2D_xz = "yes"
CarpetIOHDF5::out2D_yz = "yes"
CarpetIOHDF5::out2D_xyplane_z = 0.0
CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
#CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::psidc grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
#CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::tau grhydro::scon "
###
ActiveThorns = "time MoL cartgrid3d carpetioascii carpetslab ioutil Fortran boundary hydrobase grhydro grhydro_initdata nanchecker eos_omni CoordBase LoopControl CarpetLib Carpet CarpetIOHDF5 CarpetReduce spacemask ADMCoupling ADMMacros ADMBASE STATICCONFORMAL TMUNUBASE SymBase localreduce CarpetIOBasic initbase GRHydro_InitData TimerReport"
NaNChecker::check_every = 1
NaNChecker::check_vars = "ADMBase::curv ADMBase::metric ADMBase::lapse ADMBase::shift HydroBase::rho HydroBase::eps HydroBase::press HydroBase::vel HydroBase::w_lorentz HydroBase::Bvec"
NaNChecker::action_if_found = "terminate"
#NaNChecker::action_if_found = "abort"
#NaNChecker::action_if_found = "just warn" #"terminate", "just warn", "abort"
#NaNChecker::check_after=0
Carpet::output_timers_every = 64
Carpet::output_timer_tree_every = 64
Carpet::output_initialise_timer_tree = "yes"
CarpetLib::print_memstats_every = 256
CarpetLib::memstat_file = "carpetlib-memory-statistics.asc"
TimerReport::out_every = 256
TimerReport::out_filename = "TimerReport"
#TimerReport::output_all_timers = "yes"
#TimerReport::output_all_timers_together = "yes"
#TimerReport::output_all_timers_readable = "yes"
#TimerReport::before_checkpoint = "yes"
TimerReport::n_top_timers = 0
#This is a hack. ghost_size should be the same as grhydro::grhydro_stencil.
driver::ghost_size=4
grhydro::grhydro_stencil=4
#time::dtfac = 0.25
#time::dtfac = 0.8
time::dtfac = 0.2
methodoflines::ODE_Method = "icn"
methodoflines::MoL_Intermediate_Steps=1
#admbase::initial_data="prim2con2prim_test"
#GRHydro_InitData::Bx_init=0.1
#GRHydro_InitData::By_init=0.12
#GRHydro_InitData::Bz_init=0.14
HydroBase::initial_hydro="shocktube"
GRHydro_InitData::shocktube_type="xshock"
GRHydro_InitData::shock_case="Balsara1"
HydroBase::timelevels=2
HydroBase::evolution_method="grhydro"
HydroBase::Bvec_evolution_method="grhydro"
SpaceMask::use_mask="yes"
EOS_Omni::gl_gamma=2.0
grhydro::track_divB="yes"
#grhydro::clean_divergence="yes"
#grhydro::clean_divergence="no"
grhydro::transport_constraints = "yes"
grhydro::psidcspeed="light speed"
grhydro::kap_dc=1.0
grhydro::method_type="RSA FV"
grhydro::recon_method="tvd"
#grhydro::recon_method="tvd"
#grhydro::tvd_limiter="vanleerMC"
grhydro::recon_vars="primitive"
grhydro::riemann_solver="HLLE"
grhydro::bound="flat"
#grhydro::bound="none"
grhydro::grhydro_eos_type = "General"
grhydro::grhydro_eos_table="Ideal_Fluid"
grhydro::Grhydro_MaxNumConstrainedVars=13
grhydro::GRHydro_MaxNumEvolvedVars=10
grid::type = "BySpacing"
grid::domain = "full"
#grid::dxyz = 0.01
#grid::dxyz = 0.000625
grid::dxyz = 0.0000625
grid::avoid_origin = no
driver::global_nx = 93
driver::global_ny = 93
driver::global_nz = 93
Cactus::terminate="iteration"
#Cactus::terminate="time"
#Cactus::cctk_final_time = 0.02
#Cactus::cctk_final_time = 0.4
#cactus::cctk_itlast = 40
cactus::cctk_itlast = 4
#cactus::cctk_itlast = 2
IO::out_dir = $parfile
#IOBasic::outInfo_every = 1
#IOBasic::outInfo_vars = "HydroBase::rho"
CarpetIOBasic::outInfo_vars="hydrobase::rho GRHydro::divB"
CarpetIOBasic::outInfo_every=1
IOASCII::out1D_every = 1
IOASCII::out1D_d=no
IOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::dens grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
##CarpetIOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::psidc grhydro::dens grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::dens grhydro::tau grhydro::scon "
#CarpetIOHDF5::out_every = 1
#CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::psidc grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::tau grhydro::scon "
CarpetIOHDF5::out3D_every = 1
CarpetIOHDF5::out3D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
CarpetIOHDF5::out2D_every = 1
CarpetIOHDF5::out2D_xy = "yes"
CarpetIOHDF5::out2D_xz = "yes"
CarpetIOHDF5::out2D_yz = "yes"
CarpetIOHDF5::out2D_xyplane_z = 0.0
CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
#CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::psidc grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
#CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::tau grhydro::scon "
###
ActiveThorns = "time MoL cartgrid3d carpetioascii carpetslab ioutil Fortran boundary hydrobase grhydro grhydro_initdata nanchecker eos_omni CoordBase LoopControl CarpetLib Carpet CarpetIOHDF5 CarpetReduce spacemask ADMCoupling ADMMacros ADMBASE STATICCONFORMAL TMUNUBASE SymBase localreduce CarpetIOBasic initbase GRHydro_InitData TimerReport"
NaNChecker::check_every = 1
NaNChecker::check_vars = "ADMBase::curv ADMBase::metric ADMBase::lapse ADMBase::shift HydroBase::rho HydroBase::eps HydroBase::press HydroBase::vel HydroBase::w_lorentz HydroBase::Bvec"
NaNChecker::action_if_found = "terminate"
#NaNChecker::action_if_found = "abort"
#NaNChecker::action_if_found = "just warn" #"terminate", "just warn", "abort"
#NaNChecker::check_after=0
Carpet::output_timers_every = 64
Carpet::output_timer_tree_every = 64
Carpet::output_initialise_timer_tree = "yes"
CarpetLib::print_memstats_every = 256
CarpetLib::memstat_file = "carpetlib-memory-statistics.asc"
TimerReport::out_every = 256
TimerReport::out_filename = "TimerReport"
#TimerReport::output_all_timers = "yes"
#TimerReport::output_all_timers_together = "yes"
#TimerReport::output_all_timers_readable = "yes"
#TimerReport::before_checkpoint = "yes"
TimerReport::n_top_timers = 0
#This is a hack. ghost_size should be the same as grhydro::grhydro_stencil.
driver::ghost_size=4
grhydro::grhydro_stencil=4
#time::dtfac = 0.25
#time::dtfac = 0.8
time::dtfac = 0.2
methodoflines::ODE_Method = "icn"
methodoflines::MoL_Intermediate_Steps=1
#admbase::initial_data="prim2con2prim_test"
#GRHydro_InitData::Bx_init=0.1
#GRHydro_InitData::By_init=0.12
#GRHydro_InitData::Bz_init=0.14
HydroBase::initial_hydro="shocktube"
GRHydro_InitData::shocktube_type="yshock"
GRHydro_InitData::shock_case="Balsara1"
HydroBase::timelevels=2
HydroBase::evolution_method="grhydro"
HydroBase::Bvec_evolution_method="grhydro"
SpaceMask::use_mask="yes"
EOS_Omni::gl_gamma=2.0
grhydro::track_divB="yes"
#grhydro::clean_divergence="yes"
#grhydro::clean_divergence="no"
grhydro::transport_constraints = "yes"
grhydro::psidcspeed="light speed"
grhydro::kap_dc=1.0
grhydro::method_type="RSA FV"
grhydro::recon_method="tvd"
#grhydro::recon_method="tvd"
#grhydro::tvd_limiter="vanleerMC"
grhydro::recon_vars="primitive"
grhydro::riemann_solver="HLLE"
grhydro::bound="flat"
#grhydro::bound="none"
grhydro::grhydro_eos_type = "General"
grhydro::grhydro_eos_table="Ideal_Fluid"
grhydro::Grhydro_MaxNumConstrainedVars=13
grhydro::GRHydro_MaxNumEvolvedVars=10
grid::type = "BySpacing"
grid::domain = "full"
#grid::dxyz = 0.01
#grid::dxyz = 0.000625
grid::dxyz = 0.0000625
grid::avoid_origin = no
driver::global_nx = 93
driver::global_ny = 93
driver::global_nz = 93
Cactus::terminate="iteration"
#Cactus::terminate="time"
#Cactus::cctk_final_time = 0.02
#Cactus::cctk_final_time = 0.4
#cactus::cctk_itlast = 40
cactus::cctk_itlast = 4
#cactus::cctk_itlast = 2
IO::out_dir = $parfile
#IOBasic::outInfo_every = 1
#IOBasic::outInfo_vars = "HydroBase::rho"
CarpetIOBasic::outInfo_vars="hydrobase::rho GRHydro::divB"
CarpetIOBasic::outInfo_every=1
IOASCII::out1D_every = 1
IOASCII::out1D_d=no
IOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::dens grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
##CarpetIOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::psidc grhydro::dens grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::dens grhydro::tau grhydro::scon "
#CarpetIOHDF5::out_every = 1
#CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::psidc grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::tau grhydro::scon "
CarpetIOHDF5::out3D_every = 1
CarpetIOHDF5::out3D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
CarpetIOHDF5::out2D_every = 1
CarpetIOHDF5::out2D_xy = "yes"
CarpetIOHDF5::out2D_xz = "yes"
CarpetIOHDF5::out2D_yz = "yes"
CarpetIOHDF5::out2D_xyplane_z = 0.0
CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
#CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::psidc grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
#CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::tau grhydro::scon "
###
ActiveThorns = "time MoL cartgrid3d carpetioascii carpetslab ioutil Fortran boundary hydrobase grhydro grhydro_initdata nanchecker eos_omni CoordBase LoopControl CarpetLib Carpet CarpetIOHDF5 CarpetReduce spacemask ADMCoupling ADMMacros ADMBASE STATICCONFORMAL TMUNUBASE SymBase localreduce CarpetIOBasic initbase GRHydro_InitData TimerReport"
NaNChecker::check_every = 1
NaNChecker::check_vars = "ADMBase::curv ADMBase::metric ADMBase::lapse ADMBase::shift HydroBase::rho HydroBase::eps HydroBase::press HydroBase::vel HydroBase::w_lorentz HydroBase::Bvec"
NaNChecker::action_if_found = "terminate"
#NaNChecker::action_if_found = "abort"
#NaNChecker::action_if_found = "just warn" #"terminate", "just warn", "abort"
#NaNChecker::check_after=0
Carpet::output_timers_every = 64
Carpet::output_timer_tree_every = 64
Carpet::output_initialise_timer_tree = "yes"
CarpetLib::print_memstats_every = 256
CarpetLib::memstat_file = "carpetlib-memory-statistics.asc"
TimerReport::out_every = 256
TimerReport::out_filename = "TimerReport"
#TimerReport::output_all_timers = "yes"
#TimerReport::output_all_timers_together = "yes"
#TimerReport::output_all_timers_readable = "yes"
#TimerReport::before_checkpoint = "yes"
TimerReport::n_top_timers = 0
#This is a hack. ghost_size should be the same as grhydro::grhydro_stencil.
driver::ghost_size=4
grhydro::grhydro_stencil=4
#time::dtfac = 0.25
#time::dtfac = 0.8
time::dtfac = 0.2
methodoflines::ODE_Method = "icn"
methodoflines::MoL_Intermediate_Steps=1
#admbase::initial_data="prim2con2prim_test"
#GRHydro_InitData::Bx_init=0.1
#GRHydro_InitData::By_init=0.12
#GRHydro_InitData::Bz_init=0.14
HydroBase::initial_hydro="shocktube"
GRHydro_InitData::shocktube_type="zshock"
GRHydro_InitData::shock_case="Balsara1"
HydroBase::timelevels=2
HydroBase::evolution_method="grhydro"
HydroBase::Bvec_evolution_method="grhydro"
SpaceMask::use_mask="yes"
EOS_Omni::gl_gamma=2.0
grhydro::track_divB="yes"
#grhydro::clean_divergence="yes"
#grhydro::clean_divergence="no"
grhydro::transport_constraints = "yes"
grhydro::psidcspeed="light speed"
grhydro::kap_dc=1.0
grhydro::method_type="RSA FV"
grhydro::recon_method="tvd"
#grhydro::recon_method="tvd"
#grhydro::tvd_limiter="vanleerMC"
grhydro::recon_vars="primitive"
grhydro::riemann_solver="HLLE"
grhydro::bound="flat"
#grhydro::bound="none"
grhydro::grhydro_eos_type = "General"
grhydro::grhydro_eos_table="Ideal_Fluid"
grhydro::Grhydro_MaxNumConstrainedVars=13
grhydro::GRHydro_MaxNumEvolvedVars=10
grid::type = "BySpacing"
grid::domain = "full"
#grid::dxyz = 0.01
#grid::dxyz = 0.000625
grid::dxyz = 0.0000625
grid::avoid_origin = no
driver::global_nx = 93
driver::global_ny = 93
driver::global_nz = 93
Cactus::terminate="iteration"
#Cactus::terminate="time"
#Cactus::cctk_final_time = 0.02
#Cactus::cctk_final_time = 0.4
#cactus::cctk_itlast = 40
cactus::cctk_itlast = 4
#cactus::cctk_itlast = 2
IO::out_dir = $parfile
#IOBasic::outInfo_every = 1
#IOBasic::outInfo_vars = "HydroBase::rho"
CarpetIOBasic::outInfo_vars="hydrobase::rho GRHydro::divB"
CarpetIOBasic::outInfo_every=1
IOASCII::out1D_every = 1
IOASCII::out1D_d=no
IOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::dens grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
##CarpetIOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::psidc grhydro::dens grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOASCII::out1D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel grhydro::dens grhydro::tau grhydro::scon "
#CarpetIOHDF5::out_every = 1
#CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::psidc grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
##CarpetIOHDF5::out_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::tau grhydro::scon "
CarpetIOHDF5::out3D_every = 1
CarpetIOHDF5::out3D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
CarpetIOHDF5::out2D_every = 1
CarpetIOHDF5::out2D_xy = "yes"
CarpetIOHDF5::out2D_xz = "yes"
CarpetIOHDF5::out2D_yz = "yes"
CarpetIOHDF5::out2D_xyplane_z = 0.0
CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec GRHydro::divB GRHydro::Evec"
#CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::psidc grhydro::dens grhydro::divB grhydro::tau grhydro::scon HydroBase::Bvec"
#CarpetIOHDF5::out2D_vars = "HydroBase::rho HydroBase::press HydroBase::eps HydroBase::vel HydroBase::w_lorentz grhydro::dens grhydro::tau grhydro::scon "