Table des matières Scilab

Production d'entropie dans la diffusion thermique

1. Bilan d'entropie

1.a. Production d'entropie locale

On considère la conduction thermique dans un solide, en se limitant au cas d'un système à une dimension rectiligne. On suppose que le seul processus irréversible ayant lieu est la conduction (ou diffusion) thermique. L'équation de diffusion thermique est dans ce cas :

Tt=D2Tx2

Le coefficient de diffusion thermique est

D=λρc

Le bilan d'entropie local repose sur l'hypothèse d'équilibre thermodynamique local. Si u(x,t) et s(x,t) désignent respectivement l'énergie interne et l'entropie volumiques, la relation suivante valable à l'équilibre est appliquée localement :

du=Tds-Pdv

Dans le cas d'un solide, on néglige la variation de volume. On obtient donc :

ut=Tst

En utilisant l'équation locale de conservation de l'énergie, on obtient :

Tst=-jx

Effectuons à présent un bilan d'entropie pour le volume compris entre x et x+dx (section d'aire A), entre les instants t et t+dt.

stAdxdt=j(x)T(x)Adt-j(x+dx)T(x+dx)Adt+σsAdxdt

Les deux premiers termes de droite sont les entropies échangées respectivement à la frontière x et x+dx. Le troisième terme est la production d'entropie.

On obtient ainsi la forme locale du second principe :

st=-x(jT)+σs

avec un taux volumique de production d'entropie positif, ou nul à l'équilibre :

σs0

En associant ce résultat à l'équation obtenue plus haut, on obtient :

σs=jx(1T)

Le taux de production d'entropie s'exprime ainsi comme le produit d'un flux par la force thermodynamique correspondante.

Avec la loi de Fourier, le taux volumique de production d'entropie s'écrit :

σs=λT2(Tx)2

1.b. Bilan d'entropie intégré sur le temps

Le transfert thermique (par unité de surface) sur un plan d'abscisse x entre l'instant 0 et l'instant t s'écrit :

Q(t)=0t-λTxdt

L'entropie échangée (par unité de surface) sur cette surface est

Se(t)=0t-λTTxdt

La densité d'entropie produite à cette abscisse (par unité de volume) est

Sp(t)=0tλT2(Tx)2dt

Pour les calculs numériques, on divisera par ρ c pour utiliser directement le coefficient de diffusion D.

2. Calcul numérique

La méthode de résolution numérique de l'équation de diffusion est exposée ici et implémentée avec scilab ici.

La fonction Scilab définie ci-dessous effectue la résolution de l'équation de diffusion (sans sources) par le schéma implicite de Crank-Nicholson. Elle fait en plus le calcul, en tout point, du transfert thermique, de l'entropie échangée et de la densité d'entropie produite entre l'instant 0 et l'instant t.

Télécharger

function [T,t,Q,Se,Sp]=diffusion(N,type0,lim0,type1,lim1,coef,T,t,Q,Se,Sp,dt,tf)
    dx=1/(N-1)
    A=spzeros(N,N)
    B=spzeros(N,N)
    a=2*dt/dx^2
    nd=size(coef)
    nd=nd(1)
    D = zeros(N) // coefficients de diffusion
    j1=1
    for k=1:nd,
        j2 = int(coef(k,1)*N)
        d = coef(k,2)
        for j=j1:j2,
            D(j)=d
        end
        j1 = j2
    end
    for j=2:N-1, // schema de Crank-Nicholson
        A(j,j-1)=-a*D(j)/2; B(j,j-1)=a*D(j)/2;
        A(j,j)=1+a*D(j); B(j,j)=1-a*D(j);
        A(j,j+1)=-a*D(j)/2; B(j,j+1)=a*D(j)/2;
    end;
    if type0=="dirichlet" then
        A(1,1)=1;
        A(1,2)=0;
        C(1)=lim0;
    end
    if type0=="neumann" then
        A(1,1)=-1;
        A(1,2)=1;
        C(1)=dx*lim0;
    end
    if type1=="dirichlet" then
        A(N,N-1)=0;
        A(N,N)=1;
        C(N)=lim1;
    end
    if type1=="neumann" then
        A(N,N)=1;
        A(N,N-1)=-1;
        C(N)=dx*lim1;
    end
    for k=1:nd-1,
        j = int(coef(k,1)*N)-1 // frontiere entre deux coefficients de diffusion differents
        A(j,j-1)=-D(j); A(j,j)=D(j)+D(j+1); A(j,j+1)=-D(j+1);
        B(j,j-1)=0; B(j,j)=0; B(j,j+1)=0; C(j)=0;
    end
    while t<tf // boucle de calcul
        T = lusolve(A,B*T);
        for j=1:N-1
            q = -D(j)*(T(j+1)-T(j))*dt/dx;
            Q(j) = Q(j) + q;
            Se(j) = Se(j) + q/T(j);
            Sp(j) = Sp(j) + (T(j+1)/T(j)-1)^2*D(j)*dt/dx;
        end
        t = t+dt
    end
