LP44 : capacités thermiques, descriptions et interprétation
Biblio
- Diu Thermo p248 :capacités, relations de Mayer
- BFR thermo chapitre 7 : capacité thermique, valeurs,
- Physique statistique, Ngô, édition Dunod : théorie cinétique ok,
- Physique statistique, Texier : Diatomique p162, avec un graphe
Courbes sr ce sujet :Lien du PDF
Je verrais bien un plan du type
Aspect thermo
1) Def capacité thermique et ODG
Avec des propriétés, relations de Mayer (Cv-Cp=nR pour GP, Cv=Cp pour liquide) 2) détermination expérimentale
Avec une expérience de calorimétrie
3) Limites et variation avec T
Loi de Dulong et Petit
Transition : ici, on ne s’est pas intéressé à l’aspect microscopique, juste le macro. Donc on a des lois qui ne dépendent pas
II Interprétation micro : cas du GP
1) Gaz parfait mono : théorie cinétique du gaz
Volume V en contact avec un thermostat. Hamiltonien séparable, théorème équirépartition énergie, C=3/2Nk. Possible car V/Λ^3 grand.
Gaz dia : besoin de MQ pour modéliser les nouveaux DDL
2) Gaz parfait dia et modèle quantique
Voir le Texier.
On n’a toujorus pas expliqué l’expérience de Calo et la loi Dulong et Petit
III Capa d’un solide
1) Modèle Einstein
Diu Page 379
Si le temps, gaz de fermions pour les conducteurs?
Code
Un code qui donne les contributions rotation et vibration aux capacités thermiques.
import numpy as np
import matplotlib.pyplot as plt
k=1.38*10**(-23)
#Fonction qui calcule cv_rot avec les 1000 premiers termes de la somme. On peut modifier le nombre de terme choisi
def Cv(Trot,T):
A=0
B=0
C=0
D=0
for l in range(0,1000):
A+=(l*(l+1))**2*(2*l+1)*k*(Trot/T)**2*np.exp(-(Trot/T)*l*(l+1))
B+=(2*l+1)*np.exp(-(Trot/T)*l*(l+1))
C+=l*(l+1)*(2*l+1)*k*Trot*np.exp(-(Trot/T)*l*(l+1))
D+=l*(l+1)*(2*l+1)*Trot/(T**2)*np.exp(-(Trot/T)*l*(l+1))
return (A*B-C*D)/(B**2)/k
T=np.linspace(0.01,2,1000)
C=Cv(1,T)
plt.figure()
plt.plot(T,C)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.xlabel('T/Trot', fontsize=15)
plt.ylabel('Cv/(Nkb)', fontsize=15)
#plt.show()
#Fonciton qui calcule cv_rot obtenus en prenant les 2 premiers termes de la somme dans la fonction de partition
def Capprox(Trot,t):
return 12*(Trot/T)**2*np.exp(-2*Trot/T)
Cprox=Capprox(1,T)
plt.figure()
plt.plot(T,C)
plt.plot(T,Cprox,'red')
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.xlabel('T/Trot', fontsize=15)
plt.ylabel('Cv/(Nkb)', fontsize=15)
plt.legend(['Ordre 1000','Ordre 1'], fontsize=15)
#plt.show()
#Fonction qui calcule cv_vib (résultat exact)
def Cvib(Tvib,T):
return ((Tvib/(2*T))/(np.sinh(Tvib/(2*T))))**2
T=np.linspace(0.01,2,1000)
C2=Cvib(1,T)
plt.figure()
plt.plot(T,C2)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.xlabel('T/Tvib', fontsize=15)
plt.ylabel('Cv/(Nkb)', fontsize=15)
#plt.show()
#Pour la molécule HD
Tvib=5382
Trot=64
T_bilan=np.linspace(1,10**5,10**5)
C3=3/2+Cvib(Tvib,T_bilan)+Cv(Trot,T_bilan)
plt.figure()
plt.semilogx(T_bilan,C3)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.xlabel('T', fontsize=15)
plt.ylabel('Cv/(Nkb)', fontsize=15)
plt.axvline(x=64,color="black")
plt.axvline(x=5382,color="black")
#plt.xscale('log')
plt.show()