Clone wiki

supernu / input-par

Input Parameters

  • in_igeom: Select the geometry of the SuperNu transport grid

    • 11: spherical 1D
    • 1: spherical 3D
    • 2: cylindrical 3D
    • 3: cartesian 3D
  • in_ndim: Select the size of the transport grid. This has to correspond to the dimensions of the input structure in input.str.

  • in_tfirst, in_tlast, in_nt: Set the start and end time for the simulation, and the number of time steps to take in the interval.

  • in_src_n2s: Set the number of source particles per time step. This is set in powers of 2, so 10 results in 1024 particles per timestep. This number is divided over multiple processes in a parallel run.

  • in_flx_wlmin, in_flx_wlmax, in_flx_ndim: Set the lower and upper boundary of the wavelength grid. in_flx_ndim sets the number of flx-grid cells in this range as well as the number of viewing angle bins in the polar and azimuthal directions.


Example input.par files can be found in the Input/ directory.

All parameters

SuperNu runtime parameters are read-in from the input.par file. The inputparmod.f file defines the input parameters. As of 2016-06-02 the parameter definitions are as follows:

c-- write stdout to file
      character(40) :: in_name = "spn"  !simulation name/title, for post-processing identification
      character(80) :: in_comment = ""  !why did I run this simulation?
c-- parallelization
      integer :: in_nomp = 1  !number of openmp threads
c-- grid geometry and dimensions
      integer :: in_igeom = 0 !geometry: 1=sph, 2=cyl, 3=car, 11=1Dsph
      integer :: in_ndim(3) = [1, 1, 1]  !number of x-direction cells
      logical :: in_isvelocity = .true.  !switch underlying grid between spatial+static to velocity+expanding
c-- read input structure file instead of specifying the stucture with input parameters
      logical :: in_voidcorners = .false.  !zero mass in cells outside central sphere in domain
      logical :: in_noreadstruct = .false.
c-- static grid size
      real*8 :: in_str_lx = 0d0  !spatial length of x-direction
      real*8 :: in_str_ly = 0d0  !spatial length of y-direction
      real*8 :: in_str_lz = 0d0  !spatial length of z-direction
c-- parameterized input structure
      real*8 :: in_str_velout = 0d0  !cm/s, velocity of outer bound
      real*8 :: in_str_totmass = 0d0  !g
      character(4) :: in_str_dentype = 'none' ! unif|mass: 'unif' for uniform density, 'mass' for equal mass accross cells
c-- time step
      real*8 :: in_tsp_tfirst = 0d0  !first point in time evolution [sec]
      real*8 :: in_tsp_tlast = 0d0   !last point in time evolution [sec]
      integer :: in_tsp_nt = 0       !number of time steps
      integer :: in_tsp_itrestart = -1   !restart time step number
      character(4) :: in_tsp_gridtype = 'lin ' ! line|expo|read: linear, exponential or read-in timestep grid
c-- group structure
      integer :: in_grp_ng = -1      !number of groups: 0 read wl-grid from file
      integer :: in_grp_ngs = 1      !number of subgroups per opacity group
      real*8 :: in_grp_wlmin =   100d-8  !lower wavelength boundary [cm]
      real*8 :: in_grp_wlmax = 32000d-8  !upper wavelength boundary [cm]
      integer :: in_grp_wldex = 0        !selects group grid from formatted group grid file
c-- outbound flux group and direction bins
      integer :: in_flx_ndim(3) = [0, 1, 1]
      real*8 :: in_flx_wlmin =  1000d-8  !lower wavelength flux boundary [cm]
      real*8 :: in_flx_wlmax = 32000d-8  !upper wavelength flux boundary [cm]
      logical :: in_flx_noobservertime = .false. ! record flux in escape time instead of observer time
c-- particles
      integer :: in_prt_nmax = 0    !length of particle array
      integer :: in_prt_n2max = -1  !2^n length of particle array
c-- source
      integer :: in_src_ns = 0     !number of source particles generated per time step (total over all ranks)
      integer :: in_src_n2s = -1   !2^n source particles generated per time step (total over all ranks)
      integer :: in_src_nsinit = 0   !number of initial particles at in_tsp_tfirst
      integer :: in_src_n2sinit = -1 !2^n number of initial particles at in_tsp_tfirst
      logical :: in_novolsrc = .false.  !switch to turn off any volume source (could be useful for debugs)
      real*8 :: in_srcepwr = 1d0  !source particle number-energy slope, 1 is linear, equal number of packets per erg.
c-- analytic power-law source terms
      real*8 :: in_gas_srccoef = 0d0
      real*8 :: in_gas_srcrpwr = 0d0
      real*8 :: in_gas_srctpwr = 0d0
      real*8 :: in_gas_srctimepwr = 0d0
