Anterior

Equilibrio térmico

Cuando dos cuerpos a distinta temperatura, se ponen en contacto térmico, intercambiarán energía hasta que ambos alcancen el equilibrio térmico. Equilibrio significa que aunque los dos cuerpos puedan intercambiar energía a nivel microscópico, dicho intercambio tiene lugar en ambas direcciones, no habiendo en promedio intercambio neto en ninguna de las dos.

FIG18_04.gif (2530 bytes)

Cuando un sistema de N1 partículas que está a la temperatura T1, se pone en contacto con otro sistema de N2 partículas que está a la temperatura T2, la temperatura de equilibrio se obtiene mediante la fórmula

T eq = N 1 T 1 + N 2 T 2 N 1 + N 2

Teniendo en cuenta que la temperatura es la energía media de cada partícula, por tanto, N1·T1 será la energía total del subsistema A, y N2·T2 será la energía total del subsistema B. La energía media de cada partícula del sistema será la suma de las energías del subsistema A más la del subsistema B, dividido por el número total de partículas. El caso más sencillo, es aquel en el que ambos subsistemas cuentan con igual número de partículas, la temperatura de equilibrio se reduce a una media aritmética de las temperaturas iniciales de ambos.

T eq = T 1 + T 2 2

El mecanismo para que se produzca la transferencia de energía del sistema de mayor al de menor temperatura no es otro que los choques entre pares de moléculas a través de la pared común. Por desconocimiento de los detalles de las moléculas intervinientes, y de los átomos mediadores de la pared, no podemos determinar los cambios de energía que experimentan las moléculas después de la interacción. Podemos suponer que la energía total inicial de ambas moléculas antes de interaccionar, se reparte al azar entre las dos moléculas después de la interacción. Esto preserva la condición de sistema asilado, y por tanto, la suma de la energía de los subsistemas interaccionantes ha de permanecer constante.

El modelo de interacción entre las partículas de ambos subsistemas es el siguiente:

E i ' = E T γ E j ' = E T E i '

siendo γ un número aleatorio uniformemente distribuido en el intervalo [0, 1).

Por tanto, en cada choque el subsistema A cambia su energía en E'i -Ei, y el subsistema B en E'j -Ej, siendo ambos cambios iguales y opuestos. La energía media, es decir, la temperatura, del subsistema A y B cambian en cada choque

Δ T 1 = E i ' E i N 1 Δ T 2 = E j ' E j N 2

También hay choques entre las moléculas del propio subsistema que hacen que evolucione hacia una situación de equilibrio térmico en el cual las partículas se distribuyen entre los estados de energía accesibles de acuerdo con la ley de Boltzmann. Ahora bien, aquí solamente estamos interesados en el mecanismo de transferencia de energía entre los dos subsistemas a distinta temperatura y no en el equilibrio térmico de cada subsistema individual.

La clase que describe el sistema físico

Definiremos una clase que denominaremos, Termico, con los miembros dato, el número N1 de moléculas en el subsistema A, y su temperatura T1, el número N2 de moléculas en el recipiente B, y su temperatura T2 y el tiempo t. Además, necesitamos dos arrays energia1 y energia2 uno para cada subsistema que guardarán en sus elementos las energías de cada una de sus partículas. Una función miembro denominada evolucion determina la temperatura de cada subsistema en función del tiempo, de acuerdo con el resultado de los sorteos de una variable aleatoria γ uniformemente distribuida en el intervalo [0, 1).

En el constructor crea dos arrays, energia1 y energia2 y establece el estado inicial de cada subsistema, asigna a las partículas del subsistema A, una energía inicial igual a la temperatura T1, y asigna a las partículas del subsistema B una energía inicial igual a T2. Finalmente, pone el contador de tiempo t a cero.

Si T1 y T2 son miembros dato privados, declaramos y definimos dos funciones miembro públicas getTemperatura1 y getTemperatura2 que devuelven los valores de las temperaturas de cada uno de los dos subsistemas después de ponerlos en contacto térmico.

public class Termico {
    private int N1;
    private int N2;
    private double T1;
    private double T2;
    private double[] energia1;
    private double[] energia2;
    private int t;  //tiempo

