B
    _L              	   @   sP  d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlZd dlZd dlmZ d dlmZ d dlZejejedZed Zdd	d
ddddddZdddddddddZedZed edededededededdZ edZ!e!d e!de!de!de!de!de!de!ddZ"e Z"G dd dZ#dS )    )	Kempers01)	Kempers89)Mod_Kempers89)cubicpcsaftextended_cspcpaNplottingzdata/-z--z-.:)r   )      r   r      r   )VdWSRKPRPTSWzPC-SAFTSPUNGCPA vosviridisgUUUUUU?gUUUUUU?g      ?gUUUUUU?g?g      ?Zplasmac               @   sb   e Zd ZdddZddd	Zdd
dZdd Zdd Zdd Zdd Z	dd Z
dd Zdd ZdS )DataPlottercov2   FTc             C   s   || _ || _|| _|| _|| _|| _|dkrp|dkrVtd d d | d | _t| _	qtd | d | _t
| _	n*|dkrtd | d | _t| _	ntdd S )	Nr   Tzplots/kempers89/no_h0/r   zplots/kempers01/z1'model' must be either 'Kempers89' or 'Kempers01')pointsmodeZ
model_namepredexpkin	root_path
plots_pathr   	KempersXXr   r   
ValueError)selfmodelr!   r    r   r"   r#   r$    r+   ]/Users/vegardjervell/Documents/7_semester/irrev_prosjekt_renskriv/plotting/kin_dataplotter.py__init__"   s     zDataPlotter.__init__Nc                s  | j d | }|dkr&|d7 }|d7 }tjtd dd dd	  jd
d  D } d }d}tt|t|| j	d }	d}
d}t
jdd}t
d}|ddddg td}t fdd	|D  }t|}xt||D ]\}}|| || d
| |
   }d
| }| j||||gd}t
j|	d |j|	| jdd d ||| d t
j||||| t|dd qW t
jd d!d" t
jd#d!d" |d k	rt
|d |d
  |d$7 }t
jd%d&d'd(}t
j| d!d" t
| t
j |d!d" t
j!|d)d* t"d+|d,  t
#| d S )-Nzetoh_h2o/ethanol_water_temp_T_CPAz CPAzethanol_water.csvNaN)	na_valuesc             S   s   g | ]}t |qS r+   )int).0xr+   r+   r,   
<listcomp>=   s    z*DataPlotter.etoh_h2o_T.<locals>.<listcomp>r   czETOH,H2Oi  gQ2@g)\G@)
      )figsizeo   g{Gz?g)\(?g      ?gp=
ף?r   c                s"   g | ]}d d  t | D qS )c             S   s   g | ]}|qS r+   r+   )r2   r3   r+   r+   r,   r4   O   s    z5DataPlotter.etoh_h2o_T.<locals>.<listcomp>.<listcomp>)str)r2   T)datar+   r,   r4   O   s    )r3   )r!   r   g     @@)colorr3   )r=   labelmarkerzT [$^{\circ}$C]   )fontsizez$s_T$ [mK$^{-1}$]_ylimu   $\omega_{EtOH}$ [–])g)\(?g=
ףp=?z
upper left)titleZbbox_to_anchorlociX  )dpiSavedz.png)$r&   pdread_csv	data_pathcolumnsnplinspaceminmaxr    pltfigureZsubplotset_positioncmget_cmaparrayZ	transposezipr'   plotget_soret_tempr!   scatterr:   xlabelylabelylimlegendsetp	get_titleZscarC   savefigprintclose)r)   eoseos_namecpa_flagr[   	save_path	temp_list	cons_listcompsZtemp_axM_h2oM_etohfigaxcmapZST_matrmax_cSTr5   Zx_etohZx_h2or*   r\   r+   )r<   r,   
etoh_h2o_T6   sF    

0$

zDataPlotter.etoh_h2o_Tc             C   s  | j d | }|dkr&|d7 }|d7 }tjtd dd}dd	 |jd
d  D }|d }d}	d}
d}tt|t|| j	}d
| }|| || ||
   }t
