You are on page 1of 13

Universidad Simn Bolvar Departamento de Fsica Fsica Estadstica I (FS-4111)

EVOLUCIN DE GASES HOMOGNEOS CON REDUCIDO NMERO DE PARTCULAS

Alumno: Jos Mielgo Carnet:07-41218

Agosto 2011

INTRODUCCION En el presente escrito se mostrarn algunas propiedades de gases confinados en una caja bidimensional. Para ello se hicieron las siguientes consideraciones: 1. Las partculas del gas son adimensionales. 2. El nmero de partculas es reducido (de 10 a 40 partculas) 3. La interaccin entre las partculas es por medio del potencial de Lennard-Jones:

4. Todos los parmetros del potencial son igualados a uno. 5. Para integrar las ecuaciones de movimiento se emplea el algoritmo de Vernet. Lo que se verificar en el trabajo ser: 1. Analizar cualitativamente la dependencia del tiempo de relajacin de un sistema con respecto a su dimensin y condiciones iniciales. 2. Observar cualitativamente la evolucin del sistema. 3. Corroborar la validez de la ley cero de la termodinmica*

1. DEPENDENCIA DEL TIEMPO DE RELAJACION DE UN SISTEMA CON RESPECTO A LA DIMENSION DEL MISMO.

En la grfica 1 se observa las curvas obtenidas por medio de simulaciones en C:

Grfica 1: der-izq se refiere a la diferencia entre la cantidad de partculas que se encuentran de un lado u otro de la caja, y en la grfica se evidencia su evolucin temporal.

A pesar de que se observa de no evidenciarse notablemente una diferencia entre el tiempo caracterstica de cada sistema, es notable como la pendiente es ms pronunciada a medida que aumenta la cantidad de partculas.

2. EVOLUCION DE SISTEMA Y DEPENDENCIA DEL TIEMPO DE RELAJACION CON LAS CONDICIONES INICIALES.
A continuacin se presentan una serie de grficas que corresponden a la evolucin de un sistema de 20 partculas con una distribucin aleatoria de velocidades.

Gas de 20 Partculas a t=0


100 80
60

40 20 0 -100 -50
-20 0 -40

50

100

-60 -80
-100

Grafico 2: Gas de 20 Partculas a t=0

Gas de 20 Partculas a t=1000


100
80 60

40 20
0

-100

-50

-20 0

50

100

-40 -60 -80


-100

Grfico 3: Gas de 20 Partculas a t=1000

Gas e 20 artc las a t=2000


100 80

60 40
20 0

-100

-50

-20 0 -40 -60


-80

50

100

-100

Grfico 4: Gas de 20 Partculas a t=2000. Ahora se procede a compararlo con un gas de 20 partculas pero con 19 partculas con el mismo momento lineal inicial y una partcula con un momento lineal distinto.

Gas e 20 artc las a t=0 (mismo momento lineal inicial)


100 50

0
-100 -50 0 50 100

-50

-100 Grfico 5: Gas de 20 Partculas a t=0 con el mismo momento lineal inicial

Gas e 20 artc las a t=1000 ( ismo mome to lineal inicial)


100 50

-100

-50
-50

50

100

-100 Grfico 6: Gas de 20 Partculas a t=1000 con el mismo momento lineal inicial

Gas e 20 artc las a t=2000 (mismo momento lineal inicial)


100 50

0
-100 -50 0 50 100

-50

-100 Grfico 7: Gas de 20 Partculas a t=2000 con el mismo momento lineal inicial

Evidentemente, el tiempo de relajacin es mayor en el segundo caso pues an el sistema no alcanza el equilibrio en estas condiciones. Ahora, se efecta el mismo procedimiento pero esta vez para un sistema con 40 partculas.

Gas e 40 artc las a t=0


100 80

60 40
20 0

-100

-50

-20 0 -40 -60


-80

50

100

-100 Grfico 8: Gas de 40 Partculas a t=0.

Gas e 40 partc las a t=1000


100

80 60 40
20

0
-100 -50

-20 0 -40
-60 -80

50

100

-100 Grfico 9: Gas de 40 Partculas a t=1000.

Gas e 40 artc las a t=2000


100 80

60 40
20 0

