In [ ]:
# -*- coding: utf-8 -*-

import numpy as np


def NRTL(nC, T, Xi, Alfa, Aij):
    ## Alcohol  Acetato  Agua       Acido
    Tao = np.matrix([[0.0, 0.0, 0.0, 0.0],
                    [0.0, 0.0, 0.0, 0.0],
                    [0.0, 0.0, 0.0, 0.0],
                    [0.0, 0.0, 0.0, 0.0]])

    ## Alcohol  Acetato  Agua   Acido
    G = np.matrix([[0.0, 0.0, 0.0, 0.0],
                   [0.0, 0.0, 0.0, 0.0],
                   [0.0, 0.0, 0.0, 0.0],
                   [0.0, 0.0, 0.0, 0.0]])

    for j in range(nC):
        for i in range(nC):
            Tao[i, j] = Aij[i, j] / T
    
    #print "Esta es la Matriz Tao", Tao
   
    for j in range(nC):
        for i in range(nC):
            G[i, j] = np.exp(-Alfa[i, j] * Tao[i, j])
    
    #print "Esta es la Matriz G", G
    #---------------------------------------------------
    suma1 = np.zeros([nC, nC], dtype=np.float32)
    suma2 = np.zeros([nC, nC], dtype=np.float32)
    #---------------------------------------------------
    for j in range(nC):
        for i in range(nC):
            suma1[i, j] = Tao[i, j] * G[i, j] * Xi[0, i]
            suma2[i, j] = G[i, j] * Xi[0, i]
    #print "Esta es la Matriz suma1", suma1
    #print "Esta es la Matriz suma2", suma2

    suma11 = sum(suma1)
    suma12 = sum(suma2)

    #print "Esta es la Matriz suma11", suma11
    #print "Esta es la Matriz suma12", suma12

    A = np.ones([1, nC], dtype=np.float32)
    #print "Esta es el Vector A", A
    #print "Esta es el Elemento A[0,0]", A[0, 0]

    A = suma11 / suma12
    #print "miremos Asa", A
    #print "Esta es el Elemento A[0,0]", A[1]

    #----------------------------
    num1 = np.zeros([nC, nC], dtype=np.float32)
    den1 = np.zeros([nC, nC], dtype=np.float32)
    num2 = np.zeros([nC, nC], dtype=np.float32)
    den2 = np.zeros([nC, nC], dtype=np.float32)

    for j in range(nC):
        for i in range(nC):
            num1[i, j] = G[j, i] * Xi[0, i]
            den1[i, j] = G[i, j] * Xi[0, i]
            num2[i, j] = Tao[i, j] * G[i, j] * Xi[0, i]
            den2[i, j] = G[i, j] * Xi[0, i]

    #print "Esta es la Matriz num1", num1
    #print "Esta es la Matriz den1", den1
    #print "Esta es la Matriz num1", num1
    #print "Esta es la Matriz den2", den2

    #--------------------------------------
    Z = np.zeros([nC, 1], dtype=np.float32)
    W = np.zeros([nC, 1], dtype=np.float32)
    ln = np.zeros([nC, nC], dtype=np.float32)
    lnGamma = np.zeros([nC, 1], dtype=np.float32)

    #print "Esta es la Matriz Z", Z
    #print "Esta es la Matriz W", W
    #print "Esta es la Matriz ln", ln
    #print "Esta es la Matriz lnGamma", lnGamma

    for i in range(nC):
        Z[i, 0] = sum(den1[:, i])
        W[i, 0] = sum(num2[:, i])

    for j in range(nC):
        for i in range(nC):
            ln[i, j] = num1[i, j] / Z[i, 0] * (Tao[j, i] - W[i, 0] / Z[i, 0])
    
    #print "Esta es la Matriz ln", ln


    for i in range(nC):
        lnGamma[i, 0] = A[i] + sum(ln[:, i])

    #print "Esta es la Matriz Z", Z
    #print "\n"
    #print "Esta es la Matriz W", W
    #print "\n"
    #print "Esta es la Matriz ln", ln
    print "\n"
    print "Esta es la Matriz lnGamma", "\n", lnGamma
    print "\n"
    gamma_i = np.exp(lnGamma)
    print "Esta es la Matriz gamma_i", "\n", gamma_i

    raw_input("Pulsa una tecla para continuar...")
    return gamma_i