c-- external source structure
      character(4) :: in_srctype = 'none'   !none|heav|strt|manu|surf: external source structure type
      character(4) :: in_surfsrcloc = 'out ' !in|out|up|down|top|botm: surface source location
      character(4) :: in_surfsrcmu = 'isot' !isot|beam: surface source direction distribution
      integer :: in_nheav = 0   !outer cell bound if heaviside ('heav') source
      real*8 :: in_theav = 0d0 !duration of heaviside source
      real*8 :: in_srcmax = 0d0 !peak source strength
c-- transport
      logical :: in_trn_errorfatal = .true. !stop on transport error, disable for production runs
      real*8 :: in_tauddmc = 5d0  !number of mean free paths per cell required for DDMC
      real*8 :: in_taulump = 10d0 !number of of mean free paths needed to lump DDMC groups
      logical :: in_puretran = .false. !use IMC only instead of IMC+DDMC hybrid
      logical :: in_isimcanlog = .false. !use analog IMC tally if true
      logical :: in_isddmcanlog = .true. !use analog DDMC tally if true
      logical :: in_trn_noamp = .true.  !disable amplification factor
      real*8 :: in_alpha = 1d0 !time centering control parameter [0,1]
      logical :: in_trn_nolumpshortcut = .false. !disable approximation for large emitlump that sampling outside the lump collapses to the single most likely group
c-- time dependence of in_tauddmc and in_taulump
      character(4) :: in_tauvtime = 'unif' ! unif|incr = constant or limiting (s-curve) to more conservative constant
      logical :: in_ismodimc = .true. !Gentile-Fleck factor switch
c-- gas grid parameters
      real*8 :: in_gas_gastempinit = 0d0 !non-zero will not read temp from file. units: K
      real*8 :: in_gas_radtempinit = 0d0 !initial radiation temperature.  Use grd_temp by default
c-- analytic heat capacity terms
      real*8 :: in_gas_cvcoef = 1d7 !power law heat capacity coefficient
      real*8 :: in_gas_cvtpwr = 0d0 !power law heat capacity temperature exponent
      real*8 :: in_gas_cvrpwr = 1d0 !power law heat capacity density exponent
c-- debugging
      logical :: in_noeos = .false.     !don't use the EOS
c-- physical opacities
      real*8 :: in_opcapgam = .06d0   ![cm^2/g] extinction coefficient for gamma radiation
      logical :: in_noplanckweighting = .false. !disable planck weighting of rosseland opacities within group
      real*8 :: in_opacmixrossel = 0d0 !mix rosseland with planck average, 1=pure rosseland
c-- physical opacities debuging
      logical :: in_nobbopac = .false.  !turn off bound-bound opacity
      logical :: in_nobfopac = .false.  !turn off bound-bound opacity
      logical :: in_noffopac = .false.  !turn off bound-bound opacity
      logical :: in_nothmson = .false.  !turn off thomson scattering
c-- analytic opacities
      character(4) :: in_opacanaltype = 'none'    !none|grey|mono|pick|line: group opacity structure type
c-- picket fence specific group structure
      character(4) :: in_suol = 'tsta'    !tsta|tstb|tstc: Su&Olson picket fence (pick) test cases 
      real*8 :: in_suolpick1 = 1d0  !in [0,1]: probability of being at first picket
c-- line specific group structure
      real*8 :: in_ldisp1 = 1d0  !loosely speaking, the analytic odd group line strength
      real*8 :: in_ldisp2 = 1d0  !loosely speaking, the analytic even group line strength
c-- scattering terms:
      real*8 :: in_gas_sigcoef = 0d0  !power law absorption opacity coefficient
      real*8 :: in_gas_sigtpwr = 0d0  !power law absorption opacity temperature exponent
      real*8 :: in_gas_sigrpwr = 0d0  !power law absorption opacity density exponent
c-- absorption terms:
      real*8 :: in_gas_capcoef = 0d0  !power law absorption opacity coefficient
      real*8 :: in_gas_captpwr = 0d0  !power law absorption opacity temperature exponent
      real*8 :: in_gas_caprpwr = 0d0  !power law absorption opacity density exponent
c-- output
      logical :: in_io_grabstdout = .false.  !write stdout to file
      logical :: in_io_dogrdtally = .false. !write transport tallies per grid cell
      logical :: in_io_nogriddump = .false.  !don't write grid cell variables
      character(4) :: in_io_opacdump = 'off '    !off|one|each|all: write opacity data to file
      character(4) :: in_io_pdensdump = 'off '   !off|one|each: write partial densities to file