-100

-50

-20 0 -40 -60


-80

50

100

-100 Grfico 10: Gas de 40 Partculas a t=2000.

Ahora para partculas con el mismo momento lineal (menos una)

Gas e 40 Partc las a t=0


(mismo momento lineal inicial)
100 80 60 40 20 0 -100 -80 -60 -40 -20 -20 -40 -60 -80 -100 0 20 40 60 80 100

Grfico 11: Gas de 40 Partculas a t=0 con el mismo momento lineal inicial

Gas e 40 artc las a t=1000


(mismo momento lineal inicial)
100 80 60 40
20

0 -100 -80 -60 -40 -20 -20 -40 -60 -80 -100 0 20 40 60 80 100

Grfico 12: Gas de 40 Partculas a t=1000 con el mismo momento lineal inicial

Gas e 40 artic las a t=2000


(con el mismo momento lineal inicial)
100 80 60
40

20 0 -100 -50 -20 -40 -60 -80 -100 0 50 100

Grfico 13: Gas de 40 Partculas a t=2000 con el mismo momento lineal inicial.

En este caso el cambio en las condiciones iniciales no afecta mucho la evolucin del sistema. El ltimo caso no se muestra en este escrito, pues se el tiempo de corrida es sumamente alto y se debi hacer una correccin asociada a la interaccin entre las partculas.

Cdigo Para el sistema que Evoluciona

#include <stdio.h> #include <math.h> #include <stdlib.h> #define N 40 // numero de particulas #define sigma 1 // longitud caracteristica del potencial #define epsilon 1 // energia caracteristica del potencial #define M 1 // masa de cada particula #define L 100 // longitud del sistema. N/L es la densidad double F_ijy(double x[N],double y[N],int i,int j); // fuerza entre dos particulas en y double F_ijx(double x[N],double y[N],int i,int j); // fuerza entre dos particulas en x double FTix(double x[N],double y[N],int i); // fuerza total sobre una particula en x double FTiy(double x[N],double y[N],int i); // fuerza total sobre una particula en y double Epot_ij(double x[N],double y[N],int i,int j); // energia potencial de dos particulas double Epot(double x[N],double y[N]); double Ecin(double vx[N],double vy[N]); void Actualizar(double h,double x[N],double y[N],double vx[N],double vy[N],double ax[N],double ay[N],double a2x[N],double a2y[N]); void condIniciales(double x[N],double vx[N],double y[N],double vy[N]); main(){ double x[N],y[N],vx[N],vy[N],ax[N],a2x[N],ay[N],a2y[N],h,K,U,E; int n,Pasos,i; FILE *fp1,*fp2,*fp3,*fp4,*fp5,*fp6,*fp7,*fp8,*fp9,*fp10; h=0.00207; fp1=fopen("molecular2D1.dat","w"); fp2=fopen("molecular2D2.dat","w"); fp3=fopen("molecular2D3.dat","w"); fp4=fopen("molecular2D4.dat","w"); fp5=fopen("molecular2D5.dat","w"); fp6=fopen("molecular2D6.dat","w"); fp7=fopen("molecular2D7.dat","w"); fp8=fopen("molecular2D8.dat","w"); fp9=fopen("molecular2D9.dat","w"); fp10=fopen("molecular2D10.dat","w"); condIniciales(x,vx,y,vy); Pasos=1000000; for(n=0;n<Pasos;++n){

