Пример #1
0
    def err_tubes_for(Te):

        qdpp = ctc.qc_m_ch(U, Di, Te, Ta) + ctc.qr(eps, Te, Ta)

        qdp = qdpp * (np.pi * (Di))

        Tdi = Ti - qdp * rt.rt_conv_cili(di, h_fld)

        Tde = Tdi - qdp * rt.rt_cond_cili(di, de, lmd_tube)

        Te_calc = Tde

        return (Te - Te_calc)
Пример #2
0
 def err_tubes_for(Te):
     
     qdpp = ctc.qc_m_ch(U, De, Te, Ta) + ctc.qr(eps, Te, Ta)
     
     qdp = qdpp*(np.pi*(De))
     
     Tdi = Ti - qdp*rt.rt_conv_cili(di, h_fld)
     
     Tde = Tdi - qdp*rt.rt_cond_cili(di, de, lmd_tube)
     
     TDi = Tde
     
     TDe = Te + R_rev*qdp
     
     lmd_iso = flmd((TDe + TDi)/2)
     
     Te_calc = Ti - qdp*(rt.rt_conv_cili(di, h_fld) + rt.rt_cond_cili(di, de, lmd_tube) + rt.rt_cond_cili(Di, De, lmd_iso) + R_rev)
     
     return (Te - Te_calc)
