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()
Beispiel #2
0
    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')
Beispiel #3
0
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')
Beispiel #5
0
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")
Beispiel #7
0
#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()
Beispiel #8
0
        _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')
Beispiel #9
0
#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()
Beispiel #10
0
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)
Beispiel #11
0
#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()
Beispiel #12
0
#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-')
Beispiel #13
0
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
Beispiel #14
0
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')
Beispiel #17
0
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)
Beispiel #18
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')
Beispiel #19
0
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)
Beispiel #20
0
#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))
Beispiel #22
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,
Beispiel #23
0
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)
Beispiel #24
0
    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()