    public Termico(int N1, int N2, double T1, double T2) {
        this.N1=N1;
        this.N2=N2;
        this.T1=T1;
        this.T2=T2;
        energia1=new double[N1];
        energia2=new double[N2];
//energía de las partículas de cada subsistema
        for(int i=0; i<N1; i++){
            energia1[i]=T1;
        }
        for(int i=0; i<N2; i++){
            energia2[i]=T2;
        }
        t=0;
    }
    public double getTemperatura1(){return T1;};
    public double getTemperatura2(){return T2;};

//otras funciones miembro
}

La función miembro evolucion calcula la temperatura de cada subsistema cada cierto intervalo de tiempo dt, considerando una unidad de tiempo la realización de un sorteo. En primer lugar, se elige al azar una partícula i del subsistema A, y una partícula j del subsistema B.

            i=(int)(Math.random()*N1);
            j=(int)(Math.random()*N2);

Se las hace interaccionar, de modo que la energía después de la interacción de cada una de las dos partículas se reparte de acuerdo al modelo anteriormente expuesto. En la variable local Ea se guarda la energía de la partícula i después de la interacción, y en la variable Eb, la energía de la partícula j después de la interacción.

            Et=energia1[i]+energia2[j];
            Ea=Math.random()*Et;
            Eb=Et-Ea;

La variación de energía del subsistema A como consecuencia de la interacción será Ea- energia1[i], y el cambio en la energía media de las partículas del subsistema A, es decir, de la temperatura T1.

            T1+=(Ea-energia1[i])/N1;

La misma argumentación se emplea para el subsistema B. Un subsistema pierde energía que gana el otro subsistema en cada una de las interacciones. Finalmente, las nuevas energías de las partículas interaccionates se guardan en sus respectivos elementos i y j de los arrays energia1 y energia2.

            energia1[i]=Ea;
            energia2[j]=Eb;

Se repite el proceso durante dt unidades de tiempo antes de proceder a una nueva observación del sistema. El código completo de la función miembro evolucion es

    public void evolucion(int dt){
        double Et, Ea, Eb;
        int i, j;
        for(int k=0; k<dt; k++){
            i=(int)(Math.random*N1);
            j=(int)(Math.random*N2);
            Et=energia1[i]+energia2[j];
            Ea=Math.random()*Et;
            Eb=Et-Ea;
            T1+=(Ea-energia1[i])/N1;
            T2+=(Eb-energia2[j])/N2;
            energia1[i]=Ea;
            energia2[j]=Eb;
        }
        t+=dt;
    }

Para usar la clase Termico, se crea un objeto termo y se le pasa al constructor cada uno de los subsistemas interaccionantes A y B, es decir, el número de partículas y la temperatura inicial de cada uno de ellos.

Fijamos el intervalo de tiempo dt entre observaciones consecutivas, y examinamos la evolución de la temperatura de cada subsistema llamado desde el objeto termo a la función miembro evolucion.

        int dt=20;       //observar cada 20 unidades de tiempo
//partículas
        int N1=100;
        int N2=200;
//temperaturas
        double T1=100;
        double T2=10;
        Termico termo= new Termico(N1, N2, T1, T2);
        System.out.println("tiempo \t T1 \t T2");
        for(int i=1; i<20; i++){
            termo.evolucion(dt);
            System.out.println(" "+i*dt+ " \t "+
(double)Math.round(100*termo.getTemperatura1())/100+ " \t"+(double)Math.round(100*termo.getTemperatura2())/100); }

Ejercicio

Definir el sistema A compuesto de 100 partículas y con una temperatura inicial de 100 grados, y el subsistema B compuesto por 100 partículas y con una temperatura inicial de 10 grados, observar la temperatura de ambos subsistemas depués de ponerlos en contacto, cada 20 unidades de tiempo.

Observaremos que hay una transferencia de energía del subsistema que tiene más temperatura hacia el subsistema que tiene menor temperatura hasta que se alcanza el equilibrio térmico en el que las temperaturas de ambos subsistemas son casi las mismas. Podemos comprobar mediante ejemplos, que el flujo de calor no se establece desde el subsistema que tiene más energía al que tiene menos sino, desde el que tiene mayor temperatura al que tiene menor temperatura.

Cuando los subsistemas tienen un número pequeño de partículas, se alcanza una temperatura que fluctúa en torno a la de equilibrio, las fluctuaciones como podemos comprobar disminuyen al incrementarse el número de partículas. Al principio, tendremos un flujo neto de energía del sistema de mayor al de menor temperatura, pero cuando se alcanza una situación próxima al equilibrio, los intercambios de energía se producen en ambas direcciones, sin que exista un intercambio neto de energía en un intervalo grande de tiempo.

Anterior