コード例 #1
0
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')
コード例 #2
0
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')
コード例 #3
0
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')
コード例 #4
0
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')
コード例 #5
0
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')
コード例 #6
0
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$')