Пример #3
0
def iso_tubes(di, de, Ti, Ta, h_fld, lmd_tube, U, H, z, eps, m, c, Dt_max,
              R_rev, RH, N, CEE, eta, COP, n, i, delta, tm):

    Di = de

    #Lista de espessuras consideradas.
    LE2 = [(6.35 * x) / 1000 for x in range(1, 17)]
    LE3 = [(12.7 * x) / 1000 for x in range(1, 17)]

    #Lista de espessuras consideradas arredondadas.
    LE_Disp2 = [(int(x * 1000)) for x in LE2]
    LE_Disp3 = [(int(x * 1000)) for x in LE3]

    #Lista de espessuras consideradas em polegadas.
    LE_Disp_Imp2 = [0.25 * x for x in range(1, 17)]
    LE_Disp_Imp3 = [0.50 * x for x in range(1, 17)]

    #Lista de funções de condutividade térmica.
    #Isolantes flexíveis.
    LLMD2 = [ASTMC1728a.lamed, ASTMC534.lamed]
    #Isolantes rígidos.
    LLMD3 = [ASTMC552.lamed, ASTMC591.lamed]

    #Lista de nomes de isolantes.
    #Isolantes flexívies.
    Lnm2 = ['Aerogel', 'Espuma Elastomérica']
    #Isolantes rígidos.
    Lnm3 = ['Vidro Celular', 'Poliisocianurato']

    #Número de espessuras consideradas.
    ne2 = len(LE2)
    ne3 = len(LE3)

    #Número de isolantes considerados.
    ni2 = len(LLMD2)
    ni3 = len(LLMD3)

    #Lista de espessuras para o DataFrame.
    LE_Disp_DF = [0] + LE_Disp2 * ni2 + LE_Disp3 * ni3
    LE_Disp_Imp_DF = [0] + LE_Disp_Imp2 * ni2 + LE_Disp_Imp3 * ni3

    #Lista de nomes para o DataFrame.
    LNM = ['Sem \n Isolante']

    for d in Lnm2:
        LNM += [d] * ne2
    for d in Lnm3:
        LNM += [d] * ne3

    #Lista de soluções para a temperatura na face externa.
    LTe = []

    #Lista de soluções para a condutividade térmica.
    Lslmd = [np.NaN]

    #Lista de soluções para o fluxo de calor na face externa.
    Lq = []

    #Lista de diâmetros externos.
    LDe = [de]

    #Lista de resistências térmicas.
    LR = []

    #Lista de variações de temperatura do fluido.
    LVT = []

    #Lista de temperaturas na saída.
    LTS = []

    if ((U != 0) and (H == 0)):

        errf0 = generate_err_tubes_for_h_si

        err0 = errf0(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps)

        root0 = optimize.brentq(err0, Ti, Ta)

        LTe = [root0]

        Lq = [(ctc.qc_m_ch(U, Di, root0, Ta) + ctc.qr(eps, root0, Ta)) *
              (np.pi * (Di))]

        LR = [
            (rt.rt_conv_cili(di, h_fld) + rt.rt_cond_cili(di, de, lmd_tube) +
             ((((rt.rt_conv_cili(de, ctc.hc_m_ch(U, de, root0, Ta)))**(-1)) +
               ((rt.rt_crad_cili(de, ctc.hr(eps, root0, Ta)))**(-1)))**(-1))) /
            z
        ]

        errf = generate_err_tubes_for_h

        for flmd in LLMD2:
            for E in LE2:
                De = Di + 2 * E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd,
                           R_rev)
                Te = optimize.brentq(err, Ti, Ta)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_ch(U, De, Te, Ta) +
                       ctc.qr(eps, Te, Ta)) * (np.pi * (De))
                TDi = Ti - qdp * (rt.rt_conv_cili(di, h_fld) +
                                  rt.rt_cond_cili(di, de, lmd_tube))
                TDe = Te + R_rev * qdp
                Tiso = (TDi + TDe) / 2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [
                    (rt.rt_conv_cili(di, h_fld) +
                     rt.rt_cond_cili(di, de, lmd_tube) +
                     rt.rt_cond_cili(Di, De, flmd(Tiso)) + R_rev +
                     ((((rt.rt_conv_cili(De, ctc.hc_m_ch(U, De, Te, Ta)))**
                        (-1)) + ((rt.rt_crad_cili(De, ctc.hr(eps, Te, Ta)))**
                                 (-1)))**(-1))) / z
                ]
        for flmd in LLMD3:
            for E in LE3:
                De = Di + 2 * E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd,
                           R_rev)
                Te = optimize.brentq(err, Ti, Ta)
                qdp = (ctc.qc_m_ch(U, De, Te, Ta) +
                       ctc.qr(eps, Te, Ta)) * (np.pi * (De))
                TDi = Ti - qdp * (rt.rt_conv_cili(di, h_fld) +
                                  rt.rt_cond_cili(di, de, lmd_tube))
                TDe = Te + R_rev * qdp
                Tiso = (TDi + TDe) / 2
                LTe = LTe + [Te]
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [
                    (rt.rt_conv_cili(di, h_fld) +
                     rt.rt_cond_cili(di, de, lmd_tube) +
                     rt.rt_cond_cili(Di, De, flmd(Tiso)) + R_rev +
                     ((((rt.rt_conv_cili(De, ctc.hc_m_ch(U, De, Te, Ta)))**
                        (-1)) + ((rt.rt_crad_cili(De, ctc.hr(eps, Te, Ta)))**
                                 (-1)))**(-1))) / z
                ]

    if ((U != 0) and (H != 0)):

        errf0 = generate_err_tubes_for_v_si

        err0 = errf0(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps)

        root0 = optimize.brentq(err0, Ti, Ta)

        LTe = [root0]

        Lq = [(ctc.qc_m_cv(U, Di, H, root0, Ta) + ctc.qr(eps, root0, Ta)) *
              (np.pi * (Di))]

        LR = [
            (rt.rt_conv_cili(di, h_fld) + rt.rt_cond_cili(di, de, lmd_tube) +
             ((((rt.rt_conv_cili(Di, ctc.hc_m_cv(U, Di, H, root0, Ta)))**
                (-1)) +
               ((rt.rt_crad_cili(Di, ctc.hr(eps, root0, Ta)))**(-1)))**(-1))) /
            z
        ]

        errf = generate_err_tubes_for_v

        for flmd in LLMD2:
            for E in LE2:
                De = Di + 2 * E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd,
                           R_rev)
                Te = optimize.brentq(err, Ti, Ta)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_cv(U, De, H, Te, Ta) +
                       ctc.qr(eps, Te, Ta)) * (np.pi * (De))
                TDi = Ti - qdp * (rt.rt_conv_cili(di, h_fld) +
                                  rt.rt_cond_cili(di, de, lmd_tube))
                TDe = Te + R_rev * qdp
                Tiso = (TDi + TDe) / 2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [
                    (rt.rt_conv_cili(di, h_fld) +
                     rt.rt_cond_cili(di, de, lmd_tube) +
                     rt.rt_cond_cili(Di, De, flmd(Tiso)) + R_rev +
                     ((((rt.rt_conv_cili(De, ctc.hc_m_cv(U, De, H, Te, Ta)))**
                        (-1)) + ((rt.rt_crad_cili(De, ctc.hr(eps, Te, Ta)))**
                                 (-1)))**(-1))) / z
                ]
        for flmd in LLMD3:
            for E in LE3:
                De = Di + 2 * E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd,
                           R_rev)
                Te = optimize.brentq(err, Ti, Ta)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_cv(U, De, H, Te, Ta) +
                       ctc.qr(eps, Te, Ta)) * (np.pi * (De))
                TDi = Ti - qdp * (rt.rt_conv_cili(di, h_fld) +
                                  rt.rt_cond_cili(di, de, lmd_tube))
                TDe = Te + R_rev * qdp
                Tiso = (TDi + TDe) / 2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [
                    (rt.rt_conv_cili(di, h_fld) +
                     rt.rt_cond_cili(di, de, lmd_tube) +
                     rt.rt_cond_cili(Di, De, flmd(Tiso)) + R_rev +
                     ((((rt.rt_conv_cili(De, ctc.hc_m_cv(U, De, H, Te, Ta)))**
                        (-1)) + ((rt.rt_crad_cili(De, ctc.hr(eps, Te, Ta)))**
                                 (-1)))**(-1))) / z
                ]

    if ((U == 0) and (H == 0)):

        errf0 = generate_err_tubes_nat_h_si

        err0 = errf0(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps)

        root0 = optimize.brentq(err0, Ti, Ta)

        LTe = [root0]

        Lq = [(ctc.qc_n_ch(U, Di, root0, Ta) + ctc.qr(eps, root0, Ta)) *
              (np.pi * (Di))]

        LR = [
            (rt.rt_conv_cili(di, h_fld) + rt.rt_cond_cili(di, de, lmd_tube) +
             ((((rt.rt_conv_cili(de, ctc.hc_n_ch(U, de, root0, Ta)))**(-1)) +
               ((rt.rt_crad_cili(de, ctc.hr(eps, root0, Ta)))**(-1)))**(-1))) /
            z
        ]

        errf = generate_err_tubes_nat_h

        for flmd in LLMD2:
            for E in LE2:
                De = Di + 2 * E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd,
                           R_rev)
                Te = optimize.brentq(err, Ti, Ta)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_ch(U, De, Te, Ta) +
                       ctc.qr(eps, Te, Ta)) * (np.pi * (De))
                TDi = Ti - qdp * (rt.rt_conv_cili(di, h_fld) +
                                  rt.rt_cond_cili(di, de, lmd_tube))
                TDe = Te + R_rev * qdp
                Tiso = (TDi + TDe) / 2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [
                    (rt.rt_conv_cili(di, h_fld) +
                     rt.rt_cond_cili(di, de, lmd_tube) +
                     rt.rt_cond_cili(Di, De, flmd(Tiso)) + R_rev +
                     ((((rt.rt_conv_cili(De, ctc.hc_n_ch(U, De, Te, Ta)))**
                        (-1)) + ((rt.rt_crad_cili(De, ctc.hr(eps, Te, Ta)))**
                                 (-1)))**(-1))) / z
                ]
        for flmd in LLMD3:
            for E in LE3:
                De = Di + 2 * E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd,
                           R_rev)
                Te = optimize.brentq(err, Ti, Ta)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_ch(U, De, Te, Ta) +
                       ctc.qr(eps, Te, Ta)) * (np.pi * (De))
                TDi = Ti - qdp * (rt.rt_conv_cili(di, h_fld) +
                                  rt.rt_cond_cili(di, de, lmd_tube))
                TDe = Te + R_rev * qdp
                Tiso = (TDi + TDe) / 2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [
                    (rt.rt_conv_cili(di, h_fld) +
                     rt.rt_cond_cili(di, de, lmd_tube) +
                     rt.rt_cond_cili(Di, De, flmd(Tiso)) + R_rev +
                     ((((rt.rt_conv_cili(De, ctc.hc_n_ch(U, De, Te, Ta)))**
                        (-1)) + ((rt.rt_crad_cili(De, ctc.hr(eps, Te, Ta)))**
                                 (-1)))**(-1))) / z
                ]

    if ((U == 0) and (H != 0)):

        errf0 = generate_err_tubes_nat_v_si

        err0 = errf0(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps)

        root0 = optimize.brentq(err0, Ti, Ta)

        LTe = [root0]

        Lq = [(ctc.qc_n_cv(U, H, root0, Ta) + ctc.qr(eps, root0, Ta)) *
              (np.pi * (Di))]

        LR = [
            (rt.rt_conv_cili(di, h_fld) + rt.rt_cond_cili(di, de, lmd_tube) +
             ((((rt.rt_conv_cili(de, ctc.hc_n_cv(U, H, root0, Ta)))**(-1)) +
               ((rt.rt_crad_cili(de, ctc.hr(eps, root0, Ta)))**(-1)))**(-1))) /
            z
        ]

        errf = generate_err_tubes_nat_v

        for flmd in LLMD2:
            for E in LE2:
                De = Di + 2 * E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd,
                           R_rev)
                Te = optimize.brentq(err, Ti, Ta)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_cv(U, H, Te, Ta) +
                       ctc.qr(eps, Te, Ta)) * (np.pi * (De))
                TDi = Ti - qdp * (rt.rt_conv_cili(di, h_fld) +
                                  rt.rt_cond_cili(di, de, lmd_tube))
                TDe = Te + R_rev * qdp
                Tiso = (TDi + TDe) / 2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [
                    (rt.rt_conv_cili(di, h_fld) +
                     rt.rt_cond_cili(di, de, lmd_tube) +
                     rt.rt_cond_cili(Di, De, flmd(Tiso)) + R_rev +
                     ((((rt.rt_conv_cili(De, ctc.hc_n_cv(U, H, Te, Ta)))**
                        (-1)) + ((rt.rt_crad_cili(De, ctc.hr(eps, Te, Ta)))**
                                 (-1)))**(-1))) / z
                ]
        for flmd in LLMD3:
            for E in LE3:
                De = Di + 2 * E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd,
                           R_rev)
                Te = optimize.brentq(err, Ti, Ta)
                qdp = (ctc.qc_n_cv(U, H, Te, Ta) +
                       ctc.qr(eps, Te, Ta)) * (np.pi * (De))
                TDi = Ti - qdp * (rt.rt_conv_cili(di, h_fld) +
                                  rt.rt_cond_cili(di, de, lmd_tube))
                TDe = Te + R_rev * qdp
                Tiso = (TDi + TDe) / 2
                LTe = LTe + [Te]
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [
                    (rt.rt_conv_cili(di, h_fld) +
                     rt.rt_cond_cili(di, de, lmd_tube) +
                     rt.rt_cond_cili(Di, De, flmd(Tiso)) + R_rev +
                     ((((rt.rt_conv_cili(De, ctc.hc_n_cv(U, H, Te, Ta)))**
                        (-1)) + ((rt.rt_crad_cili(De, ctc.hr(eps, Te, Ta)))**
                                 (-1)))**(-1))) / z
                ]

    #Diâmetros externos em milímetros.
    LDe_Disp = [1000 * D for D in LDe]

    #Lista de soluções para a temperatura na face externa em °C.
    Lte = [(Te - 273.15) for Te in LTe]

    #Lista de q através de LMTD e R.
    LVT = list(
        map(lambda x: Ti - (Ta - (Ta - Ti) * np.exp(-1 / (m * c * x))), LR))
    LTSK = list(map(lambda x: Ti - x, LVT))
    LLMTD = [((x - Ta) - (Ti - Ta)) / (np.log((x - Ta) / (Ti - Ta)))
             for x in LTSK]
    ZTR = zip(LLMTD, LR)
    #Lq está em W/m, LR deve ser multiplicado por z.
    Lq = [x[0] / (x[1] * z) for x in ZTR]

    #Análise econômica.
    #Custo de energia perdida atualizada.
    LCEVA = [CE_VA(abs(q), N, CEE, eta, COP, n, i, delta) for q in Lq]
    #Custo de investimento.
    #Isolantes flexíveis.
    LFCI2 = [cst.cst_null, cst.cst_C534]
    #Isolantes rígidos.
    LFCI3 = [cst.cst_C552, cst.cst_C591]
    LCI = [np.nan]
    for ci in LFCI2:
        for E in LE2:
            LCI = LCI + [ci(Di, E)]
    for ci in LFCI3:
        for E in LE3:
            LCI = LCI + [ci(Di, E)]
    #Custo de manutenção.
    LCMVA = [CM_VA(CI, tm, n, i) for CI in LCI]
    #Custo total.
    LCT = [x + y + z for (x, y, z) in zip(LCEVA, LCI, LCMVA)]

    #Exlusão de casos reprovados.

    if Dt_max > 0:
        LVT = list(
            map(lambda x: Ti - (Ta - (Ta - Ti) * np.exp(-1 / (m * c * x))),
                LR))
        for i in range(len(LVT) - 1, 0, -1):
            if abs(LVT[i]) > Dt_max:
                del LVT[i]
                del Lq[i]
                del LNM[i]
                del LE_Disp_DF[i]
                del LE_Disp_Imp_DF[i]
                del LDe_Disp[i]
                del Lte[i]
                del Lslmd[i]
                del LR[i]
                del LCEVA[i]
                del LCI[i]
                del LCMVA[i]
                del LCT[i]

    LFL = [wtr.fl(x, Ta, RH) for x in LTe]
    for i in range(len(LFL) - 1, 0, -1):
        if (LFL[i]) == "Sim":
            del LVT[i]
            del Lq[i]
            del LNM[i]
            del LE_Disp_DF[i]
            del LE_Disp_Imp_DF[i]
            del LDe_Disp[i]
            del Lte[i]
            del Lslmd[i]
            del LR[i]
            del LCEVA[i]
            del LCI[i]
            del LCMVA[i]
            del LCT[i]

    #Organização dos dados em um DataFrame.
    Disp = pd.DataFrame({
        'Material': LNM,
        'Espessura \n [mm]': LE_Disp_DF,
        'Espessura \n [pol]': LE_Disp_Imp_DF,
        'Diâmetro \n Externo [mm]': LDe_Disp,
        'Temperatura na \n Face Externa [°C]': Lte,
        'Condutividade Térmica \n do Isolante [W/(m.k)]': Lslmd
    })

    LVT = list(
        map(lambda x: Ti - (Ta - (Ta - Ti) * np.exp(-1 / (m * c * x))), LR))
    LVT_Disp = [abs(T) for T in LVT]
    Disp['Variação de Temperatura \n do Fluido [°C]'] = LVT_Disp
    LTS = list(map(lambda x: Ti - 273.15 - x, LVT))
    Disp['Temperatura do Fluido \n na Saída [°C]'] = LTS

    Disp['Fluxo de Calor \n [W/m]'] = Lq

    Disp['Custo de Energia \n [$/m]'] = LCEVA
    Disp['Custo de Investimento \n [$/m]'] = LCI
    Disp['Custo de Manutenção \n [$/m]'] = LCMVA
    Disp['Custo Total \n [$/m]'] = LCT

    #Disp = Disp.sort_values(by=['Custo Total \n [$/m]'])

    Disp = Disp.iloc[[0]].append(
        Disp.iloc[1:].sort_values(by=['Custo Total \n [$/m]']))

    if (len(Lq) >= 24):
        LA = [
            'Ti', 'Ponto de Orvalho', 'di', 'de', 'Ta', 'h_fld', 'lmd_tube',
            'U', 'H', 'z', 'eps', 'm', 'c', 'Dt_max', 'R_rev', 'RH', 'N',
            'CEE', 'eta', 'COP', 'n', 'i', 'delta', 'tm'
        ]
        LB = [
            Ti,
            wtr.TDP(Ta, RH), di, de, Ta, h_fld, lmd_tube, U, H, z, eps, m, c,
            Dt_max, R_rev, RH, N, CEE, eta, COP, n, i, delta, tm
        ]
        while len(LA) < len(Lq):
            LA.append(np.nan)
            LB.append(np.nan)
        Disp.insert(loc=0, column='Input', value=LB)
        Disp.insert(loc=0, column='Varáivel', value=LA)

    return Disp
