<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    OK so I can solve the equation but now I am having trouble plotting
    the solution! I would like to produce a surface plot with colors
    defined by p and animate it. That is plot the value of p at all x
    and z, over time (t).  My code to get p is below but I really have
    no idea how to plot this. Anyone know the best way to go about this?
    <br>
    thanks,
    <br>
    D
    <br>
    <br>
    -------- Original Message --------
    <table class="moz-email-headers-table" border="0" cellpadding="0"
      cellspacing="0">
      <tbody>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject: </th>
          <td>Re: [Tutor] Solve wave equation</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date: </th>
          <td>Thu, 23 Feb 2012 15:24:45 +0000</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
          <td>David Craig <a class="moz-txt-link-rfc2396E" href="mailto:dcdavemail@gmail.com">&lt;dcdavemail@gmail.com&gt;</a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">To: </th>
          <td><a class="moz-txt-link-abbreviated" href="mailto:tutor@python.org">tutor@python.org</a></td>
        </tr>
      </tbody>
    </table>
    <br>
    <br>
    <pre>Hooray it works,
thanks

On 02/23/2012 01:39 PM, Ken Oliver wrote:
&gt; Do you really want dt = 1**-4 or would 10**-4 be better
&gt;
&gt; -----Original Message-----
&gt;&gt; From: David Craig<a class="moz-txt-link-rfc2396E" href="mailto:dcdavemail@gmail.com">&lt;dcdavemail@gmail.com&gt;</a>
&gt;&gt; Sent: Feb 23, 2012 7:57 AM
&gt;&gt; To: <a class="moz-txt-link-abbreviated" href="mailto:tutor@python.org">tutor@python.org</a>
&gt;&gt; Subject: [Tutor] Solve wave equation
&gt;&gt;
&gt;&gt; Hi,
&gt;&gt; I am trying to write some code that will solve the 2D wave equation by
&gt;&gt; the finite difference method, but it just returns an array full of zeros
&gt;&gt; and NaN's. Not sure where I am going wrong, the code is attached so if
&gt;&gt; could someone point me in the right direction I'd appreciate this.
&gt;&gt; Thanks
&gt;&gt; D
&gt;
&gt;   .
&gt;

# 2D Finite Distance Wave Equation.
from pylab import *
from numpy import math

ion()

# Set up variables.
nx = 100
nz = 100
nsteps = 300
c = 3500
dt = 10**-4
h = 1
t = arange(0,nsteps,dt)



# Define source as a spike.
s = zeros(nsteps)
s[1] = 1
s[2] = 2
s[3] = 1

# Position source.
xs = 50
zs = 50
##plot(t,s)
##show()

# Set up pressure field.
p=empty([nx,nz,nsteps])

for t in range(0,nsteps-1):

    for z in range(0,nz-1):

        for x in range(0,nx-1):

            p[x,z,t] = 0


# Solve wave equation

for t in range(2,nsteps-1):

    for z in range(1,nz-1):

        for x in range(2,nx-1):

            p[xs,zs,t] = s[t]
            k = (c*dt/h)**2

            p[x,z,t] = 2*p[x,z,t-1] - p[x,z,t-2] + k*(p[x+1,z,t-1]-4*p[x,z,t-1]+p[x-1,z,t-1]+p[x,z+1,t-1]+p[x,z-1,t-1])


        #Plot somehow

        draw()

#close()





</pre>
  </body>
</html>