Actualizar(h,x,y,vx,vy,ax,ay,a2x,a2y); if(n==0){ for(i=0;i<N;++i)fprintf(fp1,"%lf %lf\n",x[i],y[i]); } if(n==100000){ for(i=0;i<N;++i)fprintf(fp2,"%lf %lf\n",x[i],y[i]); } if(n==200000){ for(i=0;i<N;++i)fprintf(fp3,"%lf %lf\n",x[i],y[i]); } if(n==300000){ for(i=0;i<N;++i)fprintf(fp4,"%lf %lf\n",x[i],y[i]); } if(n==400000){ for(i=0;i<N;++i)fprintf(fp5,"%lf %lf\n",x[i],y[i]); } if(n==500000){ for(i=0;i<N;++i)fprintf(fp6,"%lf %lf\n",x[i],y[i]); } if(n==600000){ for(i=0;i<N;++i)fprintf(fp7,"%lf %lf\n",x[i],y[i]); } if(n==700000){ for(i=0;i<N;++i)fprintf(fp8,"%lf %lf\n",x[i],y[i]); } if(n==800000){ for(i=0;i<N;++i)fprintf(fp9,"%lf %lf\n",x[i],y[i]); } if(n==999000){ for(i=0;i<N;++i)fprintf(fp10,"%lf %lf\n",x[i],y[i]); } } } // Definicin de Funciones void condIniciales(double x[N],double vx[N],double y[N],double vy[N]){ int i; for(i=0;i<N;++i){ vx[i]=0.1*(2*(double)rand()/RAND_MAX-1); x[i]=L*((double)rand()/RAND_MAX); vy[i]=0.1*(2*(double)rand()/RAND_MAX-1); y[i]=L*(2*(double)rand()/RAND_MAX-1); } } void Actualizar(double h,double x[N],double y[N],double vx[N],double vy[N],double ax[N],double ay[N],double a2x[N],double a2y[N]){ int i; for(i=0;i<(N);++i) ax[i]=FTix(x,y,i)/M; // calculamos fuerza total/M for(i=0;i<(N);++i) x[i]+=vx[i]*h+0.5*ax[i]*h*h; // Verlet for(i=0;i<(N);++i) a2x[i]=FTix(x,y,i)/M; // aceleracion en n+1

for(i=0;i<(N);++i) vx[i]+=0.5*(ax[i]+a2x[i])*h; // Verlet for(i=0;i<(N);++i){ if(sqrt(x[i]*x[i])>=L){ x[i]=L;vx[i]=-vx[i]; } } for(i=0;i<(N);++i) ay[i]=FTiy(x,y,i)/M; // calculamos fuerza total/M for(i=0;i<(N);++i) y[i]+=vy[i]*h+0.5*ay[i]*h*h; // Verlet for(i=0;i<(N);++i) a2y[i]=FTiy(x,y,i)/M; // aceleracion en n+1 for(i=0;i<(N);++i) vy[i]+=0.5*(ay[i]+a2y[i])*h; // Verlet for(i=0;i<(N);++i){ if(sqrt(y[i]*y[i])>=L){ y[i]=L;vy[i]=-vy[i]; } } } double F_ijx(double x[N],double y[N],int i,int j){ // fuerza entre dos particulas en x double r=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); return((24*epsilon/r)*((2*pow(sigma/r,12)-pow(sigma/r,6))*(x[i]-x[j])/r));//(x[i]-x[j])/r es el coseno del angulo } double F_ijy(double x[N],double y[N],int i,int j){ // fuerza entre dos particulas en y double r=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); return((24*epsilon/r)*((2*pow(sigma/r,12)-pow(sigma/r,6))*(y[i]-y[j])/r));//(y[i]-y[j])/r es el seno del angulo } double FTix(double x[N],double y[N],int i){ // fuerza total sobre una particula en x int j; double f=0; for(j=0;j<N;++j) if(j!=i) f+=F_ijx(x,y,i,j); return(f); } double FTiy(double x[N],double y[N],int i){ // fuerza total sobre una particula en y int j; double f=0; for(j=0;j<N;++j) if(j!=i) f+=F_ijy(x,y,i,j); return(f); } double Epot_ij(double x[N],double y[N],int i,int j){ // energia potencial asociada a dos particulas double r=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); return(4*epsilon*(pow(sigma/r,12)-pow(sigma/r,6))); } double Epot(double x[N],double y[N]){ // energia potencial del sistema int i,j; double U=0; for(i=0;i<(N-1);++i) for(j=i+1;j<N;++j) U+=Epot_ij(x,y,i,j); return(U);

} double Ecin(double vx[N],double vy[N]){ // energia cintica del sistema int i; double K=0; for(i=1;i<(N-1);++i) K+=0.5*M*(vx[i]*vx[i]+vy[i]*vy[i]); return(K); } //+2*pow(sigma/sqrt((sqrt(x[i]*x[i])-L)*(sqrt(x[i]*x[i])-L)),12)

You might also like