U
    _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SW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,   Z/home/ubuntu/Home/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|}t||D ]\}}|| || d
| |
   }d
| }| j||||gd}t
j|	d |j|	| jdd d ||| d t
j||||| t|dd qt
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_CPA CPAethanol_water.csvNaNZ	na_valuesc                 S   s   g | ]}t |qS r,   int.0xr,   r,   r-   
<listcomp>=   s     z*DataPlotter.etoh_h2o_T.<locals>.<listcomp>r   cETOH,H2O  Q2@)\G@
      Zfigsizeo   g{Gz?g)\(?g      ?gp=
ף?r   c                    s"   g | ]}d d  t | D qS )c                 S   s   g | ]}|qS r,   r,   r6   r,   r,   r-   r9   O   s     z5DataPlotter.etoh_h2o_T.<locals>.<listcomp>.<listcomp>)str)r7   Tdatar,   r-   r9   O   s     r8   r"   r        @@colorr8   rL   labelmarkerT [$^{\circ}$C]   Zfontsize$s_T$ [mK$^{-1}$]_ylimu   $\omega_{EtOH}$ [–])g)\(?g=
ףp=?z
upper left)titleZbbox_to_anchorlocX  ZdpiSaved.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"   scatterrD   xlabelylabelylimlegendsetp	get_titleZscarU   savefigprintclose)r*   eoseos_namecpa_flagro   	save_path	temp_list	cons_listcompsZtemp_axM_h2oM_etohfigaxcmapZST_matrmax_cSTr:   Zx_etohZx_h2or+   rp   r,   rF   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}|D ]V}t| | j|	||d d}|j|| jdd\}}tj||d d ||| d qtjddd tjddd |d k	rXt|d |d
  |d7 }t| tj|dd td|d   t| t }|D ] }tjdd||| |d! qtjd"d#d$}tj| dd t|d%  td|d%  d S )&Nzetoh_h2o/ethanol_water_cons_Tr/   r0   r1   r2   r3   c                 S   s   g | ]}t |qS r,   r4   r6   r,   r,   r-   r9   r   s     z*DataPlotter.etoh_h2o_c.<locals>.<listcomp>r   r:   r;   r=   r>   coolr?   rB   r<   tempr"   r%   r   rJ   rK   u   $\omega_{{EtOH}}$ [–]rQ   rR   rS   rT   rW   rX   rY   rZ   )rL   rN      rP   )ncolrU   z_legend.png)r'   r[   r\   r]   r^   r_   r`   ra   rb   r!   rf   rg   rc   rd   rt   r(   get_soret_compr"   rj   rm   rn   ro   rU   rs   ru   rp   rq   rr   )r*   rv   rw   rx   ro   ry   rG   rz   r{   r|   r}   r~   Z	w_etoh_axZw_h20_axZ	x_etoh_axr   max_Tr   rE   r+   _r%   rp   r,   r,   r-   
etoh_h2o_ck   sJ    
"


zDataPlotter.etoh_h2o_cc                 C   s>  d}| j d | d | }ttd }dd |jdd  D }|d }d	}tt|t|| j	}	t
d
}
t|}t }t|D ]p\}}| j|||d d}|j|	| jdd d }tj|	||
|| d tj||| |
|| t|dd qtjddd tjddd tj|dd td|d  t| d S )NZtoluene_n_hexane_constoluene_hexane/r   Toluene_n_hexane.xlsxc                 S   s   g | ]}t |qS r,   floatr6   r,   r,   r-   r9      s     z2DataPlotter.toluene_n_hexane_c.<locals>.<listcomp>r   
x_toluene:TOLU,NC6r   r<   r   rI   r   rJ   rK   r8   rM   u   $x_{{Toluene}}$ [–]rQ   rR   rS   rW   rX   Saved rZ   )r'   r[   
read_excelr]   r^   r_   r`   ra   rb   r!   rf   rg   rc   rd   	enumerater(   r   r"   rj   rl   rD   rm   rn   rs   rt   ru   )r*   rv   rw   plotnamery   rG   rz   r{   r|   Ztolu_axr   r   r   irE   r+   soretr,   r,   r-   toluene_n_hexane_c   s(    
&zDataPlotter.toluene_n_hexane_cc              	   C   sd  d}| j d | d | }ttd }dd |jdd  D }|d  }d	}tt|t	|| j
d
 }	td}
t	|}t }|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 qtjddd tjddd tj|dd td|d  t| d S )NZtoluene_n_hexane_tempr   r   r   c                 S   s   g | ]}t |qS r,   r   r6   r,   r,   r-   r9      s     z2DataPlotter.toluene_n_hexane_T.<locals>.<listcomp>r   r   r   r<   r   rH   rI   r   rJ   rK   r8   rM   z$T$ [$^{\circ}$C]rQ   rR   rS   rW   rX   r   rZ   )r'   r[   r   r]   r^   Zto_listr_   r`   ra   rb   r!   rf   rg   rc   rd   r(   rh   rk   r"   rj   rl   rV   valuesZflattenrD   rm   rn   rs   rt   ru   )r*   rv   rw   r   ry   rG   rz   r{   r|   Ztempsr   r   r   r:   r+   r   r,   r,   r-   toluene_n_hexane_T   s0    
$
  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rt|d d D ]`\}}t }	|		|| |
|	 |
j|| jdd\}}tj||d d t| |t| d qt }	|		| | 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r4| jr4n"| jrF|d%7 }n| jrV|d&7 }tj|d'd( td)|d*  t | t! }d+}|D ](}tjddt| t| t| |d, qtj"d-d. tj| jd | d'd( td)| jd |  t | d S )/Nz
298_files/z	_298.xlsxr:   r   r   r   r   r   r   r   r   *  g     j@)r   Zpresg333333?g?Tr   r   rJ   )	linestylerN   rL   r   rA   r   rO   rN   rL   	markeveryClassicvdW	NIST_MEOSC3$x_{z}$[-]rQ   rR   $S_T$ [mK$^{-1}$]Z_298_kin_pred_exprW   rX   rY   rZ   z
legend.pngr   rO   rL   rN   r   r   )#r[   r   r]   r_   r`   ra   rb   r!   r   initr(   rc   subplotsre   r#   r   Zset_eosr   r"   rj   
lines_dictkin_color_dictr   marker_dictr   ext_csprm   rn   r'   r$   rs   rt   ru   rd   rp   )r*   filenamer|   ZcompnamerG   Zx_dataZST_datax_axiseos_listrv   r+   r   r   r   eos_keyr   r%   ry   Zsave_legend_namekeyr,   r,   r-   data_298   s    
  
      

 
zDataPlotter.data_298c                 C   sr   ddg}ddg}ddg}ddg}ddg}t d	D ]<}t d	D ].}| || ||  || ||  ||  q<q0d 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   s&  ddddg}ddddd	d
dg}|D ]}| d\}}| jd }||d | d 7 }ttd | d | d }|d }tt|t|| j	}	t
 \}
}| jr t|d d D ]n\}}t| t }||| | j||dd}|j|	| jdd\}}t
j|	|d d t| t| |d qt }|| | 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r4|d#7 }| jrD|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
" }
|D ](}t
jd.d.t| t| t| |d/ qt
j#d.d.d0d1d2d3 t
j$d4d5 t
j | jd6 d*d+ td,| jd6  t
!|
 q"d S )7NzNC10,NC5zNC12,NC6zNC12,NC7zNC12,NC8r   r   r   r   r   r   r   ,z
