xref: /petsc/src/binding/petsc4py/demo/legacy/kspsolve/test_mat_ksp.py (revision 5a48edb989d3ea10d6aff6c0e26d581c18691deb)
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