endfunction
            

3. Exemples

3.a. Échange thermique entre deux corps

Le premier corps est initialement chaud, de température T=2 et s'étend sur l'intervalle [0,0.99]. Le deuxième est initialement froid, de température T=1; il est beaucoup plus petit puisqu'il s'étend sur l'intervalle [0.99,1]. L'ensemble est isolé donc les conditions limites en x=0 et x=1 sont de type Neumann, avec un flux nul.

getf('diffusionThermique1D.sci');
N=2000;
T=ones(N,1); 
X=linspace(0,1,N).';
for j=1:int(N*0.99),
    T(j)=2;
end;
coef=[[1,1]];
xa=0; xb=0.99;
t=0; Q=zeros(N,1); Se=zeros(N,1); Sp=zeros(N,1);
[T1,t,Q1,Se1,Sp1]=diffusion(N,'neumann',0,'neumann',0,coef,T,t,Q,Se,Sp,1e-9,1e-7);
[T2,t,Q2,Se2,Sp2]=diffusion(N,'neumann',0,'neumann',0,coef,T1,t,Q1,Se1,Sp1,1e-8,1e-6);
[T3,t,Q3,Se3,Sp3]=diffusion(N,'neumann',0,'neumann',0,coef,T2,t,Q2,Se2,Sp2,1e-7,1e-5);
[T4,t,Q4,Se4,Sp4]=diffusion(N,'neumann',0,'neumann',0,coef,T3,t,Q3,Se3,Sp3,1e-6,1e-4);
[T5,t,Q5,Se5,Sp5]=diffusion(N,'neumann',0,'neumann',0,coef,T4,t,Q4,Se4,Sp4,1e-5,1e-3);
[T6,t,Q6,Se6,Sp6]=diffusion(N,'neumann',0,'neumann',0,coef,T5,t,Q5,Se5,Sp5,1e-4,1e-2);
[T7,t,Q7,Se7,Sp7]=diffusion(N,'neumann',0,'neumann',0,coef,T5,t,Q6,Se6,Sp6,1e-3,1e-1);
             

Profils de température au voisinage de la frontière x=0.99

plotA=scf();

rct=[0.9,1,1,2];
plot2d(X,T1,style=4,rect=rct)
plot2d(X,T2,style=5,rect=rct)
plot2d(X,T3,style=6,rect=rct)
plot2d(X,T4,style=9,rect=rct)
plot2d(X,T5,style=13,rect=rct)
plot2d(X,T6,style=15,rect=rct)
plot2d(X,T7,style=17,rect=rct)
xsegs([0.99,0.99],[1,2])
plotA.children.x_label.text='x';
plotA.children.y_label.text='T';
legends(['t=1e-7','t=1e-6','t=1e-5','t=1e-4','t=1e-3','t=1e-2','t=0.1'],[4,5,6,9,13,15,17])
             
plotA.pngplotA.pdf

On constate que la température finale est très proche de la température initiale du grand corps (T=2). Celui-ci se comporte vis à vis du petit comme un thermostat.

Échange thermique et entropie échangée au début (t=1e-7) et à la fin de la transformation (t=0.1) :

plotB=scf();

rct=[0,0,1,0.01]
plot2d(X,Q7,style=5,rect=rct)            
plot2d(X,Se7,style=9,rect=rct)
plotB.children.x_label.text='x';
legends(['Q','Se'],[5,9])
             
