示例#1
0
文件: plot.py 项目: CoastED/coasted
    rho = vt.GetScalarField('Density')
    ie = vt.GetScalarField('InternalEnergy')

    pylab.figure(1)
    pylab.plot(x0, p, '.', label=folder)

    pylab.figure(2)
    pylab.plot(x, u, '.', label=folder)

    pylab.figure(3)
    pylab.plot(x0, rho, '.', label=folder)

    pylab.figure(4)
    pylab.plot(x, ie, '.', label=folder)

sol = numpy.array([shocktube.solution(xi, t) for xi in x])
p = sol[:, 0]
u = sol[:, 1]
rho = sol[:, 2]
ie = p / rho / (shocktube.gamma - 1.0)

pylab.figure(1)
pylab.plot(x, p, '-', label='analytical')
pylab.title('Pressure')
pylab.legend()

pylab.figure(2)
pylab.plot(x, u, '-', label='analytical')
pylab.title('Velocity')
pylab.legend()
pylab.subplot(321)
pylab.plot(x / 0.0271002710027, p / 1.013e5, "b.", label="Numerical")

pylab.subplot(322)
print len(x)
print len(u_air)
pylab.plot(x[: len(x)] / 0.0271002710027, u_air / 286.980353992, "b.", label="Numerical (Air)")

pylab.subplot(323)
pylab.plot(x / 0.0271002710027, rho_air / 1.23, "b.", label="Numerical")

pylab.subplot(324)
pylab.plot(x / 0.0271002710027, ie_air / 82357.7235772, "b.", label="Numerical (Air)")

# Now work out the frozen flow ('analytical') solutions
sol = numpy.array([shocktube.solution(xi, 4.0) for xi in x / 0.0271002710027])
p = sol[:, 0]
u = sol[:, 1]
rho = sol[:, 2]
ie = p / rho / (shocktube.gamma - 1.0)

pylab.subplot(321)
pylab.plot(x / 0.0271002710027, p, "-g", label="Frozen flow")
pylab.title("Normalised Pressure")
pylab.legend(loc=2)

pylab.subplot(322)
pylab.plot(x / 0.0271002710027, u, "g-", label="Frozen flow (Air)")
pylab.title("Normalised Velocity")
pylab.legend(loc=2)
示例#3
0
  rho=vt.GetScalarField('Density')
  ie=vt.GetScalarField('InternalEnergy')
  
  pylab.figure(1)
  pylab.plot( x, p,'.', label=folder)
  
  pylab.figure(2)
  pylab.plot( x, u,'.', label=folder)
  
  pylab.figure(3)
  pylab.plot( x, rho,'.', label=folder)
  
  pylab.figure(4)
  pylab.plot( x, ie,'.', label=folder)
  
sol=numpy.array([shocktube.solution(xi,t) for xi in x])
p=sol[:,0]
u=sol[:,1]
rho=sol[:,2]
ie=p/rho/(shocktube.gamma-1.0)
  
pylab.figure(1)
pylab.plot( x, p,'-', label='analytical')
pylab.title('Pressure')
pylab.legend()
  
pylab.figure(2)
pylab.plot( x, u,'-', label='analytical')
pylab.title('Velocity')
pylab.legend()
示例#4
0
           ie_air / 82357.7235772,
           'b.',
           label="Numerical (Air)")
pylab.plot(x / 0.0271002710027,
           ie_dust / 82357.7235772,
           'r.',
           label="Numerical (Dust)")

# Multiply the PhaseVolumeFraction by the Dust Density to get the mass concentration, and then normalise.
pylab.subplot(326)
pylab.plot(x / 0.0271002710027, vfrac * 2500.0 / 1.23, 'b.', label="Numerical")
pylab.title('Mass Concentration from PhaseVolumeFraction of Particles')
pylab.legend(loc=2)

# Now work out the frozen flow ('analytical') solutions
sol = numpy.array([shocktube.solution(xi, 4.0) for xi in x / 0.0271002710027])
p = sol[:, 0]
u = sol[:, 1]
rho = sol[:, 2]
ie = p / rho / (shocktube.gamma - 1.0)

pylab.subplot(321)
pylab.plot(x / 0.0271002710027, p, '-g', label='Frozen flow')
pylab.title('Normalised Pressure')
pylab.legend(loc=2)

pylab.subplot(322)
pylab.plot(x / 0.0271002710027, u, 'g-', label='Frozen flow (Air)')
pylab.title('Normalised Velocity')
pylab.legend(loc=2)
  filename_in = filename_part + str(time_level) + '.vtu'
  filename_out = filename_part + str(format(time_level,"03g")) + '.png'
  print 'Processing file' , filename_in , '...',

  vt=vtktools.vtu(filename_in)
  t=vt.GetScalarField('Time')[0]
  xyz=vt.GetLocations()
  x=xyz[:,0]

  p=vt.GetScalarField('Pressure')
  uvw=vt.GetVectorField('Velocity')
  u=uvw[:,0]
  rho=vt.GetScalarField('Density')
  ie=vt.GetScalarField('InternalEnergy')

  analytical_solution = numpy.array([shocktube.solution(xi,t) for xi in x])
  analytical_p = analytical_solution[:,0]
  analytical_u=analytical_solution[:,1]
  analytical_rho=analytical_solution[:,2]
  analytical_ie=analytical_p/analytical_rho/(shocktube.gamma-1.0)
  
  fig = plt.figure()

  pressure_subplot = fig.add_subplot(4,1,1)
  pressure_subplot.plot( x, p,'.')
  pressure_subplot.plot( x, analytical_p,'-')
  plt.axis((x[0],x[-1],0.1,1.1))
  plt.ylabel('p')

  velocity_subplot = fig.add_subplot(4,1,2)
  velocity_subplot.plot( x, u,'.')
示例#6
0
    filename_in = filename_part + str(time_level) + '.vtu'
    filename_out = filename_part + str(format(time_level, "03g")) + '.png'
    print 'Processing file', filename_in, '...',

    vt = vtktools.vtu(filename_in)
    t = vt.GetScalarField('Time')[0]
    xyz = vt.GetLocations()
    x = xyz[:, 0]

    p = vt.GetScalarField('Pressure')
    uvw = vt.GetVectorField('Velocity')
    u = uvw[:, 0]
    rho = vt.GetScalarField('Density')
    ie = vt.GetScalarField('InternalEnergy')

    analytical_solution = numpy.array([shocktube.solution(xi, t) for xi in x])
    analytical_p = analytical_solution[:, 0]
    analytical_u = analytical_solution[:, 1]
    analytical_rho = analytical_solution[:, 2]
    analytical_ie = analytical_p / analytical_rho / (shocktube.gamma - 1.0)

    fig = plt.figure()

    pressure_subplot = fig.add_subplot(4, 1, 1)
    pressure_subplot.plot(x, p, '.')
    pressure_subplot.plot(x, analytical_p, '-')
    plt.axis((x[0], x[-1], 0.1, 1.1))
    plt.ylabel('p')

    velocity_subplot = fig.add_subplot(4, 1, 2)
    velocity_subplot.plot(x, u, '.')