Пример #4
0
def iso_tubes(di, de, Ti, Ta, h_fld, lmd_tube, U, H, z, eps, fase_change, m, c_or_h, ts_max, Dt_max, R_rev, Q_max, N, F, eta, n, i, delta, tm):
    
    Di = de
    
    #Lista de espessuras consideradas.
    LE1 = [(6.35*x)/1000 for x in range(1, 9)]
    LE2 = [(6.35*x)/1000 for x in range(1, 17)]
    LE3 = [(12.7*x)/1000 for x in range(1, 31)]
    
    #Lista de espessuras consideradas arredondadas.
    LE_Disp1 =  [(int(x*1000)) for x in LE1]
    LE_Disp2 =  [(int(x*1000)) for x in LE2]
    LE_Disp3 =  [(int(x*1000)) for x in LE3]
    
    #Lista de espessuras consideradas em polegadas.
    LE_Disp_Imp1 = [0.25*x for x in range (1, 9)]
    LE_Disp_Imp2 = [0.25*x for x in range (1, 17)]
    LE_Disp_Imp3 = [0.50*x for x in range (1, 31)]
    
    #Lista de funções de condutividade térmica.
    #Fibra cerâmica.
    LLMD1 = [NBR9688.lamed64,
             NBR9688.lamed96,
             NBR9688.lamed128,
             NBR9688.lamed160,
             NBR9688.lamed192]
    #Isolantes flexíveis.
    LLMD2 = [ASTMC1728.lamed,
             NBR10412.lamed60,
             NBR10412.lamed100,
             NBR11357.lamed,
             NBR11363.lamed,
             NBR11722.lamed]
    #Isolantes rígidos.
    LLMD3 = [NBR10662.lamedII,
             ASTMC610.lamed,
             ASTMC552.lamed,
             ASTMC591.lamed]
    
    #Lista de nomes de isolantes.
    #Fibra cerâmica.
    Lnm1 = ['Manta de Fibra \n Cerâmica D64',
            'Manta de Fibra \n Cerâmcia D96',
            'Manta de Fibra \n Cerâmica D128',
            'Manta de Fibra \n Cerâmica D160',
            'Manta de Fibra \n Cerâmica D192']
    #Isolantes flexívies.
    Lnm2 = ['Aerogel',
            'Feltro de Lamelas de \n Lã de Vidro D60',
            'Feltro de Lamelas de \n Lã de Vidro D100',
            'Tubo de Lã de Vidro',
            'Tubo de Lã de Rocha',
            'Feltro de Lamelas de \n Lã de Rocha']
    #Isolantes rígidos.
    Lnm3 = ['Silicato de Cálcio \n Tipo II',
            'Perlita Expandida',
            'Vidro Celular',
            'Poliisocianurato']
    
    #Número de espessuras consideradas.
    ne1 = len(LE1)
    ne2 = len(LE2)
    ne3 = len(LE3)
    
    #Número de isolantes considerados.
    ni1 = len(LLMD1)
    ni2 = len(LLMD2)
    ni3 = len(LLMD3)    
    
    #Lista de espessuras para o DataFrame.
    LE_Disp_DF = [0] + LE_Disp1*ni1 + LE_Disp2*ni2 + LE_Disp3*ni3
    LE_Disp_Imp_DF = [0] + LE_Disp_Imp1*ni1 + LE_Disp_Imp2*ni2 + LE_Disp_Imp3*ni3
    
    #Lista de nomes para o DataFrame.
    LNM = ['Sem \n Isolante']
    
    for d in Lnm1: 
        LNM += [d]*ne1
    for d in Lnm2:
        LNM += [d]*ne2
    for d in Lnm3:
        LNM += [d]*ne3
    
    #Lista de soluções para a temperatura na face externa.
    LTe = []
    
    #Lista de soluções para a condutividade térmica.
    Lslmd = [np.NaN]
    
    #Lista de soluções para o fluxo de calor na face externa.
    Lq = []
    
    #Lista de diâmetros externos.
    LDe = [de]
    
    #Lista de taxas de formação de condensado.
    LFC = []
    
    #Lista de resistências térmicas.
    LR = []
    
    #Lista de variações de temperatura do fluido.
    LVT = []
    
    #Lista de temperaturas na saída.
    LTS = []
    
    #Lista de temperaturas na face interna do isolante.
    LTDI = []
    
    if ((U != 0) and (H == 0)):
        
        errf0 = generate_err_tubes_for_h_si
        
        err0 = errf0(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps)
        
        root0 = optimize.brentq(err0, Ta, Ti)
        
        LTe = [root0]
        
        Lq = [(ctc.qc_m_ch(U, Di, root0, Ta) + ctc.qr(eps, root0, Ta))*(np.pi*(Di))]
        
        LR = [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+((((rt.rt_conv_cili(de,ctc.hc_m_ch(U,de,root0,Ta)))**(-1))+((rt.rt_crad_cili(de,ctc.hr(eps,root0,Ta)))**(-1)))**(-1)))/z]
        
        errf = generate_err_tubes_for_h
        
        for flmd in LLMD1:
            for E in LE1:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_ch(U, De, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_m_ch(U,De,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        for flmd in LLMD2:
            for E in LE2:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_ch(U, De, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_m_ch(U,De,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        for flmd in LLMD3:
            for E in LE3:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_ch(U, De, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_m_ch(U,De,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        
    if ((U != 0) and (H != 0)):
        
        errf0 = generate_err_tubes_for_v_si
        
        err0 = errf0(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps)
        
        root0 = optimize.brentq(err0, Ta, Ti)
        
        LTe = [root0]
        
        Lq = [(ctc.qc_m_cv(U, Di, H, root0, Ta) + ctc.qr(eps, root0, Ta))*(np.pi*(Di))]
        
        LR = [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+((((rt.rt_conv_cili(Di,ctc.hc_m_cv(U,Di,H,root0,Ta)))**(-1))+((rt.rt_crad_cili(Di,ctc.hr(eps,root0,Ta)))**(-1)))**(-1)))/z]
        
        errf = generate_err_tubes_for_v
        
        for flmd in LLMD1:
            for E in LE1:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_cv(U, De, H, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_m_cv(U,De,H,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        for flmd in LLMD2:
            for E in LE2:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_cv(U, De, H, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_m_cv(U,De,H,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        for flmd in LLMD3:
            for E in LE3:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_m_cv(U, De, H, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_m_cv(U,De,H,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        
    if ((U == 0) and (H == 0)):
        
        errf0 = generate_err_tubes_nat_h_si
        
        err0 = errf0(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps)
        
        root0 = optimize.brentq(err0, Ta, Ti)
        
        LTe = [root0]
        
        Lq = [(ctc.qc_n_ch(U, Di, root0, Ta) + ctc.qr(eps, root0, Ta))*(np.pi*(Di))]
        
        LR = [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+((((rt.rt_conv_cili(de,ctc.hc_n_ch(U,de,root0,Ta)))**(-1))+((rt.rt_crad_cili(de,ctc.hr(eps,root0,Ta)))**(-1)))**(-1)))/z]
        
        errf = generate_err_tubes_nat_h
        
        for flmd in LLMD1:
            for E in LE1:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_ch(U, De, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_n_ch(U,De,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        for flmd in LLMD2:
            for E in LE2:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_ch(U, De, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_n_ch(U,De,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        for flmd in LLMD3:
            for E in LE3:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_ch(U, De, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_n_ch(U,De,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        
    if ((U == 0) and (H != 0)):
        
        errf0 = generate_err_tubes_nat_v_si
        
        err0 = errf0(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps)
        
        root0 = optimize.brentq(err0, Ta, Ti)
        
        LTe = [root0]
        
        Lq = [(ctc.qc_n_cv(U, H, root0, Ta) + ctc.qr(eps, root0, Ta))*(np.pi*(Di))]
        
        LR = [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+((((rt.rt_conv_cili(de,ctc.hc_n_cv(U,H,root0,Ta)))**(-1))+((rt.rt_crad_cili(de,ctc.hr(eps,root0,Ta)))**(-1)))**(-1)))/z]
        
        errf = generate_err_tubes_nat_v
        
        for flmd in LLMD1:
            for E in LE1:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_cv(U, H, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_n_cv(U,H,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        for flmd in LLMD2:
            for E in LE2:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_cv(U, H, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_n_cv(U,H,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
        for flmd in LLMD3:
            for E in LE3:
                De = Di + 2*E
                err = errf(di, de, Ti, Ta, h_fld, lmd_tube, U, H, eps, E, flmd, R_rev)
                Te = optimize.brentq(err, Ta, Ti)
                LTe = LTe + [Te]
                qdp = (ctc.qc_n_cv(U, H, Te, Ta) + ctc.qr(eps, Te, Ta))*(np.pi*(De))
                TDi = Ti - qdp*(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube))
                LTDI = LTDI + [TDi]
                TDe = Te + R_rev*qdp
                Tiso = (TDi + TDe)/2
                Lslmd = Lslmd + [flmd(Tiso)]
                Lq = Lq + [qdp]
                LDe = LDe + [De]
                LR = LR + [(rt.rt_conv_cili(di,h_fld)+rt.rt_cond_cili(di,de,lmd_tube)+rt.rt_cond_cili(Di,De,flmd(Tiso))+R_rev+((((rt.rt_conv_cili(De,ctc.hc_n_cv(U,H,Te,Ta)))**(-1))+((rt.rt_crad_cili(De,ctc.hr(eps,Te,Ta)))**(-1)))**(-1)))/z]
            
    #Diâmetros externos em milímetros.
    LDe_Disp = [1000*D for D in LDe]
    
    #Lista de soluções para a temperatura na face externa em °C.
    Lte = [(Te - 273.15) for Te in LTe]
    
    #Cálculo de q através de R e LMTD. Caso fase_change, não recalcula.
    if (not(fase_change)):
        LVT = list(map(lambda x: Ti - (Ta - (Ta - Ti)*np.exp(-1/(m*c_or_h*x))),LR))
        LTSK = list(map(lambda x: Ti - x, LVT))
        LLMTD = [((x - Ta) - (Ti - Ta))/(np.log((x - Ta)/(Ti - Ta))) for x in LTSK]
        ZTR = zip(LLMTD, LR)
        #Lq está em W/m, LR deve ser multiplicado por z.
        Lq = [x[0]/(x[1]*z) for x in ZTR]
    
    #Análise econômica.
    #Custo de energia perdida atualizada.
    LCEVA = [CE_VA(q, N, F, eta, n, i, delta) for q in Lq]
    #Custo de investimento.
    #Fibra cerâmica.
    LFCI1 = [cst.cst_null,
             cst.cst_null,
             cst.cst_null,
             cst.cst_null,
             cst.cst_null]
    #Isolantes flexíveis.
    LFCI2 = [cst.cst_null,
             cst.cst_null,
             cst.cst_null,
             cst.cst_null,
             cst.cst_null,
             cst.cst_null]
    #Isolantes rígidos.
    LFCI3 = [cst.cst_NBR10662,
             cst.cst_null,
             cst.cst_C552, 
             cst.cst_C591]
    LCI = [np.nan]
    for ci in LFCI1:
        for E in LE1:
            LCI = LCI + [ci(Di, E)]
    for ci in LFCI2:
        for E in LE2:
            LCI = LCI + [ci(Di, E)]
    for ci in LFCI3:
        for E in LE3:
            LCI = LCI + [ci(Di, E)]
    #Custo de manutenção.
    LCMVA = [CM_VA(CI, tm, n, i) for CI in LCI]
    #Custo total.
    LCT = [x + y + z for (x,y,z) in zip(LCEVA, LCI, LCMVA)]
    
    #Exclusão de casos reprovados.
    
    LTMA1 = [1650 + 273.15,
            1650 + 273.15,
            1650 + 273.15,
            1650 + 273.15,
            1650 + 273.15]
    LTMA2 = [650 + 273.15,
            650 + 273.15,
            650 + 273.15,
            650 + 273.15,
            550 + 273.15,
            550 + 273.15]
    LTMA3 = [815 + 273.15,
            650 + 273.15,
            425 + 273.15,
            150 + 273.15]
    LFlagTDI = []
    for T in LTMA1:
        for E in LE1:
            if LTDI[len(LFlagTDI)] > T:
                LFlagTDI.append(1)
            else:
                LFlagTDI.append(0)                   
    for T in LTMA2:
        for E in LE2:
            if LTDI[len(LFlagTDI)] > T:
                LFlagTDI.append(1)
            else:
                LFlagTDI.append(0) 
    for T in LTMA3:
        for E in LE3:
            if LTDI[len(LFlagTDI)] > T:
                LFlagTDI.append(1)
            else:
                LFlagTDI.append(0)
    LFlagTDI = [0] + LFlagTDI
    for i in range(len(LFlagTDI)-1, 0, -1):
        if LFlagTDI[i] == 1:
            del Lq[i]
            del LNM[i]
            del LE_Disp_DF[i]
            del LE_Disp_Imp_DF[i]
            del LDe_Disp[i]
            del Lte[i]
            del Lslmd[i]
            del LR[i]
            del LCEVA[i]
            del LCI[i]
            del LCMVA[i]
            del LCT[i]
    
    if Q_max > 0:
        for i in range(len(Lq) - 1, 0, -1):
            if Lq[i] > Q_max/z:
                del Lq[i]
                del LNM[i]
                del LE_Disp_DF[i]
                del LE_Disp_Imp_DF[i]
                del LDe_Disp[i]
                del Lte[i]
                del Lslmd[i]
                del LR[i]
                del LCEVA[i]
                del LCI[i]
                del LCMVA[i]
                del LCT[i]
    
    if ts_max > 0:
        for i in range(len(Lq) - 1, 0, -1):
            if Lte[i] > ts_max:
                del Lq[i]
                del LNM[i]
                del LE_Disp_DF[i]
                del LE_Disp_Imp_DF[i]
                del LDe_Disp[i]
                del Lte[i]
                del Lslmd[i]
                del LR[i]
                del LCEVA[i]
                del LCI[i]
                del LCMVA[i]
                del LCT[i]
    
    if Dt_max > 0 and not(fase_change):
        LVT = list(map(lambda x: Ti - (Ta - (Ta - Ti)*np.exp(-1/(m*c_or_h*x))),LR))
        for i in range(len(LVT) - 1, 0, -1):
            if LVT[i] > Dt_max:
                del LVT[i]
                del Lq[i]
                del LNM[i]
                del LE_Disp_DF[i]
                del LE_Disp_Imp_DF[i]
                del LDe_Disp[i]
                del Lte[i]
                del Lslmd[i]
                del LR[i]
                del LCEVA[i]
                del LCI[i]
                del LCMVA[i]
                del LCT[i]
    
    #Organização dos dados em um DataFrame.
    Disp = pd.DataFrame({'Material' : LNM,
                         'Espessura \n [mm]' : LE_Disp_DF,
                         'Espessura \n [pol]' : LE_Disp_Imp_DF,
                         'Diâmetro \n Externo [mm]' : LDe_Disp,
                         'Temperatura na \n Face Externa [°C]' : Lte,
                         'Condutividade Térmica \n do Isolante [W/(m.k)]': Lslmd})
    
    if (not(fase_change)):
        LVT = list(map(lambda x: Ti - (Ta - (Ta - Ti)*np.exp(-1/(m*c_or_h*x))),LR))
        Disp['Variação de Temperatura \n do Fluido [°C]'] = LVT
        LTS = list(map(lambda x: Ti - 273.15 - x, LVT))
        Disp['Temperatura do Fluido \n na Saída [°C]'] = LTS
    
    if (fase_change):
        LFC = [(x*z)/c_or_h if (x*z)/c_or_h < m else m for x in Lq]
        Disp['Formação de \n Condensado [kg/s]'] = LFC
    
    Disp['Fluxo de Calor \n [W/m]'] = Lq
        
    Disp['Custo de Energia \n [$/m]'] = LCEVA
    Disp['Custo de Investimento \n [$/m]'] = LCI
    Disp['Custo de Manutenção \n [$/m]'] = LCMVA
    Disp['Custo Total \n [$/m]'] = LCT
    
    #Disp = Disp.sort_values(by=['Custo Total \n [$/m]'])
    
    Disp = Disp.iloc[[0]].append(Disp.iloc[1:].sort_values(by=['Custo Total \n [$/m]']))
    
    if (len(Lq) >= 25):
        LA = ['Ti', 'di', 'de', 'Ta', 'h_fld', 'lmd_tube', 'U', 'H', 'z', 'eps', 'fase_change', 'm', 'c_or_h', 'ts_max', 'Dt_max', 'R_rev', 'Q_max', 'N', 'F', 'eta', 'n', 'i', 'delta', 'tm']
        LB = [Ti, di, de, Ta, h_fld, lmd_tube, U, H, z, eps, fase_change, m, c_or_h, ts_max, Dt_max, R_rev, Q_max, N, F, eta, n, i, delta, tm]
        while len(LA) < len(Lq):
            LA.append(np.nan)
            LB.append(np.nan)
        Disp.insert(loc = 0, column = 'Input', value = LB)
        Disp.insert(loc = 0, column = 'Varáivel', value = LA)
    
    return Disp