U
    5aK                     @   s   e d  dZe ded   ddlZe ddd ddlZe ddd ddlZe ddd dd	lmZ e ddd dd
lm	Z	m
Z
 e ddd ddlmZ dd Zdd Zdd Zdd ZedkrddlmZ e d e ded   e  dS )Starting   -       N# )end)datetime)Avogadro	Boltzmannc                 C   s   t jt jtd }|d|  7 }|dks4|dkrt||dd d t|dd d	 t|dd d
 7 }n||ddd
 7 }|S )N/zoutput/saft_validation/r   ,r   _e_.__s_z.csv)ospathdirnameabspath__file__splitstrreplace)namecompses	file_path r   B/Users/vegardjervell/Documents/9_semester/soret_model/test_saft.pyget_file_path   s    @r!   c                 C   s2   t j| r.td|  td}|dkr.td d S )NzThis operation will overwrite zY to confirmYr   )r   r   isfileprintinputexit)out_pathconfirmr   r   r    check_overwrite   s
    
r)   c            	      C   s   d} dg}t d| dd}tj|}t| t }||  tjddd}|	d\}}}}}t
|d |d  t
|d	 |d  t
d
 d S )NLJFr   phase_envelopezNIST_SAFT.xlszSAT-EOS)
sheet_namez
r* (vapor)zp*zr* (liquid)Ztesting_phase_env)r!   r   r   r   r)   	saftvrmieinitpd
read_excelget_pure_fluid_parampltplotsavefig)	r   compositionr'   Zoutdifeosdfr   sigma	eps_div_kr   r   r    r+   #   s    
r+   c            %   	      s:  d} dgt td dkr(tdntt| dkrFtdd}d}d}td|  d	 t d
 t| d t| d t| d }|dkrtd td| ||}t	j
|}t| t |  t| ddkr|dks|dkrd}|\}}	}
}}d|d ||d  ||d  |d |d    d}|\}}}}}d|	|  }t|
| }nJd}|\}}	}
}}d}|\}}}}}d|	|  }t|
| }nd}|\}}}}}td tjdddd}||d dk|d dk@  }|d  }|jd td td||   fdd t|D }i }t|D ]}| }||d |k d! }||d |k d" }||t  |d  }||  ||d  }d| t }t fd#d |D }t| }|| }t| | } t| }!|d | |t  }"|!|t d$ < | |t d% < ||t d& < qjt t!d'd  |" D }#|##| td(| t$|d) d*v}$|$%|d+ t&' (d, d- t|  d	 t d
 t| d t| d t| d. t||   d/  W 5 Q R X td0 d S )1Nr*   r   g|=zComposition must sum to 1r   z*Composition and comps must be same length!   z%Running saft-test rho-p with
comps = z, x = z, e = z, s = z, N_T_vals = z
(Y) to confirm.r"   r   rho_p_         g      ?zFinished setting up EOSzdata/VLE_data.xlsxZpvT)r,   skiprowsregionZliquidz (0 = outlier; 
1 = confirmed)TzFinished fetching dataz,Lowest number of data points being used is :c                    s   g | ]} | qS r   r   ).0i)T_valsr   r    
<listcomp>|   s     zrho_p.<locals>.<listcomp>u   ρpc              	      s,   g | ]$   fd dD d qS )c                    s   g | ]}|  qS r   r   )rB   xiZNir   r    rE      s     z$rho_p.<locals>.<listcomp>.<listcomp>r   )Zpressure_tv)rB   )rA   Vr5   r6   rH   r    rE      s     z,rhoz,p_dataz,p_calcc                 S   s   g | ]\}}|t |fqS r   )r/   Series)rB   kvr   r   r    rE      s     zSaved run to :z	/meta.txtaz time : z%d/%m/%Y %H:%M:%Sz	
comps = z, minimum data points = z

zUpdated meta file))abssum
ValueErrorlenr   r%   r   r&   r!   r   r   r   r)   r-   r.   r1   Zset_pure_fluid_paramZredefine_critical_parametersnpsqrtr$   r/   r0   value_countsaxesranger   r
   arrayargsorttolistsort	DataFramedictitemsto_csvopenwriter	   nowstrftime)%r   r   r   N_T_valsr(   r'   ZoutdirZparams1r   Zsigma1Z
eps1_div_kZparams2Zsigma2Z
eps2_div_kr8   r9   paramsr7   Zliq_dfZT_val_countsusing_T_valsZout_dictrC   Zred_TZred_rhoZred_pZp_datarhoNZpred_pZsorted_indssorted_psorted_p_data
sorted_rhoZsorted_red_pZout_dffiler   )rA   rD   rI   r5   r6   r    rho_p7   s    


0






rl   __main__)r-   z#|)r$   	n_importspandasr/   numpyrR   r   r	   scipy.constantsr
   r   matplotlib.pyplotpyplotr2   r!   r)   r+   rl   __name__Zpyctpr-   r   r   r   r    <module>   s,   n