1try: 2 execfile 3except NameError: 4 def execfile(file, globals=globals(), locals=locals()): 5 fh = open(file, "r") 6 try: exec(fh.read()+"\n", globals, locals) 7 finally: fh.close() 8 9import petsc4py, sys 10petsc4py.init(sys.argv) 11 12from petsc4py import PETSc 13 14execfile('petsc-mat.py') 15execfile('petsc-ksp.py') 16 17OptDB = PETSc.Options() 18 19if OptDB.getBool('plot', True): 20 da = PETSc.DMDA().create([m,n]) 21 u = da.createGlobalVec() 22 x.copy(u) 23 draw = PETSc.Viewer.DRAW() 24 OptDB['draw_pause'] = 1 25 draw(u) 26 27if OptDB.getBool('plot_mpl', False): 28 try: 29 from matplotlib import pylab 30 except ImportError: 31 print("matplotlib not available") 32 else: 33 from numpy import mgrid 34 X, Y = mgrid[0:1:1j*m,0:1:1j*n] 35 Z = x[...].reshape(m,n) 36 pylab.figure() 37 pylab.contourf(X,Y,Z) 38 pylab.plot(X.ravel(),Y.ravel(),'.k') 39 pylab.axis('equal') 40 pylab.colorbar() 41 pylab.show() 42