Beispiel #1
0
    pparams['u0'] = 1

    # Fill description dictionary for easy hierarchy creation
    description = {}
    description['problem_class'] = swfw_scalar
    description['problem_params'] = pparams
    description['dtype_u'] = mesh
    description['dtype_f'] = rhs_imex_mesh
    description['collocation_class'] = collclass.CollGaussLobatto
    description['num_nodes'] = [3]
    description['do_LU'] = False
    description['sweeper_class'] = imex_1st_order
    description['level_params'] = lparams

    # quickly generate block of steps
    MS = mp.generate_steps(num_procs, sparams, description)

    # setup parameters "in time"
    t0 = 0
    dt = 1.0
    Tend = 1.0

    P = MS[0].levels[0].prob
    uinit = P.u_exact(t0)

    print('Init:', uinit.values)

    # call main function to get things done...
    uend, stats = mp.run_pfasst(MS, u0=uinit, t0=t0, dt=dt, Tend=Tend)

    uex = P.u_exact(Tend)
            description['num_nodes'] = 3
        elif order == 5:
            description['num_nodes'] = 3

        sparams['maxiter'] = order

        for ii in range(0, np.shape(nsteps)[1]):

            ns = nsteps[order - 3, ii]
            if ((order == 3) or (order == 4)):
                pparams['nvars'] = [(2, 2 * ns)]
            elif order == 5:
                pparams['nvars'] = [(2, 2 * ns)]

            # quickly generate block of steps
            MS = mp.generate_steps(num_procs, sparams, description)

            dt = Tend / float(ns)

            # get initial values on finest level
            P = MS[0].levels[0].prob
            rkimex = rk_imex(P.A.astype('complex'), P.Dx.astype('complex'),
                             order)

            uinit = P.u_exact(t0)
            y0 = np.concatenate((uinit.values[0, :], uinit.values[1, :]))
            y0 = y0.astype('complex')
            if ii == 0:
                print("Time step: %4.2f" % dt)
                print("Fast CFL number: %4.2f" % (pparams['cs'] * dt / P.dx))
                print("Slow CFL number: %4.2f" % (pparams['cadv'] * dt / P.dx))