# ------------------  INPUTS TO MAIN PROGRAM  -------------------

amr.plot_files_output = 1
amr.checkpoint_files_output = 1

max_step = 10
stop_time = 1000

geometry.is_periodic = 0 0 0
geometry.coord_sys = 0         #cartesian

geometry.prob_lo   =  0.    0.   0.
geometry.prob_hi   =  2.48e10 2.48e10 2.48e10

amr.n_cell         = 128 128 128

amr.max_level      = 2      # maximum level number allowed

castro.lo_bc       =  2 2 2
castro.hi_bc       =  2 2 2

# >>>>>>>>>>>>>  BC FLAGS <<<<<<<<<<<<<<<<
# 0 = Interior           3 = Symmetry
# 1 = Inflow             4 = SlipWall
# 2 = Outflow            5 = NoSlipWall
# >>>>>>>>>>>>>  BC FLAGS <<<<<<<<<<<<<<<<

castro.do_hydro = 1
castro.do_grav  = 1
castro.do_react = 0
castro.do_sponge = 1
castro.do_radiation = 1

gravity.gravity_type = MonopoleGrav
gravity.drdxfac = 2

castro.sponge_upper_density = 1.0e-3
castro.sponge_lower_density = 1.0e-6
castro.sponge_timescale     = 2.0e1

castro.cfl            = 0.9     # cfl number for hyperbolic system
castro.init_shrink    = 0.1     # scale back initial timestep by this factor
castro.change_max     = 1.05    # factor by which dt is allowed to change each timestep
castro.sum_interval   = 0       # timesteps between computing and printing volume averages

amr.ref_ratio       = 2 2 2 2 # refinement ratio
amr.regrid_int      = 10000   # how often to regrid
amr.n_error_buf     = 2 2 2 2 # number of buffer cells in error est
amr.grid_eff        = 0.7     # what constitutes an efficient grid

amr.check_file      = chk     # root name of checkpoint file
amr.check_int       = 100     # number of timesteps between checkpoints
amr.plot_file       = plt     # root name of plot file
amr.plot_int        = 100     # number of timesteps between plotfiles

amr.max_grid_size   = 32      # maximum grid size allowed -- used to control parallelism
amr.blocking_factor = 8       # block factor in grid generation

amr.v               = 1       # control verbosity in Amr.cpp
castro.v            = 0       # control verbosity in Castro.cpp

amr.derive_plot_vars = ALL

problem.model_name =  "SolarLike_0.2M.hse.1280"

amr.refinement_indicators = denerr

amr.refine.denerr.max_level = 10
amr.refine.denerr.field_name = density
amr.refine.denerr.value_greater = 1.0

# this is Free-free Kramers opacity from K&W (Eq. 17.5)
opacity.const_kappa_p = 3.8e22
opacity.kappa_p_exp_m = 2.0e0
opacity.kappa_p_exp_n = 3.5e0
opacity.kappa_p_exp_p = 0.0e0

opacity.const_kappa_r = 3.8e22
opacity.kappa_r_exp_m = 2.0e0
opacity.kappa_r_exp_n = 3.5e0
opacity.kappa_r_exp_p = 0.0e0

# ------------------  INPUTS TO RADIATION CLASS  -------------------

# ##### SolverType #####
# # 0: single group diffusion w/o coupling to hydro
# # 5: SGFLD       6: MGFLD
radiation.SolverType = 5

radiation.comoving = 0

radiation.Er_Lorentz_term = 0

# RADIATION TOLERANCES
radiation.reltol  = 1.e-6 # relative tolerance for implicit update loop
radiation.abstol  = 0.0   # absolute tolerance for implicit update loop
radiation.maxiter = 50    # return after numiter iterations if not converged

# RADIATION LIMITER
radiation.limiter = 0     # 0 = no limiter
                          # 2 = correct form of Lev-Pom limiter
radiation.delta_temp            = 0.01

# RADIATION VERBOSITY
radiation.v               = 2    # verbosity

# We set radiation boundary conditions directly since they do not
# correspond neatly to the physical boundary conditions used for the fluid.
# The choices are:
# 101 = LO_DIRICHLET           102 = LO_NEUMANN
# 104 = LO_MARSHAK             105 = LO_SANCHEZ_POMRANING

radiation.lo_bc     = 102 101 102
radiation.hi_bc     = 105 101 102

# For each boundary, we can specify either a constant boundary value
# or use a Fortran function FORT_RADBNDRY to specify values that vary
# in space and time.

# If bcflag is 0 then bcval is used, otherwise FORT_RADBNDRY used:

radiation.lo_bcflag = 0 0 0
radiation.hi_bcflag = 0 0 0

# bcval is interpreted differently depending on the boundary condition
# 101 = LO_DIRICHLET           bcval is Dirichlet value of rad energy density
# 102 = LO_NEUMANN             bcval is inward flux of rad energy
# 104 = LO_MARSHAK             bcval is incident flux
# 105 = LO_SANCHEZ_POMRANING   bcval is incident flux

radiation.lo_bcval = 0.0 0.0 0.0
radiation.hi_bcval = 5.3e9 0.0  0.0

# ------------------  INPUTS TO RADIATION SOLVER CLASS  -------------------

# solver flag values <  100 use HypreABec, support symmetric matrices only
# solver flag values >= 100 use HypreMultiABec, support nonsymmetric matrices
# 
# PFMG does not support 1D.
# ParCSR does not work for periodic boundaries.
# For MGFLD with accelerate = 2, must use >=100.
# 
# 0     SMG
# 1     PFMG  (>= 2D only)
# 100   AMG   using ParCSR ObjectType
# 102   GMRES using ParCSR ObjectType
# 103   GMRES using SStruct ObjectType
# 104   GMRES using AMG as preconditioner
# 109   GMRES using Struct SMG/PFMG as preconditioner
# 150   AMG   using ParCSR ObjectType
# 1002  PCG   using ParCSR ObjectType
# 1003  PCG   using SStruct ObjectType

radsolve.level_solver_flag = 104  # can be any supported hypre solver flag

radsolve.reltol     = 1.0e-11 # relative tolerance
radsolve.abstol     = 0.0     # absolute tolerance (often not necessary)
radsolve.maxiter    = 200     # linear solver iteration limit

radsolve.v = 1      # verbosity

hmabec.verbose = 2  # verbosity for HypreMultiABec solvers
habec.verbose  = 2  # verbosity for HypreABec solvers



