a
    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   F/Users/vegardjervell/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datetodaystrftimenowtime)compsmodelFoRkineticthermo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0 zT|d|d  ddt|d    d |d  d t|d  d t|d  7 }W n   td d}Y n0 z(|d|d  ddt|d    7 }W n   td d}Y n0 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0 |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0 q|d*7 }|du rntd+| z:t	d,d-}|
| W d    n1 s0    Y  W n   td. Y n0 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 : 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

.rH   c              	   C   s&  d}t dd| ||d}t }g d}tddd}d	}d
}	||d< d| |d< t|||d< t||	|d< |D ]}
|d|
 td|ddg||	dd}|du r|du r|j|| d}nN|du r|du r|j|| dd\}}n(|du r
|du r
|j|| dd\}}|d ||
d d < |d ||
d d < qtt }|dd td|ddg||	dd}|du r|du r|j|| d}nR|du r|du r|j|| dd\}}n(|du r|du 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,   ZVdWSRKZPRZPTh㈵>wJ?r1          j@x_H2Or	   x_N2r5   p [Pa]皙??   eosxtemppresphaseTmodeFr^   kinr   r   H2ON2rL   CPA_H2OCPA_N2.csvSaved file to )r.   r   nplinspace	full_likeinitr   get_soret_compr   pd	DataFramer   to_csvrA   rH   r*   r+   r,   r   rE   rX   eos_listx_listTpeos_strr)   soretr   df	file_pathr   r   r   H2O_in_N2_cO   sL    


rx   c              	   C   sZ  d}t dd| ||d}t }g d}tddd}d	}d
}	d|	 }
t||	|d< t||
|d< ||d< t|||d< |D ]}|d| td||	|
gd|dd}|du r|du r|j|| d}nb|du r|du r|j|| dd\}}n<|du r|du 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u r|du r|j|| d}nf|du r|du r|j|| dd\}}n<|du r|du 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_TrI   r   rJ   rK   ,    r1   rP   {Gz?r	   rQ   rR   r5   rS   rV   rW   Tr]   Fr_   (Either kinetic_x or thermo must be true!r   r   ra   rb   rL   rc   rd   re   rf   r.   r   rg   rh   ri   rj   r   get_soret_tempr<   r=   r   rl   rm   r   rn   rA   rH   )r*   r+   r,   r   rE   rX   rp   T_listrs   rQ   rR   rt   r)   ru   r   rv   rw   r   r   r   H2O_in_N2_T}   sV    




r   c              	   C   sN  d}t dd| ||d}t }g d}tddd}d	}d
}	||d< d| |d< t|||d< t||	|d< |D ]}
|d|
 td|ddg||	dd}|du r|du r|j|| d}nb|du r|du r|j|| dd\}}n<|du r|du r|j|| dd\}}nt	d ddg}|d ||
d d < |d ||
d d < qtt

 }|dd td|ddg||	dd}|du r|du r|j|| d}nf|du r|du r|j|| dd\}}n<|du r|du 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   rJ   rK   rM   rN   r1   rO   rP   rQ   r	   x_O2r5   rS   rT   rU   rV   rW   Tr]   Fr_   r|   r   r   ra   O2rL   rc   CPA_O2re   rf   )r.   r   rg   rh   ri   rj   r   rk   r<   r=   r   rl   rm   r   rn   rA   rH   ro   r   r   r   H2O_in_O2_c   sT    




r   c              	   C   sZ  d}t dd| ||d}t }g d}tddd}d	}d
}	d|	 }
t||	|d< t||
|d< ||d< t|||d< |D ]}|d| td||	|
gd|dd}|du r|du r|j|| d}nb|du r|du r|j|| dd\}}n<|du r|du 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u r|du r|j|| d}nf|du r|du r|j|| dd\}}n<|du r|du 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   rJ   rK   ry   rz   r1   rP   r{   r	   rQ   r   r5   rS   rV   rW   Tr]   Fr_   r|   r   r   ra   r   rL   rc   r   re   rf   r}   )r*   r+   r,   r   rE   rX   rp   r   rs   rQ   r   rt   r)   ru   r   rv   rw   r   r   r   H2O_in_O2_T   sV    




r   )r   r   TT)r   TT)r   TT)r   TT)r   TT)numpyrg   pandasrl   r   Zmodels.kineticgas_oldr   pycThermopack.pyctpr   r   r   r   r'   r"   models.kempers01r   r<   r   r.   rH   rx   r   r   r   r   r   r   r   <module>   s   
+
.
4
1