d}t|}tjdd}x^|D ]V}t| | j|	||d d}|j|| jdd\}}tj||d d ||| d qW tjddd tjddd |d k	r\t|d |d
  |d7 }t| tj|dd td|d   t| t }x(|D ] }tjdd||| |d! qW tjd"d#d$}tj| dd t|d%  td|d%  d S )&Nzetoh_h2o/ethanol_water_cons_Tr.   z CPAzethanol_water.csvr/   )r0   c             S   s   g | ]}t |qS r+   )r1   )r2   r3   r+   r+   r,   r4   r   s    z*DataPlotter.etoh_h2o_c.<locals>.<listcomp>r   r5   zETOH,H2OgQ2@g)\G@cool)r6   r7   )r8   i  )temp)r!   r$   r   g     @@)r=   u   $\omega_{{EtOH}}$ [–]r@   )rA   z$s_T$ [mK$^{-1}$]rB   iX  )rE   rF   z.png)r=   r>      zT [$^{\circ}$C])ncolrC   z_legend.png)r&   rG   rH   rI   rJ   rK   rL   rM   rN   r    rR   rS   rO   rP   r`   r'   get_soret_compr!   rV   rY   rZ   r[   rC   r_   ra   r\   r]   r^   )r)   rb   rc   rd   r[   re   r<   rf   rg   rh   ri   rj   Z	w_etoh_axZw_h20_axZ	x_etoh_axrm   max_Trk   r;   r*   _r$   r\   r+   r+   r,   
etoh_h2o_ck   sJ    

$



 zDataPlotter.etoh_h2o_cc             C   sB  d}| j d | d | }ttd }dd |jdd  D }|d }d	}tt|t|| j	}	t
d
}
t|}t }x|t|D ]p\}}| j|||d d}|j|	| jdd d }tj|	||
|| d tj||| |
|| t|dd qW tjddd tjddd tj|dd td|d  t| d S )NZtoluene_n_hexane_consztoluene_hexane/rw   zToluene_n_hexane.xlsxc             S   s   g | ]}t |qS r+   )float)r2   r3   r+   r+   r,   r4      s    z2DataPlotter.toluene_n_hexane_c.<locals>.<listcomp>r   z
x_toluene:zTOLU,NC6rq   i  )rr   )r!   r   g     @@)r=   r3   )r=   r>   r?   u   $x_{{Toluene}}$ [–]r@   )rA   z$s_T$ [mK$^{-1}$]iX  )rE   zSaved z.png)r&   rG   
read_excelrI   rJ   rK   rL   rM   rN   r    rR   rS   rO   rP   	enumerater'   ru   r!   rV   rX   r:   rY   rZ   r_   r`   ra   )r)   rb   rc   plotnamere   r<   rf   rg   rh   Ztolu_axrm   rv   rk   ir;   r*   soretr+   r+   r,   toluene_n_hexane_c   s(    
(zDataPlotter.toluene_n_hexane_cc          	   C   sh  d}| j d | d | }ttd }dd |jdd  D }|d  }d	}tt|t	|| j
d
 }	td}
t	|}t }x|D ]}| j||t|d| gd}|j|	| jdd d }tj|	d
 ||
|| d tj||j|d |k j dd  |
|| t|dd qW tjddd tjddd tj|dd td|d  t| d S )NZtoluene_n_hexane_tempztoluene_hexane/rw   zToluene_n_hexane.xlsxc             S   s   g | ]}t |qS r+   )ry   )r2   r3   r+   r+   r,   r4      s    z2DataPlotter.toluene_n_hexane_T.<locals>.<listcomp>r   z
x_toluene:zTOLU,NC6i  r   )r3   )r!   r   g     @@)r=   r3   )r=   r>   r?   z$T$ [$^{\circ}$C]r@   )rA   z$s_T$ [mK$^{-1}$]iX  )rE   zSaved z.png)r&   rG   rz   rI   rJ   Zto_listrK   rL   rM   rN   r    rR   rS   rO   rP   r'   rT   rW   r!   rV   rX   rD   valuesZflattenr:   rY   rZ   r_   r`   ra   )r)   rb   rc   r|   re   r<   rf   rg   rh   Ztempsrm   rn   rk   r5   r*   r~   r+   r+   r,   toluene_n_hexane_T   s*    

