Exemplo n.º 1
0
a[1, -1] = d
for i in range(0, Nz - 1):
    a[1, i] = i * dz + dz / 2
    a[0, i + 1] = a[1, i]

dzv = d / (Nzv - 1)

b = np.zeros([2, Nzv])
b[0, 0] = 0
b[1, -1] = d

for i in range(0, Nzv - 1):
    b[1, i] = i * dzv + dzv / 2
    b[0, i + 1] = b[1, i]

neighField = fun.neighFun(a, b, Nz, Nzv)


def heat1(x):
    heatSum = 0
    dzp = dt * v
    dz = d / (Nz - 1)
    if (dzp >= dz):
        print(
            'Neni splnena podminka na rychlost, muze dojit k preskoceni jednoho KO'
        )

    alpha = fun.calcDN(h, e, cv, mi, k, v, kinv)

    def c(T):
        return 2000 + 43770 * np.exp(-(T - 43)**2 / 4.8)
Exemplo n.º 2
0
def heat1(x):
    heatSum = 0
    dzp = dt * v
    dz = d / (Nz - 1)
    if (dzp >= dz):
        print(
            'Neni splnena podminka na rychlost, muze dojit k preskoceni jednoho KO'
        )

    alpha = fun.calcDN(h, e, cv, mi, k, v, kinv)

    def c(T):
        return 2000 + 43770 * np.exp(-(T - 43)**2 / 4.8)

    ctv = 0
    dx = x[0] / (Nx - 1)
    dy = h / (Ny - 1)
    # x[2] = 10 / (x[0] * x[1] * rho)
    dz = d / (Nz - 1)

    T = np.zeros([Nx, Ny, Nz, int(tmax / dt) + 1])
    Tvz = np.zeros([Ny, 15000, int(tmax / dt) + 2, 2])

    T[:, :, :, 0].fill(T0p)
    Tvz[:, :, :, :].fill(18)

    bIt = copy.copy(b)
    neighField = neighFun(a, b, Nz, Nzv)

    for p in np.arange(0, int(tmax / dt), 1):

        # vzduch leva rohy

        Tvz[0, 0, p + 1, 0] = Tvz[0, 0, p, 0] + (2 * dt) / (e * dy * neighField[0, 0] * cv * rhov) * \
        (qprl(0, 0, p, T, Tvz, dy, alpha, neighField) + qloss)

        Tvz[-1, 0, p + 1, 0] = Tvz[-1, 0, p, 0] + (2 * dt) / (e * dy * neighField[0, 0] * cv * rhov) * \
        (qprl(-1, 0, p, T, Tvz, dy, alpha, neighField) + qloss)

        Tvz[0, Nzv - 1, p + 1, 0] = Tvz[0, Nzv - 1, p, 0] + (2 * dt) / (e * dy * neighField[-1, -1] * cv * rhov) * \
        (qprl(0, Nzv - 1, p, T, Tvz, dy, alpha, neighField) + qloss)

        Tvz[-1, Nzv - 1, p + 1, 0] = Tvz[-1, Nzv - 1, p, 0] + (2 * dt) / (e * dy * neighField[-1, -1] * cv * rhov) * \
        (qprl(-1, Nzv - 1, p, T, Tvz, dy, alpha, neighField) + qloss)

        # vzduch prava rohy

        Tvz[0, 0, p + 1, 1] = Tvz[0, 0, p, 1] + (2 * dt) / (e * dy * neighField[0, 0] * cv * rhov) * \
        (qprp(0, 0, p, T, Tvz, dy, alpha, neighField) + qloss)

        Tvz[-1, 0, p + 1, 1] = Tvz[-1, 0, p, 1] + (2 * dt) / (e * dy * neighField[0, 0] * cv * rhov) * \
        (qprp(-1, 0, p, T, Tvz, dy, alpha, neighField) + qloss)

        Tvz[0, Nzv - 1, p + 1, 1] = Tvz[0, Nzv - 1, p, 1] + (2 * dt) / (e * dy * neighField[-1, -1] * cv * rhov) * \
        (qprp(0, Nzv - 1, p, T, Tvz, dy, alpha, neighField) + qloss)

        Tvz[-1, Nzv - 1, p + 1, 1] = Tvz[-1, Nzv - 1, p, 1] + (2 * dt) / (e * dy * neighField[-1, -1] * cv * rhov) * \
        (qprp(-1, Nzv - 1, p, T, Tvz, dy, alpha, neighField) + qloss)

        T[0, 0, 0, p + 1] = T[0, 0, 0, p] + (2 * dt) / (c(T[0, 0, 0, p]) * rho) * \
        (ql(0, 0, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qh / dy + qf / dz) + \
        (2 * lambd * dt) / (c(T[0, 0, 0, p]) * rho) * \
        ((T[1, 0, 0, p] - T[0, 0, 0, p]) / dx ** 2 + (T[0, 1, 0, p] - T[0, 0, 0, p]) / dy ** 2 +
        (T[0, 0, 1, p] - T[0, 0, 0, p]) / dz ** 2)

        T[-1, 0, 0, p + 1] = T[-1, 0, 0, p] + (2 * dt) / (c(T[-1, 0, 0, p]) * rho) * \
        (qp(0, 0, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qh / dy + qf / dz) + \
        (2 * lambd * dt) / (c(T[-1, 0, 0, p]) * rho) * ((T[-2, 0, 0, p] -
        T[-1, 0, 0, p]) / dx ** 2 + (T[-1, 1, 0, p] - T[-1, 0, 0, p]) / dy ** 2 +
        (T[-1, 0, 1, p] - T[-1, 0, 0, p]) / dz ** 2)

        T[0, -1, 0, p + 1] = T[0, -1, 0, p] + (2 * dt) / (c(T[0, -1, 0, p]) * rho) * \
        (ql(-1, 0, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qd / dy + qf / dz) + \
        (2 * lambd * dt) / (c(T[0, -1, 0, p]) * rho) * ((T[1, -1, 0, p] - T[0, -1, 0, p]) / dx ** 2 +
        (T[0, -2, 0, p] - T[0, -1, 0, p]) / dy ** 2 + (T[0, -1, 1, p] - T[0, -1, 0, p]) / dz ** 2)

        T[-1, -1, 0, p + 1] = T[-1, -1, 0, p] + (2 * dt) / (c(T[-1, -1, 0, p]) * rho) * (
        qp(-1, 0, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qd / dy + qf / dz) + \
        (2 * lambd * dt) / (c(T[-1, -1, 0, p]) * rho) * ((T[-2, -1, 0, p] - T[-1, -1, 0, p]) / dx ** 2 +
        (T[-1, -2, 0, p] - T[-1, -1, 0, p]) / dy ** 2 + (T[-1, -1, 1, p] - T[-1, -1, 0, p]) / dz ** 2)

        T[0, 0, -1, p + 1] = T[0, 0, -1, p] + (2 * dt) / (c(T[0, 0, -1, p]) * rho) * \
        (ql(0, -1, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qh / dy + qb / dz) + \
        (2 * lambd * dt) / (c(T[0, 0, -1, p]) * rho) * (
        (T[1, 0, -1, p] - T[0, 0, -1, p]) / dx ** 2 +
        (T[0, 1, -1, p] - T[0, 0, -1, p]) / dy ** 2 + (
        T[0, 0, -2, p] - T[0, 0, -1, p]) / dz ** 2)

        T[-1, 0, -1, p + 1] = T[-1, 0, -1, p] + (2 * dt) / (c(T[-1, 0, -1, p]) * rho) * \
        (qp(0, -1, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qh / dy + qb / dz) + \
        (2 * lambd * dt) / (c(T[-1, 0, -1, p]) * rho) * \
        ((T[-2, 0, -1, p] - T[-1, 0, -1, p]) / dx ** 2 +
        (T[-1, 1, -1, p] - T[-1, 0, -1, p]) / dy ** 2 + (T[-1, 0, -2, p] - T[-1, 0, -1, p]) / dz ** 2)

        T[0, -1, -1, p + 1] = T[0, -1, -1, p] + (2 * dt) / (c(T[0, -1, -1, p]) * rho) * \
        (ql(-1, -1, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qd / dy + qb / dz) + \
        (2 * lambd * dt) / (c(T[0, -1, -1, p]) * rho) * ((T[1, -1, -1, p] - T[0, -1, -1, p]) / dx ** 2 +
        (T[0, -2, -1, p] - T[0, -1, -1, p]) / dy ** 2 + (T[0, -1, -2, p] - T[0, -1, -1, p]) / dz ** 2)

        T[-1, -1, -1, p + 1] = T[-1, -1, -1, p] + (2 * dt) / (c(T[-1, -1, -1, p]) * rho) * (
        qp(-1, -1, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qd / dy + qb / dz) + \
        (2 * lambd * dt) / (c(T[-1, -1, -1, p]) * rho) * ((T[-2, -1, -1, p] -
        T[-1, -1, -1, p]) / dx ** 2 + (T[-1, -2, -1, p] - T[-1, -1, -1, p]) / dy ** 2 +
        (T[-1, -1, -2, p] - T[-1, -1, -1, p]) / dz ** 2)

        for m in range(1, Nx - 1):

            T[m, 0, 0, p + 1] = T[m, 0, 0, p] + (2 * dt) / (c(T[m, 0, 0, p]) * rho) * (qh / dy + qf / dz) + \
            (2 * lambd * dt) / (c(T[m, 0, 0, p]) * rho) * ((T[m - 1, 0, 0, p] + T[m + 1, 0, 0, p] -
            2 * T[m, 0, 0, p]) / (dx ** 2 * 2) + (T[m, 1, 0, p] - T[m, 0, 0, p]) / dy ** 2 +
            (T[m, 0, 1, p] - T[m, 0, 0, p]) / dz ** 2)

            T[m, -1, 0, p + 1] = T[m, -1, 0, p] + (2 * dt) / (c(T[m, -1, 0, p]) * rho) * (qd / dy + qf / dz) + \
            (2 * lambd * dt) / (c(T[m, -1, 0, p]) * rho) * ((T[m - 1, -1, 0, p] + T[m + 1, -1, 0, p] -
            2 * T[m, -1, 0, p]) / (dx ** 2 * 2) + (T[m, -2, 0, p] - T[m, -1, 0, p]) / dy ** 2 +
            (T[m, -1, 1, p] - T[m, -1, 0, p]) / dz ** 2)

            T[m, 0, -1, p + 1] = T[m, 0, -1, p] + (2 * dt) / (c(T[m, 0, -1, p]) * rho) * (qh / dy + qb / dz) +\
            (2 * lambd * dt) / (c(T[m, 0, -1, p]) * rho) * ((T[m - 1, 0, -1, p] +T[m + 1, 0, -1, p] -
            2 *T[m, 0, -1, p]) / (dx ** 2 * 2) + (T[m, 1, -1, p] -T[m, 0, -1, p]) / dy ** 2 + (T[m, 0, -2, p] -
            T[m, 0, -1, p]) / dz ** 2)

            T[m, -1, -1, p + 1] = T[m, -1, -1, p] + (2 * dt) / (c(T[m, -1, -1, p]) * rho) * (qd / dy + qb / dz) + \
            (2 * lambd * dt) / (c(T[m, -1, -1, p]) * rho) * ((T[m - 1, -1, -1, p] + T[m + 1, -1, -1, p] -
            2 *T[m, -1, -1, p]) / (dx ** 2 * 2) + (T[m, -2, -1, p] - T[m, -1, -1, p]) / dy ** 2 +
            (T[m, -1, -2, p] - T[m, -1, -1, p]) / dz ** 2)

            for n in range(1, Ny - 1):

                T[0, n, 0, p + 1] = T[0, n, 0, p] + (2 * dt) / (c(T[0, n, 0, p]) * rho) * \
                (ql(n, 0, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qf / dz) + \
                (2 * lambd * dt) / (c(T[0, n, 0, p]) * rho) * ((T[0, n + 1, 0, p] +
                T[0, n - 1, 0, p] - 2 * T[0, n, 0, p]) / (dy ** 2 * 2) + (T[1, n, 0, p] -
                T[0, n, 0, p]) / dx ** 2 + (T[0, n, 1, p] - T[0, n, 0, p]) / dz ** 2)

                T[-1, n, 0, p + 1] = T[-1, n, 0, p] + (2 * dt) / (c(T[-1, n, 0, p]) * rho) * (
                qp(n, 0, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qf / dz) + \
                (2 * lambd * dt) / (c(T[-1, n, 0, p]) * rho) * ((T[-1, n + 1, 0, p] +
                T[-1, n - 1, 0, p] - 2 * T[-1, n, 0, p]) / (dy ** 2 * 2) + (T[-2, n, 0, p] -
                T[-1, n, 0, p]) / dx ** 2 + (T[-1, n, 1, p] - T[-1, n, 0, p]) / dz ** 2)

                T[0, n, -1, p + 1] = T[0, n, -1, p] + (2 * dt) / (
                    c(T[0, n, -1, p]) * rho
                ) * (ql(n, -1, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qb
                     / dz) + (2 * lambd * dt) / (c(T[0, n, -1, p]) * rho) * (
                         (T[0, n + 1, -1, p] + T[0, n - 1, -1, p] -
                          2 * T[0, n, -1, p]) / (dy**2 * 2) +
                         (T[1, n, -1, p] - T[0, n, -1, p]) / dx**2 +
                         (T[0, n, -2, p] - T[0, n, -1, p]) / dz**2)

                T[-1, n, -1, p + 1] = T[-1, n, -1, p] + (2 * dt) / (c(T[-1, n, -1, p]) * rho) * (
                qp(n, -1, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qb / dz) + \
                (2 * lambd * dt) / (c(T[-1, n, -1, p]) * rho) * ((T[-1, n + 1, -1, p] + T[-1, n - 1, -1, p] -
                2 *T[-1, n, -1, p]) / (dy ** 2 * 2) + (T[-2, n, -1, p] - T[-1, n, -1, p]) / dx ** 2 +
                (T[-1, n, -2, p] - T[-1, n, -1, p]) / dz ** 2)

                T[m, n, 0, p +
                  1] = T[m, n, 0,
                         p] + (2 * qf * dt) / (rho * c(T[m, n, 0, p]) * dz) + (
                             2 * lambd * dt) / (c(T[m, n, 0, p]) * rho) * (
                                 (T[m + 1, n, 0, p] + T[m - 1, n, 0, p] -
                                  2 * T[m, n, 0, p]) / (dx**2 * 2) +
                                 (T[m, n + 1, 0, p] + T[m, n - 1, 0, p] -
                                  2 * T[m, n, 0, p]) / (dy**2 * 2) +
                                 (T[m, n, 1, p] - T[m, n, 0, p]) / dz**2)

                T[m, n, -1, p + 1] = T[m, n, -1, p] + (2 * qb * dt) / (rho * c(T[m, n, -1, p]) * dz) +\
                (2 * lambd * dt) / (c(T[m, n, -1, p]) * rho) * ((T[m + 1, n, -1, p] + T[m - 1, n, -1, p] -
                2 *T[m, n, -1, p]) / (dx ** 2 * 2) + (T[m, n + 1, -1, p] + T[m, n - 1, -1, p] -
                2 *T[m, n, -1, p]) / (dy ** 2 * 2) + (T[m, n, -2, p] - T[m, n, -1, p]) / dz ** 2)

                for o in range(1, Nz - 1):
                    T[m, 0, o, p + 1] = T[m, 0, o, p] + (2 * qh * dt) / (rho * c(T[m, 0, o, p]) * dy) +\
                    (2 * lambd * dt) / (c(T[m, 0, o, p]) * rho) * ((T[m + 1, 0, o, p] + T[m - 1, 0, o, p] -
                    2 *T[m, 0, o, p]) / (dx ** 2 * 2) + (T[m, 0, o + 1, p] + T[m, 0, o - 1, p] -
                    2 * T[m, 0, o, p]) / (dz ** 2 * 2) + (T[m, 1, o, p] - T[m, 0, o, p]) / dy ** 2)

                    T[m, -1, o, p + 1] = T[m, -1, o, p] + (2 * qd * dt) / (rho * c(T[m, -1, o, p]) * dy) +\
                    (2 * lambd * dt) / (c(T[m, -1, o, p]) * rho) * ((T[m + 1, -1, o, p] + T[m - 1, -1, o, p] -
                    2 * T[m, -1, o, p]) / (dx ** 2 * 2) + (T[m, -1, o + 1, p] + T[m, -1, o - 1, p] -
                    2 * T[m, -1, o, p]) / (dz ** 2 * 2) + (T[m, -2, o, p] - T[m, -1, o, p]) / dy ** 2)

                    T[0, n, o, p + 1] = T[0, n, o, p] + (2 * ql(n, o, p, T, Nzv, Tvz, dz, alpha, neighField) * dt)/\
                    (rho * c(T[0, n, o, p]) * dx) + (2 * lambd * dt) / (c(T[0, n, o, p]) * rho) * \
                    ((T[0, n + 1, o, p] + T[0, n - 1, o, p] - 2 *T[0, n, o, p]) / (dy ** 2 * 2) +
                    (T[0, n, o + 1, p] + T[0, n, o - 1, p] - 2 * T[0, n, o, p]) / (dz ** 2 * 2) + (T[1, n, o, p] -
                     T[0, n, o, p]) / dx ** 2)

                    T[-1, n, o, p + 1] = T[-1, n, o, p] + (2 * qp(n, o, p, T, Nzv, Tvz, dz, alpha, neighField) * dt) / (
                    rho * c(T[-1, n, o, p]) * dx) + (2 * lambd * dt) / (c(T[-1, n, o, p]) * rho) * \
                    ((T[-1, n + 1, o, p] + T[-1, n - 1, o, p] - 2 * T[-1, n, o, p]) / (dy ** 2 * 2) +
                    (T[-1, n, o + 1, p] + T[-1, n, o - 1, p] - 2 * T[-1, n, o, p]) / (dz ** 2 * 2) +
                    (T[-2, n, o, p] - T[-1, n, o, p]) / dx ** 2)

                    T[0, 0, o, p + 1] = T[0, 0, o, p] + (2 * dt) / (
                        c(T[0, 0, o, p]) * rho
                    ) * (ql(n, o, p, T, Nzv, Tvz, dz, alpha, neighField) / dx +
                         qh / dy) + (2 * lambd * dt) / (
                             c(T[0, 0, o, p]) * rho) * (
                                 (T[0, 0, o + 1, p] + T[0, 0, o - 1, p] -
                                  2 * T[0, 0, o, p]) / (dz**2 * 2) +
                                 (T[1, 0, o, p] - T[0, 0, o, p]) / dx**2 +
                                 (T[0, 1, o, p] - T[0, 0, o, p]) / dy**2)

                    T[0, -1, o, p + 1] = T[0, -1, o, p] + (2 * dt) / (
                        c(T[0, -1, o, p]) * rho
                    ) * (ql(n, o, p, T, Nzv, Tvz, dz, alpha, neighField) / dx +
                         qd / dy) + (2 * lambd * dt) / (
                             c(T[0, -1, o, p]) * rho) * (
                                 (T[0, -1, o + 1, p] + T[0, -1, o - 1, p] -
                                  2 * T[0, -1, o, p]) / (dz**2 * 2) +
                                 (T[1, -1, o, p] - T[0, -1, o, p]) / dx**2 +
                                 (T[0, -2, o, p] - T[0, -1, o, p]) / dy**2)

                    T[-1, 0, o, p + 1] = T[-1, 0, o, p] + (2 * dt) / (c(T[-1, 0, o, p]) * rho) * (
                    qp(0, o, p, T, Nzv, Tvz, dz, alpha, neighField) / dx + qh / dy) + (2 * lambd * dt) / \
                    (c(T[-1, 0, o, p]) * rho) * ((T[-1, 0, o + 1, p] + T[-1, 0, o - 1, p] -
                    2 * T[-1, 0, o, p]) / (dz ** 2 * 2) + (T[-2, 0, o, p] - T[-1, 0, o, p]) / dx ** 2 +
                    (T[-1, 1, o, p] - T[-1, 0, o, p]) / dy ** 2)

                    T[-1, -1, o, p + 1] = T[-1, -1, o, p] + (2 * dt) / (
                        c(T[-1, -1, o, p]) * rho
                    ) * (qp(-1, o, p, T, Nzv, Tvz, dz, alpha, neighField) / dx
                         + qd / dy) + (2 * lambd * dt) / (
                             c(T[-1, -1, o, p]) * rho) * (
                                 (T[-1, -1, o + 1, p] + T[-1, -1, o - 1, p] -
                                  2 * T[-1, -1, o, p]) / (dz**2 * 2) +
                                 (T[-2, -1, o, p] - T[-1, -1, o, p]) / dx**2 +
                                 (T[-1, -2, o, p] - T[-1, -1, o, p]) / dy**2)

                    T[m, n, o, p + 1] = T[m, n, o, p] + (lambd * dt) / (rho * dx ** 2 * c(T[m, n, o, p])) * \
                    (T[m + 1, n, o, p] - 2 * T[m, n, o, p] + T[m - 1, n, o, p]) + (lambd * dt) / \
                    (rho * dy ** 2 * c(T[m, n, o, p])) * (T[m, n + 1, o, p] - 2 * T[m, n, o, p] + T[m, n - 1, o, p]) \
                    + (lambd * dt) / (rho * dz ** 2 * c(T[m, n, o, p])) * (T[m, n, o + 1, p] -
                    2 *T[m, n, o, p] + T[m, n, o - 1, p])

        for n in range(1, Ny - 1):

            Tvz[n, 0, p + 1, 0] = Tvz[n, 0, p, 0] + dt / (
                e * dy * neighField[0, 0] * cv *
                rhov) * (qprl(n, 0, p, T, Tvz, dy, alpha, neighField) + qloss)

            Tvz[n, Nzv - 1, p + 1, 0] = Tvz[n, Nzv - 1, p, 0] + dt / (
                e * dy * neighField[-1, -1] * cv * rhov) * (
                    qprl(n, Nzv - 1, p, T, Tvz, dy, alpha, neighField) + qloss)

            Tvz[n, 0, p + 1, 1] = Tvz[n, 0, p, 1] + dt / (
                e * dy * neighField[0, 0] * cv *
                rhov) * (qprp(n, 0, p, T, Tvz, dy, alpha, neighField) + qloss)

            Tvz[n, Nzv - 1, p + 1, 1] = Tvz[n, Nzv - 1, p, 1] + dt / (
                e * dy * neighField[-1, -1] * cv * rhov) * (
                    qprp(n, Nzv - 1, p, T, Tvz, dy, alpha, neighField) + qloss)

            for q in range(1, Nzv - 1):
                Tvz[n, q, p + 1,
                    0] = Tvz[n, q, p, 0] + dt / (e * dy * dzv * cv * rhov) * (
                        qprl(n, q, p, T, Tvz, dy, alpha, neighField) + qloss)

                Tvz[0, q, p + 1, 0] = Tvz[
                    0, q, p, 0] + (2 * dt) / (e * dy * dzv * cv * rhov) * (
                        qprl(0, q, p, T, Tvz, dy, alpha, neighField) + qloss)

                Tvz[-1, q, p + 1, 0] = Tvz[
                    -1, q, p, 0] + (2 * dt) / (e * dy * dzv * cv * rhov) * (
                        qprl(-1, q, p, T, Tvz, dy, alpha, neighField) + qloss)

                Tvz[n, q, p + 1,
                    1] = Tvz[n, q, p, 1] + dt / (e * dy * dzv * cv * rhov) * (
                        qprp(n, q, p, T, Tvz, dy, alpha, neighField) + qloss)

                Tvz[0, q, p + 1, 1] = Tvz[
                    0, q, p, 1] + (2 * dt) / (e * dy * dzv * cv * rhov) * (
                        qprp(0, q, p, T, Tvz, dy, alpha, neighField) + qloss)

                Tvz[-1, q, p + 1, 1] = Tvz[
                    -1, q, p, 1] + (2 * dt) / (e * dy * dzv * cv * rhov) * (
                        qprp(-1, q, p, T, Tvz, dy, alpha, neighField) + qloss)
                # krajne vzduchu, je duvod propadu teploty na krajich, tzn. jen krajni body jsou v surfu niz - kvuli 2*

        bN, nout = moveFun1(bIt, dzv, dzp, Nzv, d)
        bIt = bN
        Tvz[:, :, p + 1] = np.roll(Tvz[:, :, p + 1], nout, axis=1)
        Tvz[:, :, p + 2] = np.roll(Tvz[:, :, p + 1], nout, axis=1)

        ctv = ctv + (
            (Tvz[3, Nzv - 1, p, 0] + Tvz[3, Nzv - 1, p, 1]) / 2 - 65)**2
        for i in range(0, Ny):
            for j in range(0, Nz):
                heatSum = heatSum + (
                    alpha / dz * np.dot(neighField[j, :],
                                        (Tvz[i, 0:Nzv, p, 0] - T[0, i, j, p]))
                    + alpha / dz *
                    np.dot(neighField[j, :],
                           (Tvz[i, 0:Nzv, p, 1] - T[-1, i, j, p]))) * yout(
                               i, dy, Ny) * dt

    heatP = heatPoint(tmax, dt, Ny, Nz, T, Nzv, Tvz, dz, alpha, neighField)
    print('done')
    W = 0.00001
    heatSum = heatSum + 1000 * 0.91 * 0.95 * h * d * tmax

    return -heatSum * W + x[0] * d * h * rho * (1 - W)
Exemplo n.º 3
0
def heat_2d():
    dyp = dt * v
    dy = h / (Ny - 1)
    if (dyp >= dy):
        print('Neni splnena podminka na rychlost, muze dojit k preskoceni jednoho KO')

    alpha = 100#fun.calcDN(h, e, cv, mi, k, v, kinv)

    dx = l / (Nx - 1)
    dy = h / (Ny - 1)

    Tvz = np.zeros([15000, int(tmax / dt) + 2, 2])
    T = np.ones([Nx, Ny, int(tmax / dt) + 1])
    T[:, :, 0].fill(T0p)
    Tvz[:, :, :].fill(T0v)
    qp = 0
    bIt = copy.copy(b)
    neighField = fun.neighFun(a, b, Ny, Nzv)

    for p in np.arange(0, int(tmax / dt), 1):

        #??????????
        Tvz[0, p + 1, 0] = Tvz[0, p, 0] + (2 * dt) / (e * dd * neighField[0, 0] * cv * rhov) * \
        (qprl(0, p, T, Tvz, alpha, neighField) + qloss)

        for i in range(1, Nzv - 1):
            Tvz[i, p + 1, 0] = Tvz[i, p, 0] + dt / (ro * cv * dy * e * dd) * (dd * qprl(i, p, T, Tvz, alpha, neighField) + dd * dy * qloss)

        Tvz[Nzv, p + 1, 0] = Tvz[-1, p, 0] + (2 * dt) / (e * dd * neighField[0, 0] * cv * rhov) * \
        (qprl(-1, p, T, Tvz, alpha, neighField) + qloss)

        #krajni body

        #levy horni
        T[0, 0, p + 1] = T[0, 0, p] + dd * (2 * dt * ql(0, p, T, Nzv, Tvz, alpha, neighField)) / (ro * dy * dx * c(T[0, 0, p])) + (2 * dt * qh) / (ro * dy * c(T[0, 0, p])) + \
                         (2 * lambd * dt) / (ro * dy ** 2 * c(T[0, 0, p])) * (T[0, 1, p] - T[0, 0, p]) + (2 * lambd * dt) / (ro * dx ** 2 * c(T[0, 0, p])) * (T[1, 0, p] - T[0, 0, p])

        #levy dolni
        T[0, -1, p + 1] = T[0, -1, p] + dd * (2 * dt * ql(0, p, T, Nzv, Tvz, alpha, neighField)) / (ro * dy * dx * c(T[0, -1, p])) + (2 * dt * qd) / (ro * dy * c(T[0, -1, p])) + \
                         (2 * lambd * dt) / (ro * dy ** 2 * c(T[0, -1, p])) * (T[0, -1 - 1, p] - T[0, -1, p]) + (2 * lambd * dt) / (ro * dx ** 2 * c(T[0, -1, p])) * (T[1, -1, p] - T[0, -1, p])

        #pravy horni
        T[-1, 0, p + 1] = T[-1, 0, p] + (2 * dt * qh) / (ro * dy * c(T[-1, 0, p])) + (2 * dt * qp) / (ro * dx * c(T[-1, 0, p])) + \
                         (2 * lambd * dt) / (ro * dy ** 2 * c(T[-1, 0, p])) * (T[-1, 1, p] - T[-1, 0, p]) + (2 * lambd * dt) / (ro * dx ** 2 * c(T[-1, 0, p])) * (T[-1-1, 0, p] - T[-1, 0, p])

        #pravy dolni
        T[-1, -1, p + 1] = T[-1, -1, p] + (2 * dt * qd) / (ro * dy * c(T[-1, -1, p])) + (2 * dt * qp) / (ro * dx * c(T[-1, -1, p])) + \
                         (2 * lambd * dt) / (ro * dy ** 2 * c(T[-1, -1, p])) * (T[-1, -1-1, p] - T[-1, -1, p]) + (2 * lambd * dt) / (ro * dx ** 2 * c(T[-1, -1, p])) * (T[-1-1, -1, p] - T[-1, -1, p])

        for m in range(1, Nx - 1):

            #cyklus pro dolni hranu
            T[m, -1, p + 1] = T[m, -1, p] + (2 * dt * qd) / (ro * dy * c(T[m, -1, p])) + (lambd * dt) / (ro * dx ** 2 * c(T[m, -1, p])) * (T[m + 1, -1, p] + T[m - 1, -1, p] - 2*T[m, -1, p]) +\
                             (2 * lambd * dt) / (ro * dy ** 2 * c(T[m, -1, p])) * (T[m, 1, p] - T[m, 0, p])

            #cyklus pro horni hranu
            T[m, 0, p + 1] = T[m, 0, p] + (2 * dt * qh) / (ro * dy * c(T[m, 0, p])) + (lambd * dt) / (ro * dx ** 2 * c(T[m, 0, p])) * (T[m + 1, 0, p] + T[m - 1, 0, p] - 2*T[m, 0, p]) +\
                             (2 * lambd * dt) / (ro * dy ** 2 * c(T[m, 0, p])) * (T[m, -1 - 1, p] - T[m, -1, p])

            for n in range(1, Ny - 1):


                #cyklus pro levou hranu
                T[0, n, p + 1] = T[0, n, p] + dd * (2 * dt * ql(0, p, T, Nzv, Tvz, alpha, neighField)) / (ro * dx * dy * c(T[0, n, p])) + (lambd * dt) / (ro * dy ** 2 * c(T[0, n, p])) * (T[0, n + 1, p] + T[0, n - 1, p] - 2 * T[0, n, p]) + \
                                 (2 * lambd * dt) / (ro * dx ** 2 * c(T[0, n, p])) * (T[1, n, p] - T[0, n, p])
                #cyklus pro pravou hranu
                T[-1, n, p + 1] = T[-1, n, p] + (2 * dt * qp) / (ro * dy * c(T[-1, n, p])) + (lambd * dt) / (ro * dy ** 2 * c(T[-1, n, p])) * (T[-1, n + 1, p] + T[-1, n - 1, p] - 2 * T[-1, n, p]) + \
                                 (2 * lambd * dt) / (ro * dx ** 2 * c(T[-1, n, p])) * (T[-1 -1, n, p] - T[-1, n, p])
                #stred
                T[m, n, p + 1] = T[m, n, p] + (lambd * dt) / (ro * dy ** 2 * c(T[m, n, p])) * (T[m, n + 1, p] + T[m, n - 1, p] - 2*T[m, n, p]) +\
                                 (lambd * dt) / (ro * dx ** 2 * c(T[m, n, p])) * (T[m + 1, n, p] + T[m - 1, n, p] - 2*T[m, n, p])
        bN, nout = fun.moveFun1(bIt, dzv, dyp, Nzv, h)
        bIt = bN
        Tvz[:, p + 1] = np.roll(Tvz[:, p + 1], nout, axis=1)
        Tvz[:, p + 2] = np.roll(Tvz[:, p + 1], nout, axis=1)
    return T, Tvz