U
    bHaF*                     @   s   d dl Zd dlZd dl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Zdd Zdd
dZdd ZdddZdddZdddZdddZdS )    N)
KineticGas)cubiccpapcsaftextended_csp)	Kempers01c                 C   s   t j| | rVd}| d t| }t j|| rN|d7 }| d t| }q$|| S t jt jt}|d |  } t| |S d S )Nr   _   /)	ospathisabsstrisfiledirnameabspath__file__get_empty_file_path)	root_namesuffixvnameZdir_path r   C/home/ubuntu/Home/Documents/9_semester/soret_model/file_handling.pyr      s    r   r   covTc              	   C   s6   | ||||t tj dt tj  d}|S )Nz%d/%m/%Y)
ComponentsModelFrame of referenceKinetic contributionThermodynamic contributionDateTime)r   datetimedateZtodaystrftimenowtime)compsmodelFoRkineticthermoZmetadatar   r   r   gen_preamble   s    r,   c                 C   s  |  dd } d}z>d|  ddt|    d |d  d	 |d
  dd  }W n   td d}d}Y nX zT|d|d  ddt|d    d |d  d t|d  d t|d  7 }W n   td d}Y nX z(|d|d  ddt|d    7 }W n   td d}Y nX z^|dttt|d d ddtttt|d d   d ttt|d d 7 }W n   td  d}Y nX |d  d!D ]}zz|d"| d# ttt|d$|  d% dd&tttt|d$|  d%   d' | d# ttt|d$|  d% 7 }W n"   td(| d)  d}Y nX q|d*7 }|dkrntd+| z$t	d,d-}|
| W 5 Q R X W n   td. Y nX d S )/Nz	prosjekt/Fz
Filename :     zDate : r    z  r!   .r   z,Filename, date or time missing from dataset! Tz	
Model : r      zFoR : r   z   Kinetic : r   z    Thermodynamic : r   zVModel, Frame of reference, Kinetic og Thermodynamic contribution missing from dataset!z
Components : r   z Components missing from dataset!z
Min. Temp. : T [K]zMax. Temp. : z#Temeperatures missing from dataset!,z
Min. x_z : x_   
   zMax. x_zMole fraction of component z missing from dataset!zN

###########################################################################
zAttempting to write : zoutput/output_lookup.txtazCould not write to file!)splitlenwarningswarnr   roundminmaxprintopenwrite)filenamedataZwarnedZoutstrcfiler   r   r   add_to_output_db$   sJ    >

T

(

^

z

rG   c              	   C   s*  d}t dd| ||d}t }ddddg}td	d
d}d}d}	||d< d| |d< t|||d< t||	|d< |D ]}
|d|
 td|ddg||	dd}|dkr|dkr|j|| d}nN|dkr|dkr|j|| dd\}}n(|dkr|dkr|j|| dd\}}|d ||
d d < |d ||
d d < qxt }|dd td|ddg||	dd}|dkr|dkr|j|| d}nR|dkr|dkr|j|| dd\}}n(|dkr|dkr|j|| dd\}}|d |d< |d |d < t	
|}t|d!}|| td"|  t|| d S )#Nzoutput/H2O_N2_cH2O,N2r   r(   r)   r*   r+   VdWSRKPRPTh㈵>wJ?r/          j@x_H2Or	   x_N2r3   p [Pa]皙??   eosxZtempZpresZphaseTmodeFr\   Zkinr   r   H2ON2CPA_H2OCPA_N2.csvSaved file to )r,   r   nplinspace	full_likeinitr   get_soret_compr   pd	DataFramer   to_csvr@   rG   r)   r*   r+   r   rD   rY   eos_listx_listTpeos_strr(   soretr   df	file_pathr   r   r   H2O_in_N2_cO   sL    


ru   c              	   C   s^  d}t dd| ||d}t }ddddg}td	d
d}d}d}	d|	 }
t||	|d< t||
|d< ||d< t|||d< |D ]}|d| td||	|
gd	|dd}|dkr|dkr|j|| d}nb|dkr|dkr|j|| dd\}}n<|dkr|dkr|j|| dd\}}nt	d ddg}|d ||d d < |d ||d d < qt

 }|dd td||	|
gd	|dd}|dkr|dkr|j|| d}nf|dkr|dkr|j|| dd\}}n<|dkr|dkr|j|| dd\}}nt	d ddg}|d |d< |d |d< t|}t|d }|| td!|  t|| d S )"Nzoutput/H2O_N2_TrH   r   rI   rJ   rK   rL   rM   ,    r/   rQ   {Gz?r	   rR   rS   r3   rT   rW   rX   Tr[   Fr]   (Either kinetic_x or thermo must be true!r   r   r^   r_   r`   ra   rb   rc   r,   r   rd   re   rf   rg   r   Zget_soret_tempr;   r<   r   ri   rj   r   rk   r@   rG   )r)   r*   r+   r   rD   rY   rm   T_listrp   rR   rS   rq   r(   rr   r   rs   rt   r   r   r   H2O_in_N2_T}   sV    




r|   c              	   C   sR  d}t dd| ||d}t }ddddg}td	d
d}d}d}	||d< d| |d< t|||d< t||	|d< |D ]}
|d|
 td|ddg||	dd}|dkr|dkr|j|| d}nb|dkr|dkr|j|| dd\}}n<|dkr|dkr|j|| dd\}}nt	d ddg}|d ||
d d < |d ||
d d < qxt

 }|dd td|ddg||	dd}|dkr|dkr|j|| d}nf|dkr|dkr|j|| dd\}}n<|dkr|dkr|j|| dd\}}nt	d ddg}|d |d < |d |d!< t|}t|d"}|| td#|  t|| d S )$Nzoutput/H2O_O2_cH2O,O2r   rI   rJ   rK   rL   rM   rN   rO   r/   rP   rQ   rR   r	   x_O2r3   rT   rU   rV   rW   rX   Tr[   Fr]   ry   r   r   r^   O2r`   CPA_O2rb   rc   )r,   r   rd   re   rf   rg   r   rh   r;   r<   r   ri   rj   r   rk   r@   rG   rl   r   r   r   H2O_in_O2_c   sT    




r   c              	   C   s^  d}t dd| ||d}t }ddddg}td	d
d}d}d}	d|	 }
t||	|d< t||
|d< ||d< t|||d< |D ]}|d| td||	|
gd	|dd}|dkr|dkr|j|| d}nb|dkr|dkr|j|| dd\}}n<|dkr|dkr|j|| dd\}}nt	d ddg}|d ||d d < |d ||d d < qt

 }|dd td||	|
gd	|dd}|dkr|dkr|j|| d}nf|dkr|dkr|j|| dd\}}n<|dkr|dkr|j|| dd\}}nt	d ddg}|d |d< |d |d< t|}t|d }|| td!|  t|| d S )"Nzoutput/H2O_O2_Tr}   r   rI   rJ   rK   rL   rM   rv   rw   r/   rQ   rx   r	   rR   r~   r3   rT   rW   rX   Tr[   Fr]   ry   r   r   r^   r   r`   r   rb   rc   rz   )r)   r*   r+   r   rD   rY   rm   r{   rp   rR   r~   rq   r(   rr   r   rs   rt   r   r   r   H2O_in_O2_T   sV    




r   )r   r   TT)r   TT)r   TT)r   TT)r   TT)numpyrd   pandasri   r   Zmodels.kineticgas_oldr   pycThermopack.pyctpr   r   r   r   r&   r"   models.kempers01r   r;   r   r,   rG   ru   r|   r   r   r   r   r   r   <module>   s   
+
.
4
1