Ejemplo n.º 1
0
for k0, kend in k_range:
    for u0, uend in u_range: 
        for x0, xend in x_range:

            for u0typei in u0type:
                for sigu0i in sigu0:
                    for ai, bi in zip(a, b):

                        for k_disti in k_dist:
                            if k_disti == 'gaussian':
                                kparam1, kparam2 = muk, sigk
                            elif k_disti == 'uniform':
                                kparam1, kparam2 = mink, maxk 
                            else:
                                print("wrong k distribution option")

                            for kparam1i, kparam2i in zip(kparam1, kparam2):

                                gridvars = {'u': [u0, uend, du], 'k': [k0, kend, dk], 't': [t_range[0], t_range[1], dt], 'x':[x0, xend, dx]}
                                ICparams = {'u0': u0typei, 
                                            'u0param': [ai, bi], 
                                            'fu0': 'gaussian',
                                            'fu0param': sigu0i, 
                                            'fk': k_disti, 
                                            'fkparam': [kparam1i, kparam2i]}

                                grid = PdfGrid(gridvars)
                                S = PdfSolver(grid, ICparams, save=True, case=case)
                                S.solve() 
Ejemplo n.º 2
0
def runsimulation():
    dt = 0.03
    t0 = 0.0
    tend = 4
    nt = int((tend - t0) / dt)

    dx = 0.03
    x0 = -1.5
    xend = 1.5
    nx = int((xend - x0) / dx)

    dk = 0.05
    k0 = -1.0
    kend = 1.0
    nk = int((kend - k0) / dk)

    du = 0.04
    u0 = -2.5
    uend = 2.5
    nu = int((uend - u0) / du)

    muk = 0.0
    sigk = 0.5
    sigu = 1.0
    mink = -0.5
    maxk = 0.5
    a = 1.0
    b = 0.0

    # Second set of data
    muk_2 = 0.2
    sigk_2 = 1
    sigu_2 = 1.1
    mink_2 = 0.0
    maxk_2 = 1.0
    a_2 = 1.0
    b_2 = 0.0

    runsimulation = 1
    IC_opt = 1

    solvopt = 'RandomKadvection'

    for i in range(1, 5):
        print(i)
        grid = PdfGrid(x0=x0,
                       xend=xend,
                       k0=k0,
                       kend=kend,
                       t0=t0,
                       tend=tend,
                       u0=u0,
                       uend=uend,
                       nx=nx,
                       nt=nt,
                       nk=nk,
                       nu=nu)
        grid.printDetails()
        S = PdfSolver(grid, save=True)
        S.setIC(option=i,
                a=a,
                b=b,
                mink=mink,
                maxk=maxk,
                muk=muk,
                sigk=sigk,
                sigu=sigu)

        time0 = time.time()
        fuk, fu, kmean, uu, kk, xx, tt = S.solve(solver_opt=solvopt)
        print('Compute time = ', time.time() - time0)
Ejemplo n.º 3
0
    gridvars = {
        'u': [u0, uend, du],
        'k': [k0, kend, dk],
        't': [t0, tend, dt],
        'x': [x0, xend, dx]
    }
    ICparams = {
        'fu0': 'compact_gaussian',
        'fu0param': [mux, sigx, muU, sigU, rho],
        'fk': 'uniform',
        'fkparam': [mink, maxk]
    }

    grid = PdfGrid(gridvars)
    S = PdfSolver(grid, ICparams, save=True, case=case)
    S.solve()  # no need to return anything


def reaction():
    case = 'reaction_linear'

    dt = 0.01
    t0 = 0
    tend = 5

    du = 0.005
    u0 = -7
    uend = 7

    umean = 0.2
    sigu0 = 1.1