plotB.pngplotB.pdf

On remarque que les transferts thermiques, et les transferts d'entropie associés, ont lieu dans la totalité du système. L'examen des profils de température peut laisser croire que le gradient de température est beaucoup plus important près de la frontière; en fait ceci n'est vrai que pendant un temps très court. Intégré entre l'instant initial et l'instant final, le transfert thermique passe par un maximum puis décroît lentement lorsqu'on s'éloigne de la frontière.

Détail au voisinage de la frontière :

plotC=scf();

plot2d(X,Q7,style=5,rect=[0.8,0,1,0.01])
plot2d(X,Se7,style=9,rect=[0.8,0,1,0.01])
xsegs([0.99,0.99],[0,0.01])
plotB.children.x_label.text='x';
legends(['Q','Se'],[5,9])
             
plotC.pngplotC.pdf

Voyons le déroulement dans le temps du transfert thermique au voisinage de la frontière :

plotC1=scf();

rct=[0.8,0,1,0.01]
plot2d(X,Q1,style=4,rect=rct)
plot2d(X,Q2,style=5,rect=rct)
plot2d(X,Q3,style=6,rect=rct)
plot2d(X,Q4,style=9,rect=rct)
plot2d(X,Q5,style=13,rect=rct)
plot2d(X,Q6,style=15,rect=rct)
plot2d(X,Q7,style=17,rect=rct)
xsegs([0.99,0.99],[0,0.01])
plotC1.children.x_label.text='x';
plotC1.children.y_label.text='Q';
legends(['t=1e-7','t=1e-6','t=1e-5','t=1e-4','t=1e-3','t=1e-2','t=0.1'],[4,5,6,9,13,15,17])
             
plotC1.pngplotC1.pdf

Entropie produite :

plotD=scf();

rct=[0.95,0,1,1e-4];
plot2d(X,Sp1,style=4,rect=rct)
plot2d(X,Sp2,style=5,rect=rct)
plot2d(X,Sp3,style=6,rect=rct)
plot2d(X,Sp4,style=9,rect=rct)
plot2d(X,Sp5,style=13,rect=rct)
plot2d(X,Sp6,style=15,rect=rct)
plot2d(X,Sp7,style=15,rect=rct)
xsegs([0.99,0.99],[0,1e-4])
plotD.children.x_label.text='x';
plotD.children.y_label.text='Sp';
legends(['t=1e-7','t=1e-6','t=1e-5','t=1e-4','t=1e-3','t=1e-2','t=0.1'],[4,5,6,9,13,15,17])
             
plotD.pngplotD.pdf

L'entropie est produite principalement dans le petit corps et dans le thermostat au voisinage de la frontière. On constate aussi qu'une part importante de la production d'entropie se fait au début de la transformation : à partir de t=1e-4, la production d'entropie est très faible par rapport à la production totale.

Dans le cas d'un échange thermique avec un thermostat, il est d'usage d'écrire l'entropie échangée sous la forme :

Se=QT0

T0 est la température du thermostat.

Pour vérifier cette égalité, on trace le rapport suivant

r=QT0Se

T0 est la température en x=0 à la fin de la transformation.


r=zeros(N,1);
for j=int(N*0.5):int(N*0.99),
    r(j)=Q7(j)/(T7(1)*Se7(j));
end        
             
plotE=scf();

plot2d(X,r,style=5,rect=[0.5,0,1,1])
xsegs([0.99,0.99],[0,1])
plotE.children.x_label.text='x';
plotE.children.y_label.text='r';
            
plotE.pngplotE.pdf

On constate que la relation n'est valable que si on l'applique sur une surface située assez loin de la frontière, à un endroit où la production d'entropie est négligeable. Appliquée à la frontière du corps (x=0.99), l'erreur commise est de l'ordre de 15 pour cent. On peut aussi évaluer la température moyenne de la frontière, que l'on définit par :

Tm=QSe

où le transfert thermique et l'entropie échangée sont évalués à la frontière :

j=int(0.99*N); Tm=Q7(j)/Se7(j)
1.6571401 

valeur nettement inférieure à la température du thermostat.

Creative Commons LicenseTextes et figures sont mis à disposition sous contrat Creative Commons.