In [2]:
import numpy as np
import NRTL_3

#-------------------------------------------------------------
#----------------- Definiciones -----------------
#-------------------------------------------------------------

# nC = Numero de componenetes de la mezcla
nC = 4
nD = 0
# T = Temperatura en K
T = 300


#Xi = np.matrix([0.25, 0.25, 0.25, 0.25])

Xi_1 = input("Fraccion molar x1: ")
Xi_2 = input("Fraccion molar x2: ")
Xi_3 = input("Fraccion molar x3: ")
Xi_4 = input("Fraccion molar x4: ")
print ("\n")

Xi = np.matrix([Xi_1, Xi_2, Xi_3, Xi_4])

SmXi = np.sum(Xi)

Xi = Xi / SmXi

print (("Esta es la Matriz Xi =", Xi, "\n"))


##           Alcohol  Agua     Acetato    Acido
Alfa = np.array([[0.000, 0.2980, 0.3009, 0.1695],
                  [.2980, 0.0000, 0.2000, 0.2987],
                  [0.3009, 0.2000, 0.0000, 0.2000],
                  [0.1695, 0.2987, 0.2000, 0.0000]])

print (("Matriz Alfa", Alfa))


## Alcohol  Acetato  Agua       Acido
Aij = np.matrix([[0.0000, 100.1, -144.8, 178.3],
                 [1447.5, 0.0000, 2221.5, 424.018],
                 [320.6521, 254.47, 0.0000, 214.55],
                 [-316.8, -110.57, -37.943, 0.000]])

print (("Matriz Aij", Aij))

#for j = 1 : n:
#   for i = 1 : n
#   G = exp(-Alfa * Tao);

#filas = 4
#colum = 4

CoeAct_1 = NRTL_3.NRTL(nC, T, Xi, Alfa, Aij)

print (CoeAct_1)


Fraccion molar x1: 0.25
Fraccion molar x2: 0.225
Fraccion molar x3: 0.25
Fraccion molar x4: 0.25


('Esta es la Matriz Xi =', matrix([[ 0.25641026,  0.23076923,  0.25641026,  0.25641026]]), '\n')
('Matriz Alfa', array([[ 0.    ,  0.298 ,  0.3009,  0.1695],
       [ 0.298 ,  0.    ,  0.2   ,  0.2987],
       [ 0.3009,  0.2   ,  0.    ,  0.2   ],
       [ 0.1695,  0.2987,  0.2   ,  0.    ]]))
('Matriz Aij', matrix([[    0.    ,   100.1   ,  -144.8   ,   178.3   ],
        [ 1447.5   ,     0.    ,  2221.5   ,   424.018 ],
        [  320.6521,   254.47  ,     0.    ,   214.55  ],
        [ -316.8   ,  -110.57  ,   -37.943 ,     0.    ]]))
Esta es la Matriz Tao [[ 0.          0.33366667 -0.48266667  0.59433333]
 [ 4.825       0.          7.405       1.41339333]
 [ 1.06884033  0.84823333  0.          0.71516667]
 [-1.056      -0.36856667 -0.12647667  0.        ]]
Esta es la Matriz G [[ 1.          0.90535091  1.15631058  0.90416854]
 [ 0.2374377   1.          0.22741016  0.65561563]
 [ 0.72497794  0.84396296  1.          0.86672518]
 [ 1.19601118  1.1163795   1.02561797  1.        ]]
Esta es la Matriz suma1 [[ 0.          0.0774578  -0.14310579  0.1377891 ]
 [ 0.26437774  0.          0.38860899  0.21384063]
 [ 0.19868863  0.18355834  0.          0.15893665]
 [-0.32384303 -0.10550264 -0.0332607   0.        ]]
