Prévia do material em texto
Termodinaˆmica e Mecaˆnica Estat´ıstica Aluno: Katiane Pereira Maciel - Matr´ıcula: 205968 IF-UFRGS 14 de novembro de 2015 1 MFPT - Mean First Passage Time (Tempo Me´dio de Primeira Passagem) - Objetivo do Trabalho O MFPT fornece a me´dia dos tempos que cada part´ıcula leva para passar por um ponto pela primeira vez. O objetivo e´ calcular o MFPT para N part´ıculas em difusa˜o unidimensional, entre x = 0.0 e x = 1, com ponto de partida em x = 0.5, resolvendo a equac¸a˜o de difusa˜o analiticamente. Uma simulac¸a˜o computacional e´ feita para comparac¸a˜o. 2 Me´todo Equac¸a˜o de difusa˜o: ∂ρ ∂t = D × ∂ 2ρ ∂x2 D = l 2 2τ˜ Condic¸o˜es de contorno: ρ (x = 1, t) = 0 ∂ρ ∂xx=0 = 0 ρ(x, t = 0) = N × δ(x− 0.5) Ca´lculo Anal´ıtico: ρ(x, t) = X(t)T (t) Equac¸a˜o 1: ∂ 2X ∂x2 − λ×X = 0 1 Equac¸a˜o 2: ∂T ∂t − λ×D × T = 0 Para λ ≥ 0, a soluc¸a˜o e´ trivial. Para λ = −k2, k > 0: d2X dx2 = −k2X y2 = −k2 y = ±(ik) dX dx = ±(ikX)∫ dX X = ±(ik) ∫ dx lnX = ±(ikx) X = A exp(ikx) + B exp(−(ikx)) dX dx = Aik exp(ikx)−Bik exp(−(ikx)) dX dx x=0 = (Aik)− (Bik) = 0 A = B X = A cos(kx) X(1) = A cos k = 0 k = (2n+1)pi 2 Xn(x) = An cos[ (2n+1)pix 2xf ] λ = −k2 = −[ (2n+1)pi 2xf ]2 Substituindo λ na equac¸a˜o 2: dTn dt = −D[ (2n+1)pi 2xf ]2Tn∫ dTn Tn = ∫ −D[ (2n+1)pi 2xf ]2dt Tn = Bn exp[−D( (2n+1)pi 2xf )2t] Cn = AnBn ρ(x, t) = ∑ ∞ n=0Cn cos[ (2n+1)pix 2xf ] exp[−D( (2n+1)pix 2xf )2t] ρ(x, 0) = ∑ ∞ n=0Cn cos[ (2n+1)pix 2xf ] = Nδ(x− x0) Fazendo as integrais: Cn = 2N xf cos[ (2n+1)pix0 2xf ] Enta˜o: ρ(x, t) = 2N xf cos[ (2n+1)pix0 2xf ] cos[ (2n+1)pix 2xf ] exp[−D( (2n+1)pix 2xf )2t] O MFPT e´ dado por: τ = 1 N ∫ xf 0 dx ∫ ∞ 0 ρ(x, t)dt τ = 2L 2 Dpi3 ∑ ∞ 0 (−1)n (n+0.5)3 cos[ (n+0.5)pix0 L ] D = (δx) 2 2·δt = 0.0000125 Abaixo um programa em C que calcula, para n part´ıculas, com k inter- valos entre y e L, o tempo de cada uma. #include<stdio.h> #include<math.h> #include<time.h> #include<stdlib.h> int main() { FILE *saida; saida=fopen("mfpt.dat","w"); double x, y, yn, N, n, p, dx, L; int t; printf("Digite os valores do passo, do numero de particulas, do ponto final e do ponto de partida, respectivamente.\n"); scanf("%lf %lf %lf %lf", &dx, &n, &L, &p); srand(time(NULL)); N=0; while(N<n) { x=0; y=p; yn=0; t=0; while (y<=L) { x=(float)rand()/RAND_MAX ; if(x>0.5) { y=y+dx; } else { yn=y-dx; if(y<0) { y=0; } else { y=yn; } } t=t+1; //nu´mero de passos } if (y=L) { fprintf(saida,"%i\n", t); } N=N+1; } fclose(saida); return(0); } Programa que calcula o resultado anal´ıtico para L=1, D=0.0000125, ponto inicial=0.5 e 10000 part´ıculas. A me´dia foi calculada pelo QtiPlot, assim como o gra´fico em histograma. #include<math.h> #include<stdio.h> #include<stdlib.h> main() { double tau; int N,i; N = 10000; tau = 0; for(i=0;i<=N;i++) { tau = tau + cos((i+0.5)*M_PI*0.5)*pow(-1,i)*(1/pow((i+0.5),3)); //xo=0.5, L=1 } tau = tau*2*1/((0.0000125)*pow(M_PI,3)); //L=1, D=0.0000125 printf("%lf \n",tau); } 3 Resultados Usando n=10000, k=200, dx=0.005, L=1, y=0.5, a me´dia ficou em 30600,4622 pela simulac¸a˜o. O resultado anal´ıtico resultou em 30000.0000. O gra´fico resultou em: N ú m e r o d e C a m in h a n t e s Número de Passos Figura 1: Gra´fico do nu´mero de passos pelo nu´mero de part´ıculas.