import numpy as np
import matplotlib.pyplot as plt
from models.kempers01 import Kempers01
from pycThermopack.pyctp import pcsaft, cubic

eos_keys = ['VdW', 'SRK', 'PR', 'PT', 'SW', 'PC_SAFT', 'SPUNG']

n_alkanes = ['NC10,NC5', 'NC12,NC6', 'NC12,NC7', 'NC12,NC8']
aro_n_alk = ['TOLU,NC6', 'BENZENE,NC6', 'TOLU,NC7', 'BENZENE,NC7']

p_line = np.linspace(1e5,1,10)
x_line = np.linspace(0.01, 0.9, 15)

eos = cubic.cubic()
eos.init('TOLU,NC6', 'SRK')
kemp = Kempers01('TOLU,NC6', eos)

sT_cov = kemp.get_soret_comp(x_line)[0]
sT_com = kemp.get_soret_comp(x_line, mode='com')[0]

plt.plot(x_line, sT_cov, label='cov')
plt.plot(x_line, sT_com, label='com')
plt.legend()
plt.savefig('Test_com')

exit(0)

data = np.loadtxt('test_H/alpha_T0_tolu_nc6.txt')
for i in range(4):
    plt.plot(x_line, data.transpose()[i], label=i)
plt.legend()
plt.show()

alpha_T0 = data.transpose()[0]

# fig, ax = plt.subplots()
# for key in eos_keys:
#     data = np.loadtxt('test_H/'+key+'.txt')
#     h1, h2, h10, h20, v1, v2, dmudx = data.transpose()
#     plt.plot(x_line, v1 * (h2 - h20) - v2 * (h1 - h10), label=key)
#
# plt.legend(loc='upper left')
# plt.show()
#
# for key in eos_keys:
#     data = np.loadtxt('test_H/'+key+'.txt')
#     h1, h2, h10, h20, v1, v2, dmudx = data.transpose()
#     plt.plot(x_line, v1 * x_line + v2 * (1 - x_line), label=key)
# plt.legend()
# plt.show()

exp = [3.5, 4, 5, 5.5, 6]
exp_x = [0.1, 0.22, 0.5, 0.75, 0.9]

for key in eos_keys:
    data = np.loadtxt('test_H/'+key+'.txt')
    h1, h2, h10, h20, v1, v2, dmudx = data.transpose()
    #h1, h2 = h1*1.02, h2 * 1.02
    #h10, h20 = h10 * 1.02, h20 * 1.02
    plt.plot(x_line, ((v1 * (h2 - h20) - v2 * (h1 - h10))/
             ((v1 * x_line + v2 * (1 - x_line)) * x_line * 2 * dmudx)
                + (8.314 * 298 * alpha_T0)/(x_line * dmudx)) * 1e3 / 298, label=key)

plt.scatter(exp_x, exp)
# + (8.314 * 298 * alpha_T0)/(x_line * dmudx)

plt.legend(loc='upper left')
plt.show()