setplot.py.html | |
Source file: setplot.py | |
Directory: /Users/rjl/clawpack_src/clawpack_master/geoclaw/examples/1d_classic/shoaling_qinit_box | |
Converted: Mon Feb 19 2024 at 16:13:44 using clawcode2html | |
This documentation file will not reflect any later changes in the source file. |
import os, sys from clawpack.visclaw import geoplot from clawpack.geoclaw.nonuniform_grid_tools import make_mapc2p import numpy fname_celledges = os.path.abspath('celledges.data') xlimits = [-300,150] def setplot(plotdata=None): if plotdata is None: from clawpack.visclaw.data import ClawPlotData plotdata = ClawPlotData() plotdata.clearfigures() mapc2p, mx_edge, xp_edge = make_mapc2p(fname_celledges) def mapc2p_km(xc): x_m = mapc2p(xc) x_km = x_m / 1000. # convert to km return x_km def add_annotations(current_data): from pylab import ticklabel_format, plot,grid,ones,sqrt, \ legend,title,ylabel,text ticklabel_format(useOffset=False) hl = 3200. hr = 200. greens = (hl/hr)**(0.25) print('greens = ',greens) #plot(current_data.x, greens*ones(current_data.x.shape),'g--') plot(xlimits,[greens,greens],'g--', label='$C_g$, Greens Law') ctrans = 2*sqrt(hl)/(sqrt(hl)+sqrt(hr)) crefl = (sqrt(hl)-sqrt(hr))/(sqrt(hl)+sqrt(hr)) print('ctrans = ',ctrans) plot(xlimits,[ctrans,ctrans],'r--', label='$C_T$, Transmission coefficient') print('crefl = ',crefl) plot(xlimits,[crefl,crefl],'m--', label='$C_R$, Reflection coefficient') legend(loc='upper left') title('') ylabel('meters', fontsize=14) if current_data.frameno == 0: text(-95,-0.4,'$\longrightarrow$',fontsize=20) text(-95,-0.6,'Incident') h = current_data.q[0,:] mx2 = int(round(len(h)/2.)) etamax2 = (h[:mx2] - hl).max() print('mx2 = %i, etamax2 = %g' % (mx2,etamax2)) if (current_data.frameno == 5) and (etamax2 > 0.1): text(-190,-0.5,'$\longleftarrow$',fontsize=20) text(-190,-0.7,'Reflected') text(30,-0.5,'$\longrightarrow$',fontsize=20) text(15,-0.7,'Transmitted') if (current_data.frameno == 6) and (etamax2 > 0.1): text(-260,-0.5,'$\longleftarrow$',fontsize=20) text(-260,-0.7,'Reflected') text(40,-0.5,'$\longrightarrow$',fontsize=20) text(25,-0.7,'Transmitted') elif (current_data.frameno == 6): text(-20,-0.5,'$\longleftarrow$',fontsize=20) text(-20,-0.7,'Reflected') text(70,-0.5,'$\longrightarrow$',fontsize=20) text(65,-0.7,'Transmitted') plotfigure = plotdata.new_plotfigure(name='domain', figno=0) plotfigure.kwargs = {'figsize':(7,6.5)} plotaxes = plotfigure.new_plotaxes() plotaxes.axescmd = 'axes([.1,.4,.8,.5])' #'subplot(211)' plotaxes.xlimits = xlimits #plotaxes.xlimits = [-100e3,-20e3] plotaxes.ylimits = [-1,3] plotaxes.title = 'Surface displacement' plotaxes.afteraxes = add_annotations plotitem = plotaxes.new_plotitem(plot_type='1d_plot') plotitem.plot_var = geoplot.surface plotitem.color = 'b' plotitem.MappedGrid = True plotitem.mapc2p = mapc2p_km plotitem = plotaxes.new_plotitem(plot_type='1d_plot') plotitem.show = False plotitem.plot_var = 1 plotitem.color = 'k' plotitem.MappedGrid = True plotitem.mapc2p = mapc2p_km plotaxes = plotfigure.new_plotaxes() plotaxes.axescmd = 'axes([.1,.1,.8,.2])' #'subplot(212)' plotaxes.xlimits = xlimits plotitem = plotaxes.new_plotitem(plot_type='1d_plot') plotitem.plot_var = geoplot.topo plotitem.color = 'g' plotitem.MappedGrid = True plotitem.mapc2p = mapc2p_km def fix_topo_plot(current_data): from pylab import title,xlabel title('') xlabel('kilometers', fontsize=14) plotaxes.afteraxes = fix_topo_plot plotitem.MappedGrid = True plotitem.mapc2p = mapc2p_km #----------------------------------------- # Figures for gauges #----------------------------------------- plotfigure = plotdata.new_plotfigure(name='q', figno=300, \ type='each_gauge') plotfigure.clf_each_gauge = True plotaxes = plotfigure.new_plotaxes() plotaxes.xlimits = 'auto' plotaxes.ylimits = 'auto' plotaxes.title = 'Eta' plotitem = plotaxes.new_plotitem(plot_type='1d_plot') plotitem.plot_var = 2 plotitem.plotstyle = 'b-' #----------------------------------------- # Parameters used only when creating html and/or latex hardcopy # e.g., via pyclaw.plotters.frametools.printframes: plotdata.printfigs = True # print figures plotdata.print_format = 'png' # file format plotdata.print_framenos = 'all' # list of frames to print plotdata.print_gaugenos = 'all' # list of gauges to print plotdata.print_fignos = 'all' # list of figures to print plotdata.html = True # create html files of plots? plotdata.html_homelink = '../README.html' # pointer for top of index plotdata.latex = True # create latex file of plots? plotdata.latex_figsperline = 2 # layout of plots plotdata.latex_framesperline = 1 # layout of plots plotdata.latex_makepdf = False # also run pdflatex? plotdata.parallel = True # make multiple frame png's at once return plotdata