n_alkanes/r   Z_kinz
n-alkanes/z
_298K.xlsxr:   r   r   r   Tr   r   rJ   rL   r   rN   rA   r   r   r   r   r   r   r   r   r   z}$ [-]rQ   rR   r      rW   rX   rY   rZ   r   r   blackr8   Experimental)rL   rO   rN   r   r   zn_alkanes/legend.png)%splitr'   r[   r   r]   r_   r`   ra   rb   r!   rc   r   r#   r   rt   r   r   r(   r   r"   rj   
color_dictr   r   r   r   r   r$   r%   rm   rn   rU   rs   ru   rd   rl   rp   )r*   mixturesr   r|   Zcomp1Zcomp2ry   rG   Zx1_listr   r   r   r   r   rv   r+   r   r%   r   r,   r,   r-   	n_alkanes@  s    

  
      

 
zDataPlotter.n_alkanesc              	   C   sH  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rlt|D ]n\}
}t| t }||| | j|||d}|j|| jdd\}}t
j||d d t| t| |d qt }||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
 }	|D ](}t
jd$d$t| t| t| |d% qt
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.xlsxr:   r   r   r   r   r   r   Tr   r   r   rJ   r   r   r   r   r   r   r   r   rA   r   z$x_{AR}$ [-]rQ   rR   r   rW   rX   rY   rZ   r   r   r8   r   r   rO   rL   rN   r   r   zcold_gases/legend.png) r'   rD   r[   r   r]   r_   r`   ra   rb   r!   rc   rd   r#   r   rt   r   r   r(   r   r"   rj   r   r   r   r   r   rm   rn   rs   ru   rl   rp   )r*   r|   rE   ry   rG   x_list
soret_listr   r   r   r   r   rv   r+   r   r%   r   r,   r,   r-   
cold_gases  sf         
 
 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}|D ]T}	t }
|
||	 | ||
}t	j||j|| jdd d t|	 t|	 |	d q^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	
 }|D ](}	t	jddt|	 t|	 t|	 |	d qxt	jdddddd  t	jdd! t	| j d"  t	| d S )#Npropanol_h2ozIsopropanol.xlsxr:   r   zPROP1OL,H2Or   r   r   r   r   rI   r   rJ   )r   rL   rN   r   zSRK-CPAr   )r   rL   rO   rN   r   r8   r   )rO   rL   ir   z$x_{H_2O}$ [-]r   rW   rX   rY   rZ   r   r   r   r   z/propanol_legend.png)r'   r[   r   r]   r_   r`   ra   rb   r!   rc   rd   r   r   r(   rj   r   r"   r   r   r   r   rl   ro   rm   rn   rp   rs   rt   ru   )r*   ry   rG   r   r   r   r|   r   eos_keysr   rv   r+   r,   r,   r-   r     sZ    
     


 
zDataPlotter.propanol_h2o)r   r   FTTT)FN)FN)__name__
__module____qualname__r.   r   r   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   numpyr_   pandasr[   matplotlib.pyplotpyplotrc   Zmatplotlib.cmrf   ospathdirnameabspath__file__stripr&   r]   r   r   rg   Zeos_cmapr   Zkin_cmapr   r   r,   r,   r,   r-   <module>   sN      
  
   
   