def plotFrame(f): gkd = gkedata.GkeData("s3-dg-euler-rt_q_%d.h5" % f) dgd = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(gkd) Xc, Yc, rho = dgd.project(0) pylab.figure(1) pylab.pcolormesh(Xc, Yc, pylab.transpose(rho)) pylab.axis('image') pylab.gca().set_xticks([]) pylab.gca().set_yticks([]) pylab.axis('image') pylab.clim(35000, 65000) pylab.title('t = %g' % gkd.time) pylab.savefig('s3-dg-euler-rt_rho_%05d.png' % f, bbox_inches='tight') pylab.close()
def __init__(self, gd, component=0, title=None, save=False, transformMod=None, transformVar=None, outNm=None, options=None): mtitle = MakeTitle(gd, component, title, transformMod, transformVar, outNm) if transformMod: # transform data if needed data = transformMod.transformRegistry[transformVar](gd.q) else: data = gd.q[:, :, component] maskField = 0.0 * data # default mask if options.maskField: # read maskfield maskField = gkedata.GkeData(options.maskField).q[:, :, 0] data = numpy.ma.masked_where(maskField < 0.0, data) X = pylab.linspace(gd.lowerBounds[0], gd.upperBounds[0], gd.cells[0] + 1) Y = pylab.linspace(gd.lowerBounds[1], gd.upperBounds[1], gd.cells[1] + 1) XX, YY = pylab.meshgrid(X, Y) im = pylab.pcolormesh(XX, YY, data.transpose()) if options.cmap: plt.set_cmap(options.cmap) if options.axisFree: pylab.axis('tight') else: pylab.axis('image') pylab.title(mtitle.title) pylab.xlabel('X') pylab.ylabel('Y') colorbar_adj(im) plt.tight_layout() if save: pylab.savefig(mtitle.figName, bbox_inches='tight')
def plotFile(fileName, argList): if not os.path.exists(fileName): return False fh = tables.openFile(fileName) if 'StructGridField' in fh.root: # process gridded data data = gkedata.GkeData(fileName) ndim = data.ndim if argList.dg_polyorder: pass # doing DG elif argList.cg_polyorder: pass # doing CG else: pass # finite-volume data elif 'DataStruct' in fh.root: # process history data pass return True
rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text def IE(n, nu, E): return 0.5 * (E - nu**2 / n) # density plot d = gkedata.GkeData("../s5/s5-bgk-boltz_numDensity_5.h5") dg1 = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xc, n2 = dg1.project(0) d = gkedata.GkeData("../s6/s6-bgk-boltz_numDensity_5.h5") dg1 = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xc, n3 = dg1.project(0) nEul = loadtxt("../m2/m2-euler-shock-exact-density.txt") figure(1) plot(Xc, n2, '-r', label='Kn=1/100') plot(Xc, n3, '-b', label='Kn=1/1000') plot(nEul[:, 0], nEul[:, 1], 'k--') xlabel('X') ylabel('Density')
from pylab import * import gkedata import gkedgbasis for i in range(0, 51): print("Working on %d ..." % i) d = gkedata.GkeData("s4-em-shock_distfElc_%d.h5" % i) dg = gkedgbasis.GkeDgSerendipNorm3DPolyOrder2Basis(d) X, Y, Z, fv = dg.project(0) nx, nvx, nvy = X.shape[0], X.shape[1], X.shape[2] figure(1) subplot(2, 1, 1) pcolormesh(transpose(fv[:, :, nvy / 2])) axis('tight') colorbar() subplot(2, 1, 2) pcolormesh(transpose(fv[:, nvx / 2, :])) axis('tight') colorbar() savefig('s4-em-shock_distfElc_X_VX_%05d.png' % i) close() d.close() for i in range(0, 51): print("Working on %d ..." % i) d = gkedata.GkeData("s4-em-shock_distfIon_%d.h5" % i) dg = gkedgbasis.GkeDgSerendipNorm3DPolyOrder2Basis(d) X, Y, Z, fv = dg.project(0) nx, nvx, nvy = X.shape[0], X.shape[1], X.shape[2] figure(1) subplot(2, 1, 1)
def calcCenters(VcEdges): Vx = numpy.zeros((VcEdges.shape[0] - 1, ), float) for i in range(VcEdges.shape[0] - 1): Vx[i] = 0.5 * (VcEdges[i] + VcEdges[i + 1]) return Vx def calcExact(n, nu, E, V): u = nu / n vt2 = E - n * u**2 return n / sqrt(2 * pi * vt2) * exp(-(V - u)**2 / (2 * vt2)) d = gkedata.GkeData("s1-bgk-boltz_distf_0.h5") dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Vc, fv_0 = dg1.project(0) d = gkedata.GkeData("s1-bgk-boltz_distf_1.h5") dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Vc, fv_1 = dg1.project(0) # number density fh = tables.openFile("s1-bgk-boltz_numDensity_0.h5") n = fh.root.StructGridField[0, 0] # momentum density fh = tables.openFile("s1-bgk-boltz_momentum_0.h5") nu = fh.root.StructGridField[0, 0] # energy density fh = tables.openFile("s1-bgk-boltz_ptclEnergy_0.h5")
#rcParams['ytick.major.size'] = 8 # default is 4 #rcParams['ytick.major.width'] = 3 # default is 0.5 rcParams['figure.facecolor'] = 'white' #rcParams['figure.subplot.bottom'] = 0.125 #rcParams['figure.subplot.right'] = 0.85 # keep labels/ticks of colobar in figure rcParams['image.interpolation'] = 'none' rcParams['image.origin'] = 'lower' rcParams['contour.negative_linestyle'] = 'solid' #rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text figure(1) dg = gkedgbasis.GkeDgLobatto2DPolyOrder3Basis( gkedata.GkeData("s21-dg-maxwell_q_1.h5")) Xc, Yc, Ez2 = dg.project(2) pcolormesh(Xc, Yc, transpose(Ez2)) title('p=3 10x10 mesh') axis('image') pylab.savefig('s21-Ez.png', bbox_inches='tight') colorbar() show()
_ax_.set_aspect(aspect) if redraw: _fig_.canvas.draw() return _cbar_ def getXv(Xc, Vc): dx = (Xc[0,-1]-Xc[0,0])/(Xc.shape[1]-1) dv = (Vc[-1,0]-Vc[0,0])/(Vc.shape[0]-1) X1 = linspace(Xc[0,0]+0.5*dx, Xc[0,-1]-0.5*dx, Xc.shape[1]-1) V1 = linspace(Vc[0,0]+0.5*dv, Vc[-1,0]-0.5*dv, Vc.shape[0]-1) return X1, V1 # initial conditions d = gkedata.GkeData("r3-es-resonance_distfElc_0.h5") dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fve0 = dg1.project(0) for i in range(0,21): print "Working on %d ..." % i d = gkedata.GkeData("r3-es-resonance_distfElc_%d.h5" % i ) dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fve = dg1.project(0) X, V = getXv(Xc, Yc) figure(1) plot(V, fve[fve.shape[0]/2, :], 'r-') ylo, yup = gca().get_ylim() plot([1.0, 1.0], [ylo, yup], '--k') plot([2.0, 2.0], [ylo, yup], '--k')
#rcParams['contour.negative_linestyle'] = 'solid' rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text def getXv(Xc, Vc): dx = (Xc[0, -1] - Xc[0, 0]) / (Xc.shape[1] - 1) dv = (Vc[-1, 0] - Vc[0, 0]) / (Vc.shape[0] - 1) X1 = linspace(Xc[0, 0] + 0.5 * dx, Xc[0, -1] - 0.5 * dx, Xc.shape[1] - 1) V1 = linspace(Vc[0, 0] + 0.5 * dv, Vc[-1, 0] - 0.5 * dv, Vc.shape[0] - 1) return X1, V1 # density d = gkedata.GkeData("s1-1x1v-mom_distf.h5") dg1Num = gkedgbasis.GkeDgSerendipNorm2DPolyOrder1Basis(d) Xc, Yc, fve = dg1Num.project(0) figure(1) pcolormesh(Xc, Yc, transpose(fve)) show()
rcParams['image.interpolation'] = 'none' rcParams['image.origin'] = 'lower' rcParams['contour.negative_linestyle'] = 'solid' rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text gasGamma = 1.4 # read data d = gkedata.GkeData("s3-dg-euler-pos_q_1.h5") dgDat = gkedgbasis.GkeDgLobatto1DPolyOrder1Basis(d) X, rho = dgDat.project(0) X, rhou = dgDat.project(1) X, Er = dgDat.project(4) u = rhou / rho pr = (gasGamma - 1) * (Er - 0.5 * rho * u * u) ex_density = pylab.loadtxt("s18-euler-shock-exact-density.txt") ex_velocity = pylab.loadtxt("s18-euler-shock-exact-velocity.txt") ex_pressure = pylab.loadtxt("s18-euler-shock-exact-pressure.txt") ex_ie = pylab.loadtxt("s18-euler-shock-exact-internal-energy.txt") pylab.figure(1) pylab.subplot(2, 2, 1)
#rcParams['figure.subplot.right'] = 0.85 # keep labels/ticks of colobar in figure rcParams['image.interpolation'] = 'none' rcParams['image.origin'] = 'lower' rcParams['contour.negative_linestyle'] = 'solid' #rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams['mathtext.default'] = 'regular' # match the font used for regular text figure(1) subplot(1,2,1) dg1 = gkedgbasis.GkeDgLobatto2DPolyOrder3Basis(gkedata.GkeData("s13-dg-maxwell_q_1.h5")) Xc, Yc, Ez1 = dg1.project(2) pcolormesh(Xc, Yc, transpose(Ez1)) title('t=1.5') axis('image') subplot(1,2,2) dg2 = gkedgbasis.GkeDgLobatto2DPolyOrder3Basis(gkedata.GkeData("s13-dg-maxwell_q_2.h5")) Xc, Yc, Ez2 = dg2.project(2) pcolormesh(Xc, Yc, transpose(Ez2)) title('t=3.0') axis('image') pylab.savefig('s13-ez.png', bbox_inches='tight') show()
#rcParams['figure.subplot.bottom'] = 0.25 #0.125 #rcParams['figure.subplot.right'] = 0.85 # keep labels/ticks of colobar in figure rcParams['image.interpolation'] = 'none' rcParams['image.origin'] = 'lower' rcParams['contour.negative_linestyle'] = 'solid' rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text # electron number density d = gkedata.GkeData("%s_numDensityElc_%d.h5" % (kinFileName, frame)) dg = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xc, numElc = dg.project(0) tm = d.time # time from figure(1) d = gkedata.GkeData("%s_q_%d.h5" % (fluFileName, frame)) fv = gkedgbasis.GkeDgPolyOrder0Basis(d) XcFV, numElcFV = fv.project(0) XcFV = XcFV / XcFV[-1] * Xc[-1] subplot(3, 2, 1) title('Electrons') plot(Xc, numElc, 'r-')
rcParams['figure.facecolor'] = 'white' #rcParams['figure.subplot.bottom'] = 0.125 #rcParams['figure.subplot.right'] = 0.85 # keep labels/ticks of colobar in figure rcParams['image.interpolation'] = 'none' rcParams['image.origin'] = 'lower' rcParams['contour.negative_linestyle'] = 'solid' rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams['mathtext.default'] = 'regular' # match the font used for regular text # electron number density d = gkedata.GkeData("../s1/s1-es-shock_numDensityElc_100.h5") dg = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xc, numElc = dg.project(0) d = gkedata.GkeData("s2-5m-es-shock_q_100.h5") fv = gkedgbasis.GkeDgPolyOrder0Basis(d) XcFV, numElcFV = fv.project(0) XcFV = XcFV/XcFV[-1]*Xc[-1] figure(1) plot(Xc, numElc, 'r-') plot(XcFV, numElcFV, 'k-') title('Electron number density') savefig('fluid-kinetic-cmp-elc-numDens.png') # ion number density
import gkedata import gkedgbasis from pylab import * # reference 1D solution X = linspace(0, 1, 100) f1d = exp(-75 * (X - 0.5)**2) # Lagrange 1D, lobatto polyOrder 1 d = gkedata.GkeData("test1D_lag-1D-p1.h5") L1d_p1 = gkedgbasis.GkeDgLobatto1DPolyOrder1Basis(d) Xc, c0 = L1d_p1.project(0) figure(1) plot(Xc, c0, 'k-') plot(X, f1d, 'r-') title('Lagrange 1D, lobatto polyOrder 1') savefig('L1d_p1.png') # Lagrange 1D, lobatto polyOrder 2 d = gkedata.GkeData("test1D_lag-1D-p2.h5") L1d_p2 = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xc, c0 = L1d_p2.project(0) figure(2) plot(Xc, c0, 'k-') plot(X, f1d, 'r-') title('Lagrange 1D, lobatto polyOrder 2') savefig('L1d_p2.png') # Lagrange 1D, lobatto polyOrder 3
rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text def getXv(Xc, Vc): dx = (Xc[0, -1] - Xc[0, 0]) / (Xc.shape[1] - 1) dv = (Vc[-1, 0] - Vc[0, 0]) / (Vc.shape[0] - 1) X1 = linspace(Xc[0, 0] + 0.5 * dx, Xc[0, -1] - 0.5 * dx, Xc.shape[1] - 1) V1 = linspace(Vc[0, 0] + 0.5 * dv, Vc[-1, 0] - 0.5 * dv, Vc.shape[0] - 1) return X1, V1 # initial conditions d = gkedata.GkeData("r2-es-resonance_distfElc_0.h5") dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fve0 = dg1.project(0) for i in range(0, 51): print "Working on %d ..." % i d = gkedata.GkeData("r2-es-resonance_distfElc_%d.h5" % i) dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fve = dg1.project(0) fveAvg = sum(fve, 0) / fve.shape[0] d = gkedata.GkeData("../r1/r1-es-resonance_distfElc_%d.h5" % i) dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fve_r1 = dg1.project(0) fve_r1_Avg = sum(fve_r1, 0) / fve_r1.shape[0]
'mathtext.default'] = 'regular' # match the font used for regular text def calcHamilton(Xc, Vc, mass, charge, phi): dx = (Xc[0, -1] - Xc[0, 0]) / (Xc.shape[1] - 1) dv = (Vc[-1, 0] - Vc[0, 0]) / (Vc.shape[0] - 1) X1 = linspace(Xc[0, 0] + 0.5 * dx, Xc[0, -1] - 0.5 * dx, Xc.shape[1] - 1) V1 = linspace(Vc[0, 0] + 0.5 * dv, Vc[-1, 0] - 0.5 * dv, Vc.shape[0] - 1) XX, VV = meshgrid(X1, V1) return XX, VV, 0.5 * mass * VV**2 + charge * phi for i in range(0, 101): print "Working on %d ..." % i d = gkedata.GkeData("m4-es-shock_distfElc_%d.h5" % i) dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fve = dg1.project(0) # potential d = gkedata.GkeData("m4-es-shock_phi_%d.h5" % i) dg1 = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xp, phi = dg1.project(0) XX, VV, ham = calcHamilton(Xc, Yc, 1.0, -1.0, phi) subplot(2, 1, 1) pylab.pcolormesh(Xc, Yc, pylab.transpose(fve)) pylab.contour(XX, VV, ham, colors='k', linewidths=1) pylab.contour(XX, VV, ham, levels=[0], colors='w') pylab.axis('tight') #pylab.xlabel('X')
import gkedata import gkedgbasis from pylab import * # Lagrange 2D, lobatto polyOrder 1 d = gkedata.GkeData("test2D_lag-2D-p1.h5") L2d_p1 = gkedgbasis.GkeDgLobatto2DPolyOrder1Basis(d) Xc, Yc, c0 = L2d_p1.project(0) figure(1) pcolormesh(Xc, Yc, transpose(c0)) axis('image') title('Lagrange 2D, lobatto polyOrder 1') savefig('L2d_p1.png') # Lagrange 2D, lobatto polyOrder 2 d = gkedata.GkeData("test2D_lag-2D-p2.h5") L2d_p2 = gkedgbasis.GkeDgLobatto2DPolyOrder2Basis(d) Xc, Yc, c0 = L2d_p2.project(0) figure(2) pcolormesh(Xc, Yc, transpose(c0)) axis('image') title('Lagrange 2D, lobatto polyOrder 2') savefig('L2d_p2.png') # Lagrange 2D, lobatto polyOrder 3 d = gkedata.GkeData("test2D_lag-2D-p3.h5") L2d_p3 = gkedgbasis.GkeDgLobatto2DPolyOrder3Basis(d) Xc, Yc, c0 = L2d_p3.project(0)
rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text def IE(n, nu, E): return 0.5 * (E - nu**2 / n) # density plot d = gkedata.GkeData("../s2/s2-bgk-boltz_numDensity_5.h5") dg1 = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xc, n2 = dg1.project(0) d = gkedata.GkeData("../s3/s3-bgk-boltz_numDensity_5.h5") dg1 = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xc, n3 = dg1.project(0) d = gkedata.GkeData("../s4/s4-bgk-boltz_numDensity_5.h5") dg1 = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis(d) Xc, n4 = dg1.project(0) nEul = loadtxt("../m1/m1-euler-shock-exact-density.txt") figure(1) plot(Xc, n2, '-r', label='Kn=1/10')
cnt = Counter() def getXv(Xc, Vc): dx = (Xc[0, -1] - Xc[0, 0]) / (Xc.shape[1] - 1) dv = (Vc[-1, 0] - Vc[0, 0]) / (Vc.shape[0] - 1) X1 = linspace(Xc[0, 0] + 0.5 * dx, Xc[0, -1] - 0.5 * dx, Xc.shape[1] - 1) V1 = linspace(Vc[0, 0] + 0.5 * dv, Vc[-1, 0] - 0.5 * dv, Vc.shape[0] - 1) return X1, V1 # density d = gkedata.GkeData("s5-1x3v-mom_numDensity.h5") dg1Num = gkedgbasis.GkeDgLobatto1DPolyOrder1Basis(d) Xc, num = dg1Num.project(0) Xhr = linspace(Xc[0], Xc[-1], 200) # for plotting n = sin(2 * pi * Xhr) ux = 0.1 * cos(2 * pi * Xhr) uy = 0.2 * sin(2 * pi * Xhr) uz = 0.1 * cos(2 * pi * Xhr) Txx = 0.75 + 0.25 * cos(2 * pi * Xhr) Tyy = 0.75 + 0.25 * sin(2 * pi * Xhr) Tzz = 0.75 + 0.1 * sin(2 * pi * Xhr) Txy = 0.5 + 0.1 * sin(2 * pi * Xhr) Txz = 0.25 + 0.1 * sin(2 * pi * Xhr) Tyz = 0.125 + 0.1 * sin(2 * pi * Xhr)
#rcParams['figure.subplot.right'] = 0.85 # keep labels/ticks of colobar in figure rcParams['image.interpolation'] = 'none' rcParams['image.origin'] = 'lower' rcParams['contour.negative_linestyle'] = 'solid' rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text for i in range(0, 51): print "Working on %d ..." % i d = gkedata.GkeData("s1-es-shock_distfElc_%d.h5" % i) dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fve = dg1.project(0) subplot(2, 1, 1) pylab.pcolormesh(Xc, Yc, pylab.transpose(fve)) pylab.axis('tight') #pylab.xlabel('X') pylab.ylabel('V') d = gkedata.GkeData("s1-es-shock_distfIon_%d.h5" % i) dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fvi = dg1.project(0) subplot(2, 1, 2) pylab.pcolormesh(Xc, Yc, pylab.transpose(fvi)) pylab.axis('tight')
_fig_ = obj.figure _ax_ = obj.axes elif mode == 2: # assume obj is in the current figure/axis instance _fig_ = plt.gcf() _ax_ = plt.gca() _divider_ = make_axes_locatable(_ax_) _cax_ = _divider_.append_axes("right", size="5%", pad=0.05) _cbar_ = _fig_.colorbar(obj, cax=_cax_) if aspect != None: _ax_.set_aspect(aspect) if redraw: _fig_.canvas.draw() return _cbar_ d = gkedata.GkeData("s1-em-landau_distfElc_0.h5") dg1_0 = gkedgbasis.GkeDgSerendipNorm2DPolyOrder2Basis(d) d = gkedata.GkeData("s1-em-landau_distfElc_1.h5") dg1_1 = gkedgbasis.GkeDgSerendipNorm2DPolyOrder2Basis(d) d = gkedata.GkeData("s1-em-landau_distfElc_2.h5") dg1_2 = gkedgbasis.GkeDgSerendipNorm2DPolyOrder2Basis(d) Xc, Yc, fve_0 = dg1_0.project(0) Xc, Yc, fve_1 = dg1_1.project(0) Xc, Yc, fve_2 = dg1_2.project(0) figure(1) subplot(2, 1, 1) im = pcolormesh(Xc, Yc, pylab.transpose(fve_1 - fve_0))
exit(0) # check if to plot data from DG plotDg = False dgOrder = 0 if options.dgOrder: plotDg = True dgOrder = int(options.dgOrder) projOrder = dgOrder + 1 if options.projOrder: projOrder = int(options.projOrder) # 1D/2D plots if options.fileName: gd = gkedata.GkeData(options.fileName) dims = len(gd.q.shape)-1 if plotDg: # plot, depending on dimension if dims == 1: gkeplotters.PlotDg1D(gd, save=options.savePng, title=options.title, dgOrder=dgOrder, projOrder=projOrder, component=int(options.component), transformMod=transformMod, transformVar=options.transformVariable, outNm=options.outNm) elif dims == 2: gkeplotters.PlotDg2D(gd, save=options.savePng, title=options.title, dgOrder=dgOrder, projOrder=projOrder, component=int(options.component), transformMod=transformMod, transformVar=options.transformVariable,
rcParams['image.origin'] = 'lower' rcParams['contour.negative_linestyle'] = 'solid' #rcParams['savefig.bbox'] = 'tight' # Math/LaTex fonts: # http://matplotlib.org/users/mathtext.html # http://matplotlib.org/users/usetex.html # Example: xlabel(r'$t \cdot l / V_{A,bc}$') rcParams[ 'mathtext.default'] = 'regular' # match the font used for regular text NT = 100 Ey_tx = numpy.zeros((NT + 1, 64 * 3), numpy.float) for i in range(NT + 1): dg1 = gkedgbasis.GkeDgLobatto1DPolyOrder2Basis( gkedata.GkeData("t1-plasma-beach_em_%d.h5" % i)) X, Ey = dg1.project(1) Ey_tx[i, :] = Ey dx = 1 / 400.0 T = pylab.linspace(0, 5e-9, NT + 1) TT, XX = pylab.meshgrid(T, X) # compute cutoff location dx100 = 1 / 100. deltaT = dx100 / 2.99792458e8 driveOmega = 3.14159265358979323846264338328 / 10 / deltaT xcutoff = 1 - math.pow(driveOmega / 25 * deltaT, 1 / 5.0) pylab.pcolormesh(TT, XX, Ey_tx.transpose()) pylab.plot([0, 5e-9], [xcutoff, xcutoff], 'k--', linewidth=2)
X1 = linspace(Xc[0,0]+0.5*dx, Xc[0,-1]-0.5*dx, Xc.shape[1]-1) V1 = linspace(Vc[0,0]+0.5*dv, Vc[-1,0]-0.5*dv, Vc.shape[0]-1) XX, VV = meshgrid(X1, V1) return XX, VV, 0.5*mass*VV**2 + charge*phi def getXv(Xc, Vc): dx = (Xc[0,-1]-Xc[0,0])/(Xc.shape[1]-1) dv = (Vc[-1,0]-Vc[0,0])/(Vc.shape[0]-1) X1 = linspace(Xc[0,0]+0.5*dx, Xc[0,-1]-0.5*dx, Xc.shape[1]-1) V1 = linspace(Vc[0,0]+0.5*dv, Vc[-1,0]-0.5*dv, Vc.shape[0]-1) return X1, V1 for i in range(100,101): print "Working on %d ..." % i d = gkedata.GkeData("m1-es-shock_distfElc_%d.h5" % i ) dg1 = gkedgbasis.GkeDgSerendip2DPolyOrder2Basis(d) Xc, Yc, fve = dg1.project(0) X, V = getXv(Xc, Yc) plot(V, fve[fve.shape[0]/2, :], 'r-') title('Time %g' % d.time) xlabel('V') ylabel('f(V)') savefig('m1-es-shock_distfElc-cs_%05d.png' % i) pylab.close() d.close()