|
15 | 15 | import glob
|
16 | 16 | import sys
|
17 | 17 | import matplotlib
|
18 |
| -matplotlib.use('Agg') |
| 18 | + |
| 19 | +matplotlib.use("Agg") |
19 | 20 | from mpl_toolkits.mplot3d import Axes3D
|
20 | 21 | import matplotlib.pyplot as plt
|
21 | 22 | import pandas as pd
|
|
25 | 26 | # load pickled data
|
26 | 27 | def load_data(file):
|
27 | 28 | data = np.load(file)
|
28 |
| - m = data['mesh'] |
29 |
| - t = data['t'] |
30 |
| - u = data['u'] |
31 |
| - v = data['v'] |
32 |
| - w = data['w'] |
| 29 | + m = data["mesh"] |
| 30 | + t = data["t"] |
| 31 | + u = data["u"] |
| 32 | + v = data["v"] |
| 33 | + w = data["w"] |
33 | 34 |
|
34 |
| - hx = m[0,1] - m[0,0] |
35 |
| - hy = m[1,1] - m[1,0] |
36 |
| - hz = m[2,1] - m[2,0] |
| 35 | + hx = m[0, 1] - m[0, 0] |
| 36 | + hy = m[1, 1] - m[1, 0] |
| 37 | + hz = m[2, 1] - m[2, 0] |
37 | 38 |
|
38 |
| - return { 'm': m, 'h': (hx,hy,hz), 't': t, 'u': u, 'v': v, 'w': w } |
| 39 | + return {"m": m, "h": (hx, hy, hz), "t": t, "u": u, "v": v, "w": w} |
39 | 40 |
|
40 | 41 |
|
41 | 42 | # grid function norm
|
42 | 43 | def norm_3Dgrid(h, x, q=1):
|
43 |
| - hx,hy,hz = h |
| 44 | + hx, hy, hz = h |
44 | 45 | s = np.shape(x)
|
45 |
| - return (hx*hy*hz*np.sum(np.abs(x)**q, axis=(1,2,3)))**(1./q) |
| 46 | + return (hx * hy * hz * np.sum(np.abs(x) ** q, axis=(1, 2, 3))) ** (1.0 / q) |
46 | 47 |
|
47 | 48 |
|
48 | 49 | # load data files
|
49 |
| -np111 = load_data('np-111/output-with-h-8.33e-02.npz') |
50 |
| -np211 = load_data('np-211/output-with-h-8.33e-02.npz') |
51 |
| -np311 = load_data('np-311/output-with-h-8.33e-02.npz') |
52 |
| -np131 = load_data('np-131/output-with-h-8.33e-02.npz') |
53 |
| -np113 = load_data('np-113/output-with-h-8.33e-02.npz') |
54 |
| -np911 = load_data('np-911/output-with-h-8.33e-02.npz') |
| 50 | +np111 = load_data("np-111/output-with-h-8.33e-02.npz") |
| 51 | +np211 = load_data("np-211/output-with-h-8.33e-02.npz") |
| 52 | +np311 = load_data("np-311/output-with-h-8.33e-02.npz") |
| 53 | +np131 = load_data("np-131/output-with-h-8.33e-02.npz") |
| 54 | +np113 = load_data("np-113/output-with-h-8.33e-02.npz") |
| 55 | +np911 = load_data("np-911/output-with-h-8.33e-02.npz") |
55 | 56 | # np133 = load_data('np-133/output-with-h-8.33e-02.npz')
|
56 |
| -np313 = load_data('np-313/output-with-h-8.33e-02.npz') |
57 |
| -np331 = load_data('np-331/output-with-h-8.33e-02.npz') |
58 |
| -np333 = load_data('np-333/output-with-h-8.33e-02.npz') |
| 57 | +np313 = load_data("np-313/output-with-h-8.33e-02.npz") |
| 58 | +np331 = load_data("np-331/output-with-h-8.33e-02.npz") |
| 59 | +np333 = load_data("np-333/output-with-h-8.33e-02.npz") |
59 | 60 | # np666 = load_data('np-666/output-with-h-8.33e-02.npz')
|
60 | 61 |
|
61 |
| -for component in ['u', 'v', 'w']: |
| 62 | +for component in ["u", "v", "w"]: |
62 | 63 | # Reference solution
|
63 | 64 | ref = np111[component]
|
64 | 65 |
|
65 | 66 | # Now compute E(h) = ||U(h) - \bar{U}(h)|| using the grid-function norm
|
66 |
| - E_np211 = norm_3Dgrid(np211['h'], np211[component] - ref) |
67 |
| - E_np311 = norm_3Dgrid(np311['h'], np311[component] - ref) |
68 |
| - E_np131 = norm_3Dgrid(np131['h'], np131[component] - ref) |
69 |
| - E_np113 = norm_3Dgrid(np113['h'], np113[component] - ref) |
70 |
| - E_np911 = norm_3Dgrid(np911['h'], np911[component] - ref) |
| 67 | + E_np211 = norm_3Dgrid(np211["h"], np211[component] - ref) |
| 68 | + E_np311 = norm_3Dgrid(np311["h"], np311[component] - ref) |
| 69 | + E_np131 = norm_3Dgrid(np131["h"], np131[component] - ref) |
| 70 | + E_np113 = norm_3Dgrid(np113["h"], np113[component] - ref) |
| 71 | + E_np911 = norm_3Dgrid(np911["h"], np911[component] - ref) |
71 | 72 | # E_np133 = norm_3Dgrid(np133['h'], np133[component] - ref)
|
72 |
| - E_np313 = norm_3Dgrid(np313['h'], np313[component] - ref) |
73 |
| - E_np331 = norm_3Dgrid(np331['h'], np331[component] - ref) |
74 |
| - E_np333 = norm_3Dgrid(np333['h'], np333[component] - ref) |
| 73 | + E_np313 = norm_3Dgrid(np313["h"], np313[component] - ref) |
| 74 | + E_np331 = norm_3Dgrid(np331["h"], np331[component] - ref) |
| 75 | + E_np333 = norm_3Dgrid(np333["h"], np333[component] - ref) |
75 | 76 | # E_np666 = norm_3Dgrid(np666['h'], np666[component] - ref)
|
76 | 77 |
|
77 | 78 | # Plot error across time
|
78 |
| - X, Y = np.meshgrid(np111['m'][0,:], np111['t']) |
| 79 | + X, Y = np.meshgrid(np111["m"][0, :], np111["t"]) |
79 | 80 | # fig = plt.figure()
|
80 | 81 | # ax = plt.subplot(311, projection='3d')
|
81 | 82 | # ax.plot_surface(X, Y, np.abs(np911[component][:,:,0,0] - ref[:,:,0,0]))
|
82 | 83 | # ax = plt.subplot(312, projection='3d')
|
83 | 84 | # ax.plot_surface(X, Y, np.abs(np911[component][:,0,:,0] - ref[:,0,:,0]))
|
84 | 85 | # ax = plt.subplot(313, projection='3d')
|
85 | 86 | # ax.plot_surface(X, Y, np.abs(np911[component][:,0,0,:] - ref[:,0,0,:]))
|
86 |
| - plt.plot(np111['t'], E_np211) |
87 |
| - plt.plot(np111['t'], E_np131) |
88 |
| - plt.plot(np111['t'], E_np113) |
89 |
| - plt.plot(np111['t'], E_np911) |
| 87 | + plt.plot(np111["t"], E_np211) |
| 88 | + plt.plot(np111["t"], E_np131) |
| 89 | + plt.plot(np111["t"], E_np113) |
| 90 | + plt.plot(np111["t"], E_np911) |
90 | 91 | # plt.plot(np111['t'], E_np133)
|
91 |
| - plt.plot(np111['t'], E_np313) |
92 |
| - plt.plot(np111['t'], E_np331) |
93 |
| - plt.plot(np111['t'], E_np333) |
| 92 | + plt.plot(np111["t"], E_np313) |
| 93 | + plt.plot(np111["t"], E_np331) |
| 94 | + plt.plot(np111["t"], E_np333) |
94 | 95 | # plt.plot(np111['t'], E_np666)
|
95 | 96 | # plt.legend(['2 1 1', '3 1 1', '1 3 3', '3 1 3', '3 3 1', '3 3 3', '6 6 6'])
|
96 | 97 | # plt.legend(['3 1 1', '1 3 1', '1 1 3', '9 1 1', '1 3 3', '3 1 3', '3 3 1'])
|
97 |
| - plt.ylabel('||E(hx,hy,hz)||') |
98 |
| - plt.xlabel('time') |
99 |
| - plt.savefig('compare-error-plot-%s.png' % component) |
| 98 | + plt.ylabel("||E(hx,hy,hz)||") |
| 99 | + plt.xlabel("time") |
| 100 | + plt.savefig("compare-error-plot-%s.png" % component) |
0 commit comments