# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# + [markdown] deletable=false name="Ent\u00eate, Ph\u00e9nom\u00e8nes d'\u00e9changes 1"
# |<img style="float:left;" src="http://pierreproulx.espaceweb.usherbrooke.ca/images/usherb_transp.gif">|<NAME>, ing, professeur|
# |:---|:---|
# |Département de génie chimique et de génie biotechnologique |** GCH200-Phénomènes d'échanges I **|
# -

# # Chapitre 9

# ## Sections 9.0, 9.1 , voir le résumé ci-dessous.

# http://pierreproulx.espaceweb.usherbrooke.ca/images/Chap9_resume.pdf

# ## Sections 9.2, 9.3 et 9.4: calcul de la conductivité des gaz, des liquides et des mélanges en fonction de la température, de la pression et de la composition.

# #### Thermo est vraiment un package dont la syntaxe objet est très agréable à utiliser, voyez:

import thermo as th
eau=th.Chemical('water')  # les propriétés par défault sont à 1 atm et 25 degrés C
print(eau.kl, eau.kg, eau.mul, eau.mug, eau.rhol, eau.rhog)   # vous voyez la facilité d'utilisation?
eau.calculate(350,101325)
print(eau.kl, eau.kg, eau.mul, eau.mug, eau.rhol, eau.rhog)   # vous voyez la facilité d'utilisation?

eau.calculate(273.15+80,101325*4)  # tout objet créé par Chemical a la méthode calculate... 
eau.kl, eau.kg, eau.mul, eau.mug, eau.rhol, eau.rhog 

# +
import thermo as th
# on utilise thermo pour vérifier quelques valeurs données au tableau 9.1-2
# syntaxe     
#   thermo.Chemical.('substance',T=temperature,P=pression).Prg   # nombre de Prandtl gas
#   thermo.Chemical.('substance',T=temperature,P=pression).Prl   # nombre de Prandtl liquide
#   thermo.Chemical.('substance',T=temperature,P=pression).kg   # conductivité thermique gaz
#   thermo.Chemical.('substance',T=temperature,P=pression).kl   # conductivité thermique gaz
#   th.Mixture([noms des gaz],zs=[fractions],T=temperature,P=pression).kg # conductivité du mélange


for gaz in ['H2','O2','NO','CO2','CH4']:
    for temp in [100,200,300]:
        g=th.Chemical(gaz)
        g.calculate(temp,101325)    # 101325
        print(gaz, ' k à',temp,'K ',g.kg,' W/m-K, Pr',g.Prg)
# -

#
# liquides tableau 9.1-3
#
for liquide in ['pentene','CCl4','diethylether','ethanol','glycerol','water']:
    for temp in [300]:
        l=th.Chemical(liquide)
        l.calculate(temp)
        print(liquide, ' k à',temp,'K ',l.kl,' W/m-K')
        print(liquide, ' mu à',temp,'K ',l.mul,' W/m-K')
        print(liquide, ' Pr à',temp,'K ',l.Prl,' W/m-K')

#
# Calcul de la viscosité de liquides en fonction de T
#
import numpy as np
import matplotlib.pyplot as plt
# %matplotlib inline
temp=np.linspace(273,373,11)
visw=temp.copy()
vise=temp.copy()
i=0
plt.rcParams['figure.figsize'] = 10, 8
eau=th.Chemical('water')
booze=th.Chemical('ethanol')
for t in temp:
    eau.calculate(t)# attention, si je spécifie pas la pression, c'est la dernière valeur
    booze.calculate(t)
    visw[i]=eau.mul
    vise[i]=booze.mul
    i=i+1
p=plt.plot(temp,visw,'r',temp,vise,'b')
plt.xlabel('température')
plt.legend(('water','ethanol'))
plt.ylabel('viscosité, kg/m-s')
plt.show()

# Exemple 9.3-3
melange=th.Mixture(['CO2','O2','N2'],zs=[0.133,0.039,0.828],T=273+20,P=1*101325) # molaire zs
kmix=melange.kg   
print(kmix, ' W/m-K ',kmix*0.00239, 'cal/cm-s-K')

#
# Calcul de la viscosité du mélange eau-éthanol, attention au comportement non-linéaire
#
import numpy as np
import matplotlib.pyplot as plt
# %matplotlib inline
w=np.linspace(0.001,0.999,11)
visew=w.copy()
vispw=w.copy()
i=0
plt.rcParams['figure.figsize'] = 10, 8
for frac in w:
    vispw[i]=th.Mixture(['ethanol','water'],ws=[w[i],1-w[i]],T=273+25).mul
    i=i+1
p=plt.plot(w,vispw,w,vispw)
plt.xlabel('concentration ethanol (fraction massique)')
plt.ylabel('viscosité, kg/m-s')
plt.show()

# <img src='http://pierreproulx.espaceweb.usherbrooke.ca/images/ethanol-eau.gif'>

StarcoderdataJupyterScriptsDedupFiltered