Example #1
0
def test_madeup_20():
    N = 20
    rs, qs = make_rsqs(N)
    taus = make_taus(N)
    xs = normalize([random() for i in range(N)])
    T = 350.0
    GE = UNIQUAC(T=T, xs=xs, rs=rs, qs=qs, tau_coeffs=taus)
Example #2
0
def test_madeup_NRTL():
    N = 6
    alphas = make_alphas(N)
    taus = make_taus(N)
    xs = normalize([random() for i in range(N)])
    T = 350.0
    GE = NRTL(T, xs, taus, alphas)
Example #3
0
def NRTL_gammas_200():
    # ten component
    # Takes 40 ms - not a great idea
    N = 200
    taus = [[random() for i in range(N)] for j in range(N)]
    alphas = [[random() for i in range(N)] for j in range(N)]
    xs = normalize([random() for i in range(N)])
    gammas = NRTL_gammas(xs=xs, taus=taus, alphas=alphas)
Example #4
0
    def __init__(self):
        super().__init__()

        for N in Diguilio_Teja_ns:
            Diguilio_Teja_kwargs = dict(T=298.15,
                                        xs=normalize([0.1606, 0.8394] * N),
                                        sigmas_Tb=[0.01424, 0.02530] * N,
                                        Tbs=[309.21, 312.95] * N,
                                        Tcs=[469.7, 508.0] * N)
            N *= 2
            setattr(self, 'DT%d' % N, Diguilio_Teja_kwargs)
            Diguilio_Teja_kwargs = Diguilio_Teja_kwargs.copy()
            for s in ('sigmas_Tb', 'xs', 'Tbs', 'Tcs'):
                Diguilio_Teja_kwargs[s] = np.array(Diguilio_Teja_kwargs[s])
            setattr(self, 'DTnp%d' % N, Diguilio_Teja_kwargs)

        for N in Weinaug_Katz_ns:
            Weinaug_Katz_kwargs = dict(parachors=[5.1e-5, 7.2e-5] * N,
                                       Vml=0.000125,
                                       Vmg=0.02011,
                                       xs=normalize([.4, .6] * N),
                                       ys=normalize([.6, .4] * N))
            N *= 2
            setattr(self, 'WK%d' % N, Weinaug_Katz_kwargs)
            Weinaug_Katz_kwargs = Weinaug_Katz_kwargs.copy()
            for s in ('parachors', 'xs', 'ys'):
                Weinaug_Katz_kwargs[s] = np.array(Weinaug_Katz_kwargs[s])
            setattr(self, 'WKnp%d' % N, Weinaug_Katz_kwargs)

        for N in Winterfeld_Scriven_Davis_ns:
            Winterfeld_Scriven_Davis_kwargs = dict(
                xs=normalize([0.1606, 0.8394] * N),
                sigmas=[0.01547, 0.02877] * N,
                rhoms=[8610., 15530.] * N)
            N *= 2
            setattr(self, 'WS%d' % N, Winterfeld_Scriven_Davis_kwargs)
            Winterfeld_Scriven_Davis_kwargs = Winterfeld_Scriven_Davis_kwargs.copy(
            )
            for s in ('sigmas', 'xs', 'rhoms'):
                Winterfeld_Scriven_Davis_kwargs[s] = np.array(
                    Winterfeld_Scriven_Davis_kwargs[s])
            setattr(self, 'WSnp%d' % N, Winterfeld_Scriven_Davis_kwargs)
Example #5
0
    def setup(self):

        N = 3
        T = 331.42
        xs = [0.229, 0.175, 0.596]
        rs = [2.5735, 2.87, 1.4311]
        qs = [2.336, 2.41, 1.432]

        # madeup numbers to match Wilson example roughly
        tausA = [[0.0, -1.05e-4, -2.5e-4], [3.9e-4, 0.0, 1.6e-4],
                 [-1.123e-4, 6.5e-4, 0]]
        tausB = [[0.0, 235.0, -169.0], [-160, 0.0, -715.0], [11.2, 144.0, 0.0]]
        tausC = [[0.0, -4.23e-4, 2.9e-4], [6.1e-4, 0.0, 8.2e-5],
                 [-7.8e-4, 1.11e-4, 0]]
        tausD = [[0.0, -3.94e-5, 2.22e-5], [8.5e-5, 0.0, 4.4e-5],
                 [-7.9e-5, 3.22e-5, 0]]
        tausE = [[0.0, -4.2e2, 8.32e2], [2.7e2, 0.0, 6.8e2],
                 [3.7e2, 7.43e2, 0]]
        tausF = [[0.0, 9.64e-8, 8.94e-8], [1.53e-7, 0.0, 1.11e-7],
                 [7.9e-8, 2.276e-8, 0]]
        ABCDEF = (tausA, tausB, tausC, tausD, tausE, tausF)

        self.GE2 = UNIQUAC(T=T, xs=xs, rs=rs, qs=qs, ABCDEF=ABCDEF)
        if not IS_PYPY:
            self.GE2nb = UNIQUAC(T=T,
                                 xs=np.array(xs),
                                 rs=np.array(rs),
                                 qs=np.array(qs),
                                 ABCDEF=(np.array(v) for v in ABCDEF))
            self.xs2nb = np.array([.1, .2, .7])

        def make_rsqs(N):
            cmps = range(N)
            rs = [float('%.3g' % (random() * 2.5)) for _ in cmps]
            qs = [float('%.3g' % (random() * 1.3)) for _ in cmps]
            return rs, qs

        def make_taus(N):
            cmps = range(N)
            data = []
            base = [1e-4, 200.0, -5e-4, -7e-5, 300, 9e-8]

            for i in cmps:
                row = []
                for j in cmps:
                    if i == j:
                        row.append([0.0] * 6)
                    else:
                        row.append(
                            [float('%.3g' % (random() * n)) for n in base])
                data.append(row)
            return data

        N = 20
        rs, qs = make_rsqs(N)
        taus = make_taus(N)
        xs = normalize([random() for i in range(N)])
        T = 350.0
        self.GE20 = UNIQUAC(T=T, xs=xs, rs=rs, qs=qs, tau_coeffs=taus)
        self.xs20 = normalize([random() for i in range(N)])
        if not IS_PYPY:
            self.GE20nb = UNIQUAC(T=T,
                                  xs=np.array(xs),
                                  rs=np.array(rs),
                                  qs=np.array(qs),
                                  tau_coeffs=np.array(taus))
            self.xs20nb = np.array(self.xs20)
Example #6
0
 def to_diff_dnGE2_dninj(ns):
     nt = sum(ns)
     xs = normalize(ns)
     return nt * GE.to_T_xs(T, xs).GE()
Example #7
0
 def gammas_to_diff(xs):
     xs = normalize(xs)
     return np.array(Wilson_gammas(xs, lambdas))
Example #8
0
 def diff_for_dnGE_dn(xs):
     nt = sum(xs)
     xs = normalize(xs)
     return nt * GE.to_T_xs(T, xs).GE()
Example #9
0
 def diff_for_dGE_dn(xs):
     xs = normalize(xs)
     return GE.to_T_xs(T, xs).GE()
Example #10
0
 def diff_for_dSE_dns(xs):
     xs = normalize(xs)
     return GE.to_T_xs(T, xs).SE()
Example #11
0
def NRTL_gammas_44():
    N = 44
    taus = [[random() for i in range(N)] for j in range(N)]
    alphas = [[random() for i in range(N)] for j in range(N)]
    xs = normalize([random() for i in range(N)])
    gammas = NRTL_gammas(xs=xs, taus=taus, alphas=alphas)