$zDataPlotter.toluene_n_hexane_Tc          	   C   s  t td | d }|d }|d }tt|t|| j}ddddd	d
dg}t }	|		|d | j
||	ddd}
t \}}|ddddg | jdkrxtt|d d D ]`\}}t }	|		|| |
|	 |
j|| jdd\}}tj||d d t| |t| d qW t }	|		| | j
||	dd}
|
j|| jdd\}}tj||d d td
 td
 |d td
 dd t }	|		|ddddd | j
||	dd}
|
j|| jdd\}}tj||d d td td |d td dd tjd| d  d!d" tjd#d!d" | jd | d$ }| jr8| jr8n"| jrJ|d%7 }n| jrZ|d&7 }tj|d'd( td)|d*  t | t! }d+}x0|D ](}tjddt| t| t| |d, qW tj"d-d. tj| jd | d'd( td)| jd |  t | d S )/Nz
298_files/z	_298.xlsxr5   ro   r   r   r   r   r   zPC-SAFTr   i*  g     j@)rr   Zpresg333333?g?T)r!   r$   r   g     @@)	linestyler>   r=   )rr   r7   )r   r?   r>   r=   	markeveryClassicvdW	NIST_MEOSC3z$x_{z}$[-]r@   )rA   z$S_T$ [mK$^{-1}$]Z_298_kin_pred_expiX  )rE   rF   z.pngz
legend.png)r   r?   r=   r>   rs   )rt   )#rG   rz   rI   rK   rL   rM   rN   r    r   initr'   rO   subplotsrQ   r"   r{   Zset_eosru   r!   rV   
lines_dictkin_color_dictr   marker_dictr   ext_csprY   rZ   r&   r#   r_   r`   ra   rP   r\   )r)   filenamerh   Zcompnamer<   Zx_dataZST_datax_axiseos_listrb   r*   rk   rl   r}   eos_keyrw   r$   re   Zsave_legend_namekeyr+   r+   r,   data_298   sj    




zDataPlotter.data_298c             C   sz   ddg}ddg}ddg}ddg}ddg}xLt d	D ]@}x:t d	D ].}| || ||  || ||  ||  q@W q2W d S )
NZbenzeneZtolueneZ_hexaneZ_heptanez,NC6z,NC7ZBENZENEZTOLUr   )ranger   )r)   Zsolute_namesZsolvent_namesZsolvent_codesZ
comp_codesZ	compnamesr}   jr+   r+   r,   plot_2984  s    zDataPlotter.plot_298c          
   C   s4  ddddg}ddddd	d
dg}x|D ]}| d\}}| jd }||d | d 7 }ttd | d | d }|d }tt|t|| j	}	t
 \}
}| jrxt|d d D ]n\}}t| t }||| | j||dd}|j|	| jdd\}}t
j|	|d d t| t| |d qW t }|| | j||dd}|j|	| jdd\}}t
j|	|d d td
 td
 |d td
 dd t }||ddddd  | j||dd}|j|	| jdd\}}t
j|	|d d td td |d! td dd | jr| jrn"| jr,|d"7 }n| jr<|d#7 }| jrL|d7 }t
jd$| d% d&d' t
jd(d&d' t
j|d)d' t
j |d*d+ td,|d-  t
!|
 t
" }
x0|D ](}t
jd.d.t| t| t| |d/ qW t
j#d.d.d0d1d2d3 t
j$d4d5 t
j | jd6 d*d+ td,| jd6  t
!|
 q&W d S )7NzNC10,NC5zNC12,NC6zNC12,NC7zNC12,NC8r   r   r   r   r   zPC-SAFTr   ,z
n_alkanes/rw   Z_kinz
n-alkanes/z
_298K.xlsxr5   r   i*  )rr   T)r!   r$   r   g     @@)r=   r   r>   r7   )r   r?   r>   r=   r   r   r   r   r   r   r   r   z$x_{z}$ [-]r@   )rA   z$S_T$ [mK$^{-1}$]   iX  )rE   rF   z.pngr   )r   r?   r=   r>   blackr3   Experimental)r=   r?   r>   rs   )rt   zn_alkanes/legend.png)%splitr&   rG   rz   rI   rK   rL   rM   rN   r    rO   r   r"   r{   r`   r   r   r'   ru   r!   rV   
color_dictr   r   r   r   r   r#   r$   rY   rZ   rC   r_   ra   rP   rX   r\   )r)   mixturesr   rh   Zcomp1Zcomp2re   r<   Zx1_listr   rk   rl   r}   r   rb   r*   rw   r$   r   r+   r+   r,   	n_alkanes@  sp    