Esta es la Matriz suma2 [[ 0.25641027  0.23214126  0.29648989  0.23183809]
 [ 0.05479332  0.23076923  0.05247927  0.15129592]
 [ 0.18589178  0.21640076  0.25641027  0.22223723]
 [ 0.30666953  0.28625116  0.26297897  0.25641027]]
Esta es la Matriz suma11 [ 0.13922334  0.1555135   0.2122425   0.51056635]
Esta es la Matriz suma12 [ 0.80376494  0.96556234  0.86835843  0.86178148]
Esta es el Vector A [[ 1.  1.  1.  1.]]
Esta es el Elemento A[0,0] 1.0
miremos Asa [ 0.173214    0.16106002  0.24441808  0.59245455]
Esta es el Elemento A[0,0] 0.16106
Esta es la Matriz num1 [[ 0.25641027  0.06088146  0.18589178  0.30666953]
 [ 0.20892714  0.23076923  0.19476068  0.25762603]
 [ 0.29648989  0.0583103   0.25641027  0.26297897]
 [ 0.23183809  0.16810657  0.22223723  0.25641027]]
Esta es la Matriz den1 [[ 0.25641027  0.23214126  0.29648989  0.23183809]
 [ 0.05479332  0.23076923  0.05247927  0.15129592]
 [ 0.18589178  0.21640076  0.25641027  0.22223723]
 [ 0.30666953  0.28625116  0.26297897  0.25641027]]
Esta es la Matriz num1 [[ 0.25641027  0.06088146  0.18589178  0.30666953]
 [ 0.20892714  0.23076923  0.19476068  0.25762603]
 [ 0.29648989  0.0583103   0.25641027  0.26297897]
 [ 0.23183809  0.16810657  0.22223723  0.25641027]]
Esta es la Matriz den2 [[ 0.25641027  0.23214126  0.29648989  0.23183809]
 [ 0.05479332  0.23076923  0.05247927  0.15129592]
 [ 0.18589178  0.21640076  0.25641027  0.22223723]
 [ 0.30666953  0.28625116  0.26297897  0.25641027]]
Esta es la Matriz Z [[ 0.]
 [ 0.]
 [ 0.]
 [ 0.]]
Esta es la Matriz W [[ 0.]
 [ 0.]
 [ 0.]
 [ 0.]]
Esta es la Matriz ln [[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]
Esta es la Matriz lnGamma [[ 0.]
 [ 0.]
 [ 0.]
 [ 0.]]
Esta es la Matriz ln [[-0.05525726  0.35235119  0.20713717 -0.46899596]
 [ 0.0373484  -0.03849332  0.13860765 -0.14131206]
 [-0.24825382  0.48083338 -0.07217217 -0.11232404]
 [ 0.00050543  0.16013944  0.03164515 -0.17627606]]
Esta es la Matriz Z [[ 0.80376488]
 [ 0.9655624 ]
 [ 0.86835837]
 [ 0.86178148]]


Esta es la Matriz W [[ 0.13922334]
 [ 0.15551351]
 [ 0.2122425 ]
 [ 0.51056635]]


Esta es la Matriz ln [[-0.05525726  0.35235119  0.20713717 -0.46899596]
 [ 0.0373484  -0.03849332  0.13860765 -0.14131206]
 [-0.24825382  0.48083338 -0.07217217 -0.11232404]
 [ 0.00050543  0.16013944  0.03164515 -0.17627606]]


Esta es la Matriz lnGamma 
[[-0.09244325]
 [ 1.11589074]
 [ 0.54963589]
 [-0.30645359]]


Esta es la Matriz gamma_i 
[[ 0.91170096]
 [ 3.05228567]
 [ 1.73262203]
 [ 0.73605269]]
Pulsa una tecla para continuar...
[[ 0.91170096]
 [ 3.05228567]
 [ 1.73262203]
 [ 0.73605269]]

In [ ]:


In [ ]: