# Contents of /trunk/doc/examples/usersguide/wave.py

Revision 2742 - (show annotations)
Thu Nov 12 06:03:37 2009 UTC (9 years, 4 months ago) by jfenwick
File MIME type: text/x-python
File size: 4274 byte(s)
```Merging changes from the lapack branch.

The inverse() operation has been moved into c++. [No lazy support for this operation yet.]
Optional Lapack support has been added for matrices larger than 3x3.
service0 is set to use mkl_lapack.

```
 1 2 ######################################################## 3 # 4 # Copyright (c) 2003-2009 by University of Queensland 5 # Earth Systems Science Computational Center (ESSCC) 6 7 # 8 # Primary Business: Queensland, Australia 9 # Licensed under the Open Software License version 3.0 10 11 # 12 ######################################################## 13 14 __copyright__="""Copyright (c) 2003-2009 by University of Queensland 15 Earth Systems Science Computational Center (ESSCC) 16 http://www.uq.edu.au/esscc 17 Primary Business: Queensland, Australia""" 18 __license__="""Licensed under the Open Software License version 3.0 19 20 __url__= 21 22 from esys.escript import * 23 from esys.escript.pdetools import Locator 24 from esys.escript.linearPDEs import LinearPDE 25 from esys.finley import Brick 26 from numpy import identity,zeros,ones 27 import matplotlib 28 29 matplotlib.use('agg') #For interactive use, you can comment out this line 30 #It's just here to make testing easier 31 32 import matplotlib.pyplot as plt 33 34 35 ne=32 # number of cells in x_0 and x_1 directions 36 width=10000. # length in x_0 and x_1 directions 37 lam=3.462e9 38 mu=3.462e9 39 rho=1154. 40 tend=10. # to ran a full simulation change tend to 60. 41 alpha=0.7 42 t0=3. 43 44 45 U0=1. # maximum displacement 46 mkDir("data") # create directory data if it does not exist already. 47 48 def wavePropagation(domain,h,tend,lam,mu,rho, xc, src_radius, U0): 49 # lists to collect displacement at point source 50 ts, u_pc0,u_pc1,u_pc2=[], [], [], [] 51 x=domain.getX() 52 # ... open new PDE ... 53 mypde=LinearPDE(domain) 54 mypde.getSolverOptions().setSolverMethod(mypde.getSolverOptions().LUMPING) 55 kronecker=identity(mypde.getDim()) 56 57 dunit=numpy.array([1.,0.,0.]) # defines direction of point source 58 59 mypde.setValue(D=kronecker*rho, q=whereNegative(length(x-xc)-src_radius)*dunit) 60 # ... set initial values .... 61 n=0 62 # for first two time steps 63 u=Vector(0.,Solution(domain)) 64 u_last=Vector(0.,Solution(domain)) 65 t=0 66 67 # define the location of the point source 68 L=Locator(domain,xc) 69 # find potential at point source 70 u_pc=L.getValue(u) 71 print "u at point charge=",u_pc 72 ts.append(t); u_pc0.append(u_pc[0]), u_pc1.append(u_pc[1]), u_pc2.append(u_pc[2]) 73 74 while t

## Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision
svn:mergeinfo /branches/lapack2681/doc/examples/usersguide/wave.py:2682-2741 /branches/restext/doc/examples/usersguide/wave.py:2610-2624 /trunk/doc/examples/usersguide/wave.py:1388-2483