zDataPlotter.n_alkanesc          	   C   sP  d}d}| j d t| d }ttd t| d }|d }|d }tt|t|| j	}dd	d
ddg}t
 }	| jdkrpxzt|D ]n\}
}t| t }||| | j|||d}|j|| jdd\}}t
j||d d t| t| |d qW t }||d	dddd | j||dd}|j|| jdd\}}t
j||d d td td |d td dd t
jddd t
jddd t
j|d d! td"|d#  t
|	 t
 }	x0|D ](}t
jd$d$t| t| t| |d% qW t
jd$d$td td td dd% t
jd$d$d&d'd(d) t
jd*d+ t
j| j d, d d! t
|	 d S )-NzAR,C1X   zcold_gases/AR_C1_ZK_kinzK.xlsxr5   ro   r   r   r   r   r   T)rr   )r!   r$   r   g     @@)r=   r   r>   r   r   r   r   i*  r   r   r7   )r   r?   r>   r=   r   z$x_{AR}$ [-]r@   )rA   z$S_T$ [mK$^{-1}$]iX  )rE   rF   z.pngr   )r   r?   r=   r>   r3   r   r   )r?   r=   r>   rs   )rt   zcold_gases/legend.png) r&   r:   rG   rz   rI   rK   rL   rM   rN   r    rO   rP   r"   r{   r`   r   r   r'   ru   r!   rV   r   r   r   r   r   rY   rZ   r_   ra   rX   r\   )r)   rh   r;   re   r<   x_list
soret_listr   r   rk   r}   r   rb   r*   rw   r$   r   r+   r+   r,   
cold_gases  sP    

zDataPlotter.cold_gasesc          	   C   s  | j d }ttd }|d }|d }tt|t|| j}d}t	
 }dddd	d
g}x\|D ]T}	t }
|
||	 | ||
}t	j||j|| jdd d t|	 t|	 |	d q`W t }
|
|d | ||
}t	j||j|| jdd d td td td ddd t	j||ddd t	dd t	d t	d t	  t	j|dd td|d  t	| t	
 }x0|D ](}	t	jddt|	 t|	 t|	 |	d q~W t	jdddddd  t	jdd! t	| j d"  t	| d S )#Npropanol_h2ozIsopropanol.xlsxr5   ro   zPROP1OL,H2Or   r   r   r   r   )r!   r   g     @@)r   r=   r>   r   zSRK-CPArs   )r   r=   r?   r>   r   r3   r   )r?   r=   ir   z$x_{H_2O}$ [-]z$S_T$ [mK$^{-1}$]iX  )rE   rF   z.png)r   r?   r=   r>   r   )r?   r=   r>   )rt   z/propanol_legend.png)r&   rG   rz   rI   rK   rL   rM   rN   r    rO   rP   r   r   r'   rV   ru   r!   r   r   r   r   rX   r[   rY   rZ   r\   r_   r`   ra   )r)   re   r<   r   r   r   rh   rk   eos_keysr   rb   r*   r+   r+   r,   r     sH    





zDataPlotter.propanol_h2o)r   r   FTTT)FN)FN)__name__
__module____qualname__r-   rp   rx   r   r   r   r   r   r   r   r+   r+   r+   r,   r   !   s   

5
:%#GF8r   )$models.kempers01r   models.kempers89r   Zmodels.modKempers89_r   pycThermopack.pyctpr   r   r   r   numpyrK   pandasrG   matplotlib.pyplotpyplotrO   Zmatplotlib.cmrR   ospathdirnameabspath__file__stripr%   rI   r   r   rS   Zeos_cmapr   Zkin_cmapr   r   r+   r+   r+   r,   <module>   s0   


