|
clawtestsubset.py.html |
clawcode2html
|
|
Source file: clawtestsubset.py
|
|
Directory: /home/rjl/www/pubs/cise08/cise08levequeV2
|
|
Converted: Wed Jul 2 2008 at 13:40:44
|
|
This documentation file will
not reflect any later changes in the source file.
|
import clawtools
from clawtest import *
# special data structure for Clawpack parameters:
data = clawtools.ClawData()
data.tfinal = 0.75 # final time
data.nout = 1 # output solution only at final time
# List parameters for tests to be performed:
grids = [1,3] # set of grids to test
limiters = [0,3] # set of limiters (mthlim values) to test
mxvals = array([30,60,120]) # mx values
myvals = array([30,60,120]) # my values
area = pi
table = {} # dictionary of data and results for each test
for mthlim in limiters:
data.mthlim = mthlim
for igrid in grids:
# Write the value igrid into data file setprob.data:
data.igrid = igrid;
data.write('setprob.data')
# create a dictionary to hold the data and results for this test:
table[(mthlim,igrid)] = {}
this_table = table[(mthlim,igrid)] # short name
this_table['mxvals'] = mxvals # grid resolutions to test
this_table['myvals'] = myvals
this_table['ave_cell_area'] = area / (mxvals*myvals)
this_table['errors'] = empty(len(mxvals)) # filled with results below
for itest in range(len(mxvals)):
data.mx = mxvals[itest]; mx = data.mx # short form
data.my = myvals[itest]; my = data.my # short form
data.write('claw2ez.data') # writes data values
# run Fortran code:
clawtools.runclaw()
# compute errors:
errors = compute_errors(frame=data.nout)
# approx 1-norm of error:
errorsum = abs(errors).sum()
error1 = errorsum * this_table['ave_cell_area'][itest]
this_table['errors'][itest] = error1
make_text_table(table, limiters, grids, fname='errortables.txt')
make_latex_table(table, limiters, grids, fname='errortables.tex')
make_error_plots(table, limiters, grids, fname='errors.png')