#%% 0. Imports
import numpy as np
import matplotlib.pyplot as plt

# Constantes necessárias para Clausius-Clapeyron
Lv = 2.5e6         # J/kg
Rv = 461.0         # J/(kg K)
T0 = 273.15        # K
es0 = 610.7        # Pa

# Intervalo de temperaturas (K)
T = np.linspace(273.15-15, 273.15+30, 1000)  # -23 ºC a 100 ºC

# Plot da temperatura
es = es0 * np.exp( (Lv/Rv) * (1/T0 - 1/T) )
plt.plot(T-273.15, es)
plt.vlines(0, es0, 5000, ls='--', color='k')

# #### EX2
# Ti1   = 25    # degC
# RHi1  = 63    # %
# e1 = es0 * np.exp( (Lv/Rv) * (1/T0 - 1/(Ti1+273.15)) ) * RHi1/100
# Tf1   = 15    # degC
# plt.plot([Ti1,Tf1],[e1, e1], lw=2.5, marker='o', markeredgecolor='black')

# Ti2   = 10    # degC
# RHi2  = 40    # %
# e2 = es0 * np.exp( (Lv/Rv) * (1/T0 - 1/(Ti2+273.15)) ) * RHi2/100
# Tf2   = -2    # degC
# plt.plot([Ti2,Tf2],[e2, e2], lw=2.5, marker='o', markeredgecolor='black')

plt.xlabel("Temperatura [°C]"); plt.xlim(-15, 30)
plt.ylabel("Tensão de vapor [Pa]"); plt.ylim(0,4500)
plt.text(-11.8,3400,'Sólido', fontsize=18)
plt.text(5,3400,'Líquido', fontsize=18)
plt.text(18,700,'Gasoso', fontsize=18)

plt.title("Diagrama de fases simplificado da água")
plt.grid(ls='--',alpha=0.8)