Exemplo n.º 1
0
def test_first_pure_substance_Coquelet2004():

    eosname = "Coquelet, et al. (2004)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.758728, 1e-4)
    np.testing.assert_allclose(fvap, 4.04742471e05, 1e-5)
    np.testing.assert_allclose(fliq, 2.72110834e04, 1e-5)
Exemplo n.º 2
0
def test_first_pure_substance_RK1949():

    eosname = "Redlich and Kwong (1949)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.789930, 1e-4)
    np.testing.assert_allclose(fvap, 4.14795536e05, 1e-5)
    np.testing.assert_allclose(fliq, 4.72348414e04, 1e-5)
Exemplo n.º 3
0
def test_first_pure_substance_MathiasCopeman1983():

    eosname = "Mathias and Copeman (1983)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.764750, 1e-4)
    np.testing.assert_allclose(fvap, 4.06482412e05, 1e-5)
    np.testing.assert_allclose(fliq, 3.08925741e04, 1e-5)
Exemplo n.º 4
0
def test_first_pure_substance_vdW1890():

    eosname = "van der Waals (1890)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.869055, 1e-4)
    np.testing.assert_allclose(fvap, 4.42619581e05, 1e-5)
    np.testing.assert_allclose(fliq, 2.68466414e05, 1e-1)
Exemplo n.º 5
0
def test_first_pure_substance_SV1986():

    eosname = "Stryjek and Vera (1986)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.757315, 1e-4)
    np.testing.assert_allclose(fvap, 4.04338885e05, 1e-5)
    np.testing.assert_allclose(fliq, 2.64221045e04, 1e-5)
Exemplo n.º 6
0
def test_first_pure_substance_GasemTwu2001():

    eosname = "Gasem, et al. Twu modification (2001)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.758799, 1e-4)
    np.testing.assert_allclose(fvap, 4.04762905e05, 1e-5)
    np.testing.assert_allclose(fliq, 2.72516524e04, 1e-5)
Exemplo n.º 7
0
def test_first_pure_substance_PatelAndTeja1982():

    eosname = "Patel and Teja (1982)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.760510, 1e-4)
    np.testing.assert_allclose(fvap, 4.05451153e05, 1e-5)
    np.testing.assert_allclose(fliq, 2.74252319e04, 1e-5)
Exemplo n.º 8
0
def test_first_pure_substance_Adachi1985():

    eosname = "Adachi, et al. (1985)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.759439, 1e-4)
    np.testing.assert_allclose(fvap, 4.05212335e05, 1e-5)
    np.testing.assert_allclose(fliq, 2.65283163e04, 1e-5)
Exemplo n.º 9
0
def test_first_pure_substance_Penelou82():

    eosname = "Péneloux, et al. (1982)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.76180662, 1e-4)
    np.testing.assert_allclose(fvap, 406223.03952859, 1e-5)
    np.testing.assert_allclose(fliq, 26623.35123666, 1e-5)
Exemplo n.º 10
0
def test_first_pure_substance_PR1976():

    eosname = "Peng and Robinson (1976)"
    subs = [benzene]
    y = [1.0]
    # subs = [benzene, isobutanol, cyclopentane]
    # y = [.2, .3, .5]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.759411, 1e-4)
    np.testing.assert_allclose(fvap, 4.04938217e05, 1e-5)
    np.testing.assert_allclose(fliq, 2.76022341e04, 1e-5)
Exemplo n.º 11
0
def test_first_pure_substance_Wilson1964():

    eosname = "Wilson (1964)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.774546, 1e-4)
    np.testing.assert_allclose(fvap, 4.10128953e05, 1e-5)
    np.testing.assert_allclose(fliq, 3.36971456e04, 1e-5)
