def do_test2(rootdir, title): dirsx = glob.glob(rootdir + '*') dirsx.sort() print(dirsx) Nblocks = [] e = [] if len(dirsx) == 0: raise ValueError('no data') for d in dirsx: if len(glob.glob(d + '/*.h5')) != 0: err = wabbit_tools.wabbit_error(d) #, norm=np.inf) N, Bs = wabbit_tools.fetch_Nblocks_dir(d, return_Bs=True) Nblocks.append(np.sqrt(N * Bs)) e.append(err) Nblocks, e = zip(*sorted(zip(Nblocks, e))) plt.loglog(Nblocks, e, label=title + " [%2.2f]" % (wabbit_tools.convergence_order(Nblocks, e)), marker='o')
def adaptive_epsopt(dirlist, title, norm, Bs, ax): e, Nb = [], [] ref = 'ref_flusi/T5_2048_double/flusiphi_000002500000.h5' if len(dirlist) == 0: raise ValueError('no data') for d in dirlist: if (os.path.isfile(d + '/fullphi_000002500000.h5')): # compute error err = wabbit_tools.wabbit_error_vs_flusi( d + '/fullphi_000002500000.h5', ref, norm=norm) e.append(err) # compute number of points N, Bs = wabbit_tools.fetch_Nblocks_RHS_dir(d, return_Bs=True) Nb.append((Bs - 1) * np.sqrt(N)) # sort data by number of blocks Nb, e = zip(*sorted(zip(Nb, e))) plt.loglog(Nb, e, label=title + " [%2.2f]" % (wabbit_tools.convergence_order(Nb, e)), marker='o')
def equidistant(rootdir, title, norm, ax): dirsx = glob.glob(rootdir + '*') Nblocks, e = [], [] ref = 'ref_flusi/T5_2048_double/flusiphi_000002500000.h5' if len(dirsx) == 0: raise ValueError('no data') for d in dirsx: if (os.path.isfile(d + '/fullphi_000002500000.h5')): err = wabbit_tools.wabbit_error_vs_flusi( d + '/fullphi_000002500000.h5', ref, norm=norm) N, Bs = wabbit_tools.fetch_Nblocks_dir(d, return_Bs=True) # append to plot-lists Nblocks.append((Bs - 1) * np.sqrt(N)) e.append(err) Nblocks, e = zip(*sorted(zip(Nblocks, e))) ax.loglog(Nblocks, e, label=title + " [%2.2f]" % (wabbit_tools.convergence_order(Nblocks, e)), marker='o')
def do_test( basedir, name, blob_width=0.01): dirs = glob.glob( basedir+'*') if dirs != []: dt=[] err=[] for dir in dirs: if len(glob.glob(dir+'/*.h5')) != 0: dt.append( wabbit_tools.fetch_dt_dir(dir) ) err.append( wabbit_tools.wabbit_error(dir) ) else: print('There are no h5 files in '+dir) print(dirs) dt, err = zip(*sorted(zip(dt, err))) dt = list(dt) err = list(err) print(dt) plt.loglog(dt, err, label=name+" [%2.2f] " % (wabbit_tools.convergence_order(dt,err)), marker='o')
def do_test(rootdir, name): dirsx = glob.glob(rootdir + '*') EPS = [] err = [] Nblocks = [] for d in dirsx: EPS.append(wabbit_tools.fetch_eps_dir(d)) err.append(wabbit_tools.wabbit_error(d)) Nblocks.append(wabbit_tools.fetch_Nblocks_dir(d)) # sort the lists (by eps) EPS, err, Nblocks = zip(*sorted(zip(EPS, err, Nblocks))) name = name + " [%2.2f]" % (wabbit_tools.convergence_order(EPS, err)) plt.figure(1) plt.loglog(EPS, err, label=name, marker='o') plt.figure(2) plt.loglog(EPS, Nblocks, label=name, marker='o')
plt.figure() files = glob.glob('compression_test/phi_*e-*.h5') for norm in [2, np.inf]: e = [] eps = [] for file in files: e.append( wabbit_tools.wabbit_error('./', show=False, norm=norm, file=file) ) n = file.replace('compression_test/phi_','' ) n = n.replace('.h5','') eps.append( float(n) ) eps, e = zip(*sorted(zip(eps, e))) plt.rcParams["text.usetex"] = True plt.rcParams["font.family"] = 'serif' plt.rcParams["font.serif"] = 'Times' plt.loglog( eps, e, label="4th"+" [%2.2f]" % (wabbit_tools.convergence_order(eps,e)), marker='o') plt.loglog( eps, eps, linestyle='--', color='k' ) plt.xlabel('$\\varepsilon$') if norm is 2: plt.ylabel('$||\phi-\phi_{\\mathrm{ex}}||_2/||\phi_{\\mathrm{ex}}||_2$') else: plt.ylabel('$||\phi-\phi_{\\mathrm{ex}}||_\infty/||\phi_{\\mathrm{ex}}||_\infty$')