# ------------------  INPUTS TO MAIN PROGRAM  -------------------
max_step  = 200000     # maximum timestep
stop_time = 1.e-12

geometry.is_periodic = 0 0 0

geometry.coord_sys = 2  # 0 => cart, 1 => RZ, 2 => Spherical

geometry.prob_lo   =   0.02 0.0 0.0
geometry.prob_hi   =   0.2 0.0 0.0

amr.n_cell   =  256 1 1

# REFINEMENT / REGRIDDING
amr.max_level       = 0       # maximum level number allowed
amr.ref_ratio       = 2 2 2 2 # refinement ratio
amr.regrid_int      = 2 2 2 2 # how often to regrid
amr.blocking_factor = 8       # block factor in grid generation
amr.max_grid_size    = 256
amr.n_error_buf     = 2 2 2 2 # number of buffer cells in error est
amr.n_proper        = 1       # default value
amr.grid_eff        = 0.7     # what constitutes an efficient grid

# CHECKPOINT FILES
amr.check_file      = chk     # root name of checkpoint file
amr.check_int       = 100      # number of timesteps between checkpoints
amr.checkpoint_files_output = 0 # suppress checkpoints

# PLOTFILES
amr.plot_file       = plt
amr.plot_int        = 10000000     # number of timesteps between plot files
amr.derive_plot_vars = ALL
#amr.plot_files_output = 0    # suppress plot files

# PROBLEM PARAMETERS
problem.rho_0 = 1.e0
problem.T_0 = 5.8022593689285789e5

# EOS
eos.eos_const_c_v =  1.0e8
eos.eos_c_v_exp_m =  0.0e0
eos.eos_c_v_exp_n =  0.0e0

# OPACITY
opacity.const_kappa_r =  0.0e0
opacity.kappa_r_exp_m =  0.0e0
opacity.kappa_r_exp_n =  0.0e0
opacity.kappa_r_exp_p =  0.0e0

opacity.const_kappa_p =  0.0e0
opacity.kappa_p_exp_m =  0.0e0
opacity.kappa_p_exp_n =  0.0e0
opacity.kappa_p_exp_p =  0.0e0

opacity.const_scatter =  4.6656e56
opacity.scatter_exp_m =  0.0e0
opacity.scatter_exp_n =  0.0e0
opacity.scatter_exp_p = -3.0e0

# VERBOSITY
amr.v = 1
amr.grid_log        = grdlog   # name of grid logging file

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

# WHICH PHYSICS
castro.do_grav        = 0
castro.do_hydro       = 0
castro.do_radiation   = 1
castro.do_reflux      = 1        # 1 => do refluxing
castro.do_react       = 0        # reactions?

# TIME STEP CONTROL
castro.cfl            = 0.5     # cfl number for hyperbolic system
castro.init_shrink    = 1.0     # scale back initial timestep
castro.change_max     = 1.05
castro.initial_dt     = 1.e-18

castro.fixed_dt       = 1.e-15

# DIAGNOSTICS & VERBOSITY
castro.sum_interval   = 1       # timesteps between computing mass
castro.v = 1

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

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

radiation.accelerate = 0

radiation.nGroups = 60

radiation.lowestGroupHz = 1.2089946159439434e14 // 0.5 eV
radiation.highestGroupHz = 7.3990470495769334e19 // 306e3 eV

radiation.Er_Lorentz_term = 0
radiation.do_fspace_advection = 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.relInTol = 1.0e-6

# 0: both,  1:  rhoe,   2: residue of rhoe equation,   3: T
radiation.convergence_check_type = 0

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

# 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     = 101 101 101
radiation.hi_bc     = 102 101 101

# 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 = 1.0 0.0 0.0
#radiation.hi_bcval = 0.0 0.0 0.0

# radiation energies as generated by bc.f90 
 radiation.lo_bcval0 =    1229.7920699188730        2394.1378085239035        4660.8121586175539        9073.3530253051922        17663.071121597459        34383.880347801118        66931.628686937547        130284.48798354190        253591.71466848280        493575.64514212421        960600.48164435267        1869368.5377237240        3637482.4609596287        7077000.7379815960        13766564.076364869        26773916.777775597        52057803.021086685        101185728.60289431        196597080.01828519        381781839.38089013        740932768.79017234        1436807710.0934017        2783480720.0502820        5385657789.6787176        10404314801.359169        20060423066.505714        38583445974.361343        73981118358.934113        141302581937.49353        268561066224.45572        507258549305.53406        950550304763.71362        1763315785677.0852        3228910148901.3872        5814691173728.9229        10246855229117.590        17554140942062.809        28976502959765.316        45541650171040.758        67064826058473.914        90569480856699.828        109040672846372.67        112848465225671.81        95911829681719.516        63305768996952.477        30327155892356.008        9712741432246.3477        1879661997365.9702        193883805102.42950        9115002318.1273613        160645317.16147238        831607.29729984095        932.40069480088846       0.15478062134095186       2.36578556169309900E-006  1.83991712514194352E-012  3.47178882201544081E-020  6.30420096650704973E-030  3.47177559093053048E-042  1.37132892946464525E-057

radiation.hi_bcval0 = 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 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 = 0   # can be any supported hypre solver flag

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

radsolve.v = 1      # verbosity

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

#
# The default strategy is SFC.
#
DistributionMapping.strategy = ROUNDROBIN
DistributionMapping.strategy = KNAPSACK
DistributionMapping.strategy = SFC