Exemplo n.º 12
0
def test_first_pure_substance_Soave1972():

    eosname = "Soave (1972)"
    subs = [benzene]
    # subs = [benzene, isobutanol, cyclopentane]
    eos = createEOSMix(subs, eosname)

    p = 0.5e6
    t = 315
    y = [1.0]
    # y = [.2, .3, .5]
    z = eos.getZfromPT(p, t, y)
    zvap = np.max(z)
    zliq = np.min(z)

    phi_vap = np.zeros(len(eos.substances))
    phi_liq = np.zeros(len(eos.substances))

    for i in range(len(phi_liq)):
        phi_vap[i] = eos.getPhi_i(i, y, p, t, zvap)
        phi_liq[i] = eos.getPhi_i(i, y, p, t, zliq)

    fvap = phi_vap[0] * p
    fliq = phi_liq[0] * p

    print("Z: ", z)
    print("Phi_vap: ", phi_vap)
    print("Phi_liq: ", phi_liq)
    print("f_vap: ", phi_vap * p)
    print("f_liq: ", phi_liq * p)

    np.testing.assert_allclose(zvap, 0.763462, 1e-4)
    np.testing.assert_allclose(fvap, 4.06896003e05, 1e-5)
    np.testing.assert_allclose(fliq, 2.66674564e04, 1e-5)
Exemplo n.º 13
0
def test_first_pure_substance_PR1976():

    subs = [methane]
    y = [1.0]

    eosname = "Peng and Robinson (1976)"
    mix = MixtureProp(subs, [1.0])
    eoseq = EOS(mix, [[0]], eosname)

    eos = createEOSMix(subs, eosname)

    p = 1e5
    t = 150
    pref = 1e5
    tref = 300

    zs = eoseq.getZfromPT(p, t)
    zliq = np.min(zs)
    zvap = np.max(zs)
    vliq, vvap = zliq * R_IG * t / p, zvap * R_IG * t / p

    v_allProps = eoseq.getAllProps(tref, t, pref, p)

    zs = eos.getZfromPT(p, t, y)
    zliq = np.min(zs)
    zvap = np.max(zs)
    vliq, vvap = zliq * R_IG * t / p, zvap * R_IG * t / p

    calc_allProps = eos.getAllProps(y, tref, t, pref, p)

    i = 0
    j = 1
    # assert U
    np.testing.assert_allclose(calc_allProps[i].Props.U, v_allProps[i].Props.U,
                               1e-5)
    np.testing.assert_allclose(calc_allProps[j].Props.U, v_allProps[j].Props.U,
                               1e-5)
    # assert H
    np.testing.assert_allclose(calc_allProps[i].Props.H, v_allProps[i].Props.H,
                               1e-5)
    np.testing.assert_allclose(calc_allProps[j].Props.H, v_allProps[j].Props.H,
                               1e-5)
    # assert S
    np.testing.assert_allclose(calc_allProps[i].Props.S, v_allProps[i].Props.S,
                               1e-5)
    np.testing.assert_allclose(calc_allProps[j].Props.S, v_allProps[j].Props.S,
                               1e-5)
    # assert G
    np.testing.assert_allclose(calc_allProps[i].Props.G, v_allProps[i].Props.G,
                               1e-5)
    np.testing.assert_allclose(calc_allProps[j].Props.G, v_allProps[j].Props.G,
                               1e-5)
    # assert A
    np.testing.assert_allclose(calc_allProps[i].Props.A, v_allProps[i].Props.A,
                               1e-5)
    np.testing.assert_allclose(calc_allProps[j].Props.A, v_allProps[j].Props.A,
                               1e-5)
Exemplo n.º 14
0
def test_bubblePoint():

    subs = [hexane, cyclopentane]
    vleEq = VLE(subs, eosname)
    eq = createEOSMix(subs, eosname)

    t = 300
    p = 35640.78
    x = [0.5, 0.5]

    # pressure
    y_e, pb_e, phivap, philiq, k, ite = vleEq.getBubblePointPressure(x, t)
    y_c, pb_c, phivap, philiq, k, ite = eq.getBubblePointPressure(x, t)
    np.testing.assert_allclose(pb_e, pb_c, 1e-2)

    # temperature
    y_e, tb_e, phivap, philiq, k, ite = vleEq.getBubblePointTemperature(x, p)
    y_c, tb_c, phivap, philiq, k, ite = eq.getBubblePointTemperature(x, p)
    np.testing.assert_allclose(tb_e, tb_c, 1e-2)