setrun_for_paper.py.html | clawcode2html |
Source file: setrun_for_paper.py | |
Directory: /Users/rjl/rjlsvn/papers/pathconwb10/code | |
Converted: Sat Jan 9 2010 at 10:53:05 | |
This documentation file will not reflect any later changes in the source file. |
# For examples in paper -- do not modify import os from pyclaw import data #------------------------------ def setrun(claw_pkg='Classic'): #------------------------------ """ Define the parameters used for running Clawpack. INPUT: claw_pkg expected to be "Classic4" for this setrun. OUTPUT: rundata - object of class ClawRunData """ assert claw_pkg.lower() == 'classic', "Expected claw_pkg = 'classic'" rundata = data.ClawRunData(pkg=claw_pkg, ndim=1) #------------------------------------------------------------------ # Problem-specific parameters to be written to setprob.data: #------------------------------------------------------------------ probdata = rundata.new_UserData(name='probdata',fname='setprob.data') probdata.add_param('u', 1.0, 'advection velocity') probdata.add_param('mthsrc', 4, 'see rp1.f') #------------------------------------------------------------------ # Standard Clawpack parameters to be written to claw.data: #------------------------------------------------------------------ clawdata = rundata.clawdata # initialized when rundata instantiated # --------------- # Spatial domain: # --------------- # Number of space dimensions: clawdata.ndim = 1 # Lower and upper edge of computational domain: clawdata.xlower = 0.0 clawdata.xupper = 10.0 # Number of grid cells: clawdata.mx = 100 # --------------- # Size of system: # --------------- # Number of equations in the system: clawdata.meqn = 1 # Number of auxiliary variables in the aux array (initialized in setaux) clawdata.maux = 1 # Index of aux array corresponding to capacity function, if there is one: clawdata.mcapa = 0 # ------------- # Initial time: # ------------- clawdata.t0 = 0.0 # ------------- # Output times: #-------------- # Specify at what times the results should be written to fort.q files. # Note that the time integration stops after the final output time. # The solution at initial time t0 is always written in addition. clawdata.outstyle = 2 if clawdata.outstyle==1: # Output nout frames at equally spaced times up to tfinal: clawdata.nout = 50 clawdata.tfinal = 25.0 elif clawdata.outstyle == 2: # Specify a list of output times. clawdata.tout = [10., 12., 15., 20.] # used if outstyle == 2 clawdata.nout = len(clawdata.tout) elif clawdata.outstyle == 3: # Output every iout timesteps with a total of ntot time steps: iout = 1 ntot = 5 clawdata.iout = [iout, ntot] # --------------------------------------------------- # Verbosity of messages to screen during integration: # --------------------------------------------------- # The current t, dt, and cfl will be printed every time step # at AMR levels <= verbosity. Set verbosity = 0 for no printing. # (E.g. verbosity == 2 means print only on levels 1 and 2.) clawdata.verbosity = 0 # -------------- # Time stepping: # -------------- # if dt_variable==1: variable time steps used based on cfl_desired, # if dt_variable==0: fixed time steps dt = dt_initial will always be used. clawdata.dt_variable = 1 # Initial time step for variable dt. # If dt_variable==0 then dt=dt_initial for all steps: clawdata.dt_initial = 0.1 # Max time step to be allowed if variable dt used: clawdata.dt_max = 1e+99 # Desired Courant number if variable dt used, and max to allow without # retaking step with a smaller dt: clawdata.cfl_desired = 0.9 clawdata.cfl_max = 1.0 # Maximum number of time steps to allow between output times: clawdata.max_steps = 500 # ------------------ # Method to be used: # ------------------ # Order of accuracy: 1 => Godunov, 2 => Lax-Wendroff plus limiters clawdata.order = 2 # Transverse order for 2d or 3d (not used in 1d): clawdata.order_trans = 0 # Number of waves in the Riemann solution: clawdata.mwaves = 1 # List of limiters to use for each wave family: # Required: len(mthlim) == mwaves clawdata.mthlim = [2] # Source terms splitting: # src_split == 0 => no source term (src routine never called) # src_split == 1 => Godunov (1st order) splitting used, # src_split == 2 => Strang (2nd order) splitting used, not recommended. clawdata.src_split = 1 # -------------------- # Boundary conditions: # -------------------- # Number of ghost cells (usually 2) clawdata.mbc = 2 # Choice of BCs at xlower and xupper: # 0 => user specified (must modify bcN.f to use this option) # 1 => extrapolation (non-reflecting outflow) # 2 => periodic (must specify this at both boundaries) # 3 => solid wall for systems where q(2) is normal velocity clawdata.mthbc_xlower = 0 clawdata.mthbc_xupper = 1 return rundata # end of function setrun # ----------------------