ENSEÑANZA REVISTA MEXICANA DE FÍSICA 56 (1) 41–50 JUNIO 2010 Experimentos numéricos en el aula sobre fenómenos difusivos: difusión anómala en sistemas fı́sicos y biológicos J.F. Rojas y M.A. Morales Fac. de Ciencias Fı́sico Matemáticas, Benemérita Universidad Autónoma de Puebla. Recibido el 4 de junio de 2009; aceptado el 11 de enero de 2010 El fenómeno de la difusión es un tema poco revisado durante la vida estudiantil de casi cualquier fı́sico, del mismo modo que se tocan poco las ecuaciones diferenciales parciales. Todo esto a pesar de que la gran mayorı́a de las ecuaciones de la fı́sica pertenecen a este conjunto. Parte del objetivo del presente trabajo es la motivación al tema mostrando, por un lado, ideas centrales y conceptos relacionados con el fenómeno de la difusión. El otro aspecto consiste en la construcción de un experimento numérico muy simple que permite ver la limitación de la ecuación de difusión de Einstein. El aspecto ¿anómaloÀ de la difusión aparece en sistemas que no son cerrados en general, por ejemplo, los animales en la actividad de forrajeo o la difusión de partı́culas en medios porosos. El experimento numérico propuesto muestra los aspectos súper y subdifusivos que se observan en estos y muchos otros sistemas. Descriptores: Difusión; difusión anómala; fı́sica computacional; python; movimiento Browniano. The diffusion phenomena and the Partial Differential Equations are topics barely reviewed in the undergraduate level of Physics. The main goal of the present work is, precisely, motivate students to study the ubiquitous diffusion phenomena showing the Einstein’s model. In the other hand, we propose a very simple numerical experiment that enables us to see the original diffusion equation limitations. The character of the anomalous diffusion showed in the examples appears, in general, in open systems such as foraging walks in animals or inanimated particles moving in a porous media. The proposed numerical experiment shows the superdiffusive and subdiffusive phenomena. Keywords: Anomalous diffusion; computational physics; python; Brownian motion. PACS: 05.40.Fb, 05.40.-a, 01.50.H-, 01.50.ht 1. Introducción Suele ocurrir que en la licenciatura en fı́sica, tópicos tales como la difusión, entre otros, se tocan, si acaso, de manera tangencial y, por esta razón, nos queremos referir a dos aspectos fundamentalmente en esta discusión: el primero es la posibilidad de abrir el tema y, conceptualmente, asociarlo con otros fenómenos y nuevas áreas de estudio en las que un fı́sico podrı́a participar. Muchos ejemplos pueden ser considerados dado el hecho de que, finalmente, se trata de una ecuación diferencial parcial que es caso particular de muchas otras. De hecho aquı́ discutiremos algunos aspectos del tema que lo llevan más allá: a otras áreas del conocimiento y, por lo mismo, a otro tipo de aplicaciones. El otro aspecto que nos interesa discutir aquı́ tiene que ver con la aplicación de software libre y la posibilidad de implementar, con algoritmos simples, programas que permitan al estudiante el acceso visual y numérico a conceptos y fenómenos que, además de ser de actualidad, son difı́ciles de explicar en una clase de pizarrón. De manera particular nos interesan los lenguajes estilo script, que son mucho menos restrictivos y elaborados para el programador, además de ser mucho más simples en su estructura y con mayores posibilidadesi . Esta idea se encuentra aunada a la posibilidad del uso y reuso de software que haya sido iniciado por otras personas y que, de manera libre, circule entre usuarios que finalmente lo van enriqueciendo cada dı́a sin más interés que el de aportar su tiempo y sus conocimientos en una construcción colectiva útil y flexible. En este caso se trata de unir estos aspectos mediante la construcción de un experimento numérico que, aunado a un lenguaje sencillo de programación estilo script, python [1], y módulos numéricos [2] y gráficos propios del lenguaje [3], permiten hacer un programa que modele la dinámica del movimiento browniano en tres dimensiones [4]. A partir de este modelo se hacen modificaciones o agregados que permiten visualizar los otros aspectos de la difusión: en esto consiste nuestro experimento numérico. Tanto en el mundo natural como en el de la ciencia y en la técnica el fenómeno de la difusión está presente en una gran cantidad de eventos. Las fotocopiadoras e impresoras láser presentan transporte de electrones o ¿huecosÀii en materiales semiconductores amorfos impulsados por un campo eléctrico. En 1975 se demostró que los electrones que se desplazan en medios porosos tienden a ser atrapados por las imperfecciones locales y luego liberados por las fluctuaciones térmicasiii . De hecho presentaban una distribución asimétrica que no coincide con las tı́picas gaussianas. Un mecanismo similar provoca que los contaminantes viajen mucho más lentamente que lo predicho por la difusión clásica en flujos de agua subterránea debido a las imperfecciones de las paredes. Una modificación a la ecuación de difusión podrı́a permitir la determinación del tiempo que los contaminantes en los rı́os tardan en llegar a los lagos o mares, o el tiempo que tarda una epidemia en expandirse a partir de un foco de infeccióniv . Otro mecanismo es el que ocurre cuando las proteı́nas se difunden por las membranas celulares. Este meca- 42 J.F. ROJAS Y M.A. MORALES nismo permite la transmisión de información hacia dentro de las células y, como se ha demostrado experimentalmente, las proteı́nas pasan mucho tiempo atrapadas en el citoesqueleto. Esto ¿retrasoÀ en la dinámica de la difusión producen un fenómeno de difusión ¿lentaÀ, o subdifusión [5]. Un caso opuesto puede ser el vuelo del albatros sobre el mar, que se caracteriza por vuelos en lı́nea recta, largos, interrumpidos por movimientos aparentemente aleatorios localizados [6]. Esta dinámica provoca difusión más ¿rápidaÀ que la predicha clásicamente y se le llama superdifusión [5]. A diferencia de lo que ocurrirı́a en una dinámica de difusión ¿simpleÀ, estas trayectorias pueden pensarse como estrategias óptimas de búsqueda que llevan a las aves a nuevas áreas, en lugar de permanecer cercanas a un mismo sitio. Las trayectorias de los monos araña de la selva de Yucatán, en el proceso de forrajeo, son del mismo tipo que las del albatros: pasos muy largos seguidos de muchos pequeños desplazamientos, de nuevo un paso largo, etc. [7,8]. En otros casos más complejos (donde hay términos relacionados con reacción y/o fuentes o sumideros de sustancia) este término difusivo da origen a patrones como las manchas de la piel de los animales [9] o las formadas por la vegetación en diferentes zonas [10]. 2. Difusión A diferencia de las acuarelas, las pinturas en general no se difunden sobre la superficie donde se colocan. Por lo menos no es evidente ahı́ el fenómeno, que podrı́a pasar en dimensiones espaciales muy pequeñas como para ser percibidas a primera vista. El agua se difunde entre la tierra cuando llueve o cuando regamos una maceta, las sustancias de nuestros alimentos se difunden por todo el cuerpo a través de diferentes etapas, medios y escalas, el café en la leche o viceversa, los iones de sodio y cloro si se separa la sal al entrar en contacto con el agua, las partı́culas ideales de un gas cuando se retira la pared que divide al recipiente. En un trabajo más o menos extenso Einstein demuestra la constitución corpuscular de la materia construyendo una ecuación que describe el movimiento browniano: la ecuación de difusión [11]. Al parecer la forma más famosa o más conocida es la de la ecuación de difusión del calor, ∂T = D∇2 T, ∂t (1) clásica cuando se enseña la técnica de la transformada de Fourier. En la Ec. (1) T es la temperatura y la letra D es un coeficiente de proporcionalidad llamado coeficiente de difusión. Esta ecuación describe la forma en la que la temperatura varı́a espacial y temporalmente en un punto: cómo se difunde a partir de él. Una forma genérica de la ecuación de difusión serı́a la siguiente: ∂u = D∇2 u. (2) ∂t F IGURA 1. Caminata Browniana (izquierda) y trayectorias tı́picas de los albatros y de los monos araña (derecha, llamadas vuelos de Lèvy). La parte de las derivadas parciales tiene un significado fı́sico de conservación: si pensamos que u = u(r, t) es la concentración local de ¿algoÀv , esta ecuación nos dice que si disminuye (o aumenta) esa concentración muy cerca de la posición r, esto se debe a que hay un fenómeno de difusión que corresponde a la variación local (espacial) de la concentración hacia ¿fueraÀ del sitio observado. Hay que recordar que el sı́mbolo del operador de Laplace ∇2 es la ¿abreviaturaÀ de ∇ · ∇, que es la divergencia del gradiente, es decir, ∇2 u = (∇ · ∇)u nos dice cuánto divergevi el campo vectorialvii que representa los cambios espaciales de u en el punto donde se evalúa. Uno se puede imaginar una gota de tinta puesta en papel o en agua. La gota al inicio será un punto grande, digamos que azul, pero a medida que pasa el tiempo una mancha azul cada vez ¿menos azulÀ se va incrementando en tamaño y va cubriendo un área mayor. Este azul representa la concentración u. Existe una relación fenomenológica que establece una relación para el gradiente de concentración local (u en este caso, o T para el caso (1) y la tendencia observada de los flujos (de masa, energı́a, etc.). Esta relación define una densidad de corriente J~ asociada con el hecho de que el movimiento siempre ocurre en la dirección de mı́nima concentración: J~ = −D∇u. (3) De este modo se establece la ecuación de difusión como una ecuación de conservación: en una región infinitesimal, la concentración u disminuye (en el tiempo) si y solamente si parte de la ¿sustanciaÀ sale de la región. Esta relación genérica se conoce como ley de Fick [5] (en el caso de la difusión de calor la relación (3) se llama ley de Fourier). 2.1. El modelo de Einstein Aunque en su trabajo original la intención era otra -de hecho, por ejemplo, establece un criterio para calcular el tamaño de los átomos- veamos un poco de lo que hizo Einstein respecto a la difusión [11]: Vayamos a una consideración más cercana a los movimientos irregulares que resultan del movimiento molecular térmico, y da lugar a la difusión investigada en el parágrafo anteriorviii . Rev. Mex. Fı́s. 56 (1) (2010) 41–50 EXPERIMENTOS NUMÉRICOS EN EL AULA SOBRE FENÓMENOS DIFUSIVOS: DIFUSIÓN ANÓMALA EN SISTEMAS. . . Evidentemente debe suponerse que cada partı́cula ejecuta un movimiento que es independiente de todas las demás partı́culas; los movimientos de una y la misma partı́cula después de diferentes intervalos de tiempo deben ser considerados como procesos mutuamente independientes, tanto como pensemos que esos intervalos de tiempo han sido elegidos no muy pequeños. Inroduciremos un intervalo de tiempo τ en nuestra discusión, el cual es muy pequeño comparado con el tiempo total de observación, pero, sin embargo, de tal magnitud que los movimientos ejecutados por una partı́cula en dos intervalos de tiempo τ consecutivos sean considerados como fenómenos mutuamente independientes. Suponga que hay n partı́culas juntas suspendidas en un lı́quido. En un intervalo de tiempo τ las coordenadas x de las partı́culas se incrementarán en ∆, donde ∆ tiene un valor diferente (positivo o negativo) para cada partı́cula. Para el valor de ∆ se cumplirá una cierta ley de probabilidad; el número dn de partı́culas que experimentan en el intervalo τ un desplazamiento que se encuentra entre ∆ y ∆ + d∆, será expresada por una ecuación de la forma Podemos llevar esta expansión bajo el signo de integral, dado que solamente muy pequeños valores de ∆ contribuyen algo a la última. Obtenemos f+ ∂f τ =f ∂t + +∞ Z −∞ ∆2 φ(∆)d∆ . . . 2 −∞ 1 τ −∞ y φ solamente difiere de cero por valores muy pequeños de ∆ y satisface la condición Investigaremos cómo el coeficiente de difusión depende de φ, confinándonos de nuevo al caso donde el número ν de partı́culas por unidad de volumen depende solamente de x y de t. Poniendo el número de partı́culas por unidad de volumen ν = f (x, t), calcularemos la distribución de partı́culas en el instante t + τ a partir de la distribución en el tiempo t. De la definición de funciónix +(A), es fácilmente obtenido el número de partı́culas localizadas en el tiempo t + τ entre dos planos perpendiculares al eje x, con abscicas x y x + dx. Obtenemos +∞ Z f (x, t + τ )dx = dx f (x + ∆, t)φ(∆)d∆. Esta es la bien conocida ecuación diferencial para la difusión, y reconocemos que D es el coeficiente de difusión... Después de un comentario sobre el sistema de coordenadas continúa: Nos referiremos a un sistema de coordenadas cuyo origen coincide en el instante t = 0 con la posición del centro de gravedad de las partı́culas en cuestión; con esta diferencia, lo que f (x, t)dx da es ahora el número de partı́culas cuya coordenada x se ha incrementado entre t=0 y t = t, por una cantidad que está entre x y x + dx. En este caso también la función f debe satisfacer (I)x . Además, debemos tener evidentemente que para x < 0 o x > 0 y t = 0, +∞ Z f (x, t) = 0 y f (x, t)dx = n Ahora, como τ es muy pequeño, podemos poner ∂f (x, t) ∂x −∞ ∆2 φ(∆)d∆ = D 2 ∂f ∂2f = D 2. ∂t ∂x −∞ ∂f f (x, t + τ ) = f (x, t) + τ . ∂t Además podemos expander f (x + ∆, t) en potencias de ∆: +∞ Z y tomando en cuenta solamente el primer y tercer términos del lado derecho, obtenemos, de esa ecuación φ(∆) = φ(−∆). +∆ ∂2f ∂x2 −∞ +∞ Z φ(∆)d∆ = 1 +∞ Z φ(∆)d∆ = 1 2 −∞ En el lado derecho el segundo, cuarto, etc. términos se anulan dado que φ(∆) = φ(−∆); al contrario que los primero, tercero, quinto, etc. términos. Cada término sucesor de otro es muy pequeño comparado su predecesor. Teniendo en mente que donde 2∂ +∞ +∞ Z Z ∂f φ(∆)d∆ + ∆φ(∆)d∆ ∂x y poniendo dn = nφ(∆)d∆, f (x + ∆, t) = f (x, t) + ∆ 43 −∞ El problema, que coincide con el problema de la difusión hacia fuera de un punto (ignorando posibilidades de intercambio entre las partı́culas que se difunden), está ahora completamente definido matemáticamente; la solución es f (x, t) + . . . adı́nf . ∂x2 Rev. Mex. Fı́s. 56 (1) (2010) 41–50 x2 n e− 4Dt √ f (x, t) = √ t 4πD 44 J.F. ROJAS Y M.A. MORALES La distribución de probabilidad de los desplazamientos resultantes en un tiempo t es entonces la misma que la del error fortuito, lo cual era de esperarse... Calcularemos ahora con la ayuda de esta ecuación en desplazamiento λx en la dirección del eje x que experimenta una partı́cula en promedio, o -más precisamente expresadola raı́z cuadrada de la media aritmética de los cuadrados de los desplazamientos en la dirección del eje x, esto es p λx = x2 = √ 2Dt. (4) 2.3. Otras leyes de potencias Una distribución de probabilidad ubicua en la naturaleza y también en fenómenos creados por el hombre (economı́a, literatura, etc.) es la llamada distribución de Pareto o de Lèvy-Pareto [12,13]. Básicamente se trata de una distribución asimétrica, picuda, cuya curva está dada por una ley de potencias de la forma y = x−α (ver Fig. 3), y que tiene una desviación media cuadrática infinita [14]. El desplazamiento medio es entonces proporcional a la raı́z cuadrada del tiempo. En el artı́culo Einstein obtiene una solución para la ecuación ∂f ∂2f = D 2, (5) ∂t ∂x A diferencia del movimiento browniano, como mencionamos arriba, las ¿caminatasÀ de los albatros y de los monos araña, entre otras especies [7,8], no ocurren de manera uniforme. En realidad -como suele pasar en muchı́simos otros fenómenos de la naturaleza- también presentan una ley de potencias: la frecuencia en el tamaño de los desplazamientos satisface una relación como donde f es una función de distribución o densidad de probabilidad. P (λ) ∼ λ−β 2.2. Comportamientos difusivos tα Como dijimos, hay una gran cantidad de ejemplos de fenómenos difusivos en los cuales no se da lo que podrı́amos llamar difusión ¿normalÀ, es decir, en estos fenómenos la relación (4) no se cumple. Esto equivale a decir que la desviación cuadrática media de las posiciones de las partı́culas ya no es lineal con el tiempo transcurrido, esto es, elevando al cuadrado ambos lados de la relación (4) se tiene para tres dimensiones, sustituyendo el desplazamiento x por |R(t) − R(t0 )|, que h|R(t) − R(t0 )|2 i = 2Dt. (8) donde P (λ) es la probabilidad de que uno de los desplazamientos sea de longitud λ, y β es una cantidad que caracteriza la distribuciónxi . Hay que remarcar aquı́ que las caminatas de los albatros y los monos araña, a diferencia del movimiento browniano, no pueden considerarse como caminatas aleatorias por el hecho de que, por un lado, no son partı́culas inanimadas y, por el otro, sus caminatas están condicionadas por la búsqueda de alimento. (6) Sin embargo, en estos fenómenos la relación genérica que prevalece es una ley de potencias de la forma h|R(t) − R(t0 )|2 i ∼ tα . (7) En esta relación R(t) representa la posición de una partı́cula en el instante t. El exponente α suele tener valores diferentes de la unidad y, como suele decirse en el ámbito de los sistemas complejos, hace que la relación sea libre de escala. Esto es, la gráfica log-log de una relación del tipo (7) es una recta que, si cambiamos los coeficientes de cualquiera de las variables (lo cual implicarı́a un cambio en la escala usada), la gráfica seguirá siendo una recta con la misma pendiente α: simplemente será desplazada a lo largo de alguno de los ejes. Es decir, cuando aquı́ hablamos de difusión ¿rápidaÀ o ¿lentaÀ, no nos referimos al coeficiente D de difusión cuyo valor hará cambiar la pendiente de la relación (6), sino al exponente y a la relación experimental (7) que, cualitativamente, representa un comportamiento diferente: no lineal. Hablaremos ası́ de subdifusión si 0 < α < 1 y de superdifusión si α > 1. F IGURA 2. Modelo 3D de las caminatas de los monos araña [8]. Los árboles amarillos son los que han sido visitados. Inicia en la mancha roja. Rev. Mex. Fı́s. 56 (1) (2010) 41–50 EXPERIMENTOS NUMÉRICOS EN EL AULA SOBRE FENÓMENOS DIFUSIVOS: DIFUSIÓN ANÓMALA EN SISTEMAS. . . F IGURA 3. Una ley de potencia tı́pica en escalas isométrica y loglog. 3. Difusión anómala En esta sección desarrollamos dos algoritmos (con sus programas) relacionados con el fenómeno de la difusión. El primero, en la siguiente sección, se refiere al modelo del movimiento browniano y a un resultado importante que coincide con la solución analı́tica de Einstein en cuanto al ¿anchoÀ de la distribución f . El segundo algoritmo consiste en un experimento numérico en el que agregamos al movimiento browniano elementos que lo acercan al comportamiento de los fenómenos de subdifusión y superdifusión. 3.1. Movimiento browniano: difusión El movimiento browniano ¿normalÀ corresponde con lo descrito por la ecuación de difusión: un conjunto de partı́culas (polen originalmente) colocadas en agua se mueven de manera desordenada y sin una razón aparente: de manera 45 ¿azarosaÀxii . Si observamos una sola de ellas veremos una trayectoria con la forma de una madeja enredada. Si esta partı́cula parte del origen, por ejemplo, puede observarse que, después de muchos pasos, el promedio de sus posiciones sucesivas es cero debido a que no hay una dirección preferencial para cada pasoxiii aleatorio, es decir, aproximadamente da el mismo número de pasos para un lado que para el opuesto de manera que la suma de los desplazamientos da algo cercano a cero y la mancha (la ¿madejaÀ) tendrá un ancho finito. Un detalle curioso resulta si superponemos muchas partı́culas brownianas (lo cual implica que no interactúan entre sı́): el promedio de sus posiciones, es decir, de sus distancias relativas a una posición inicial, con respecto al tiempo es la relación linealxiv (6) donde R(t) es la posición de cada una de las partı́culas superpuestas: esto coincide con lo que predice el modelo de Einstein. En el lado izquierdo de (6) se evalúa el promedio de las distancias de todas las partı́culas con respecto a un punto de referencia R(t0 ) que, por simplicidad, consideramos igual a cero. Este promedio corresponde a la desviación cuadrática media (4) de la que habla Einstein (puede revisarse un experimento simple que permite la medición de esta relación, a partir de la que se obtiene el coeficiente de difusión en la Ref. 15). La parte central del algoritmo computacional de movimiento browniano consiste en hacer desplazamientos, con dirección arbitraria y de longitud uno, para cada una de las partı́culas. En el programa se asume que todas parten del origen y que (obviamente) no interactúan [4,11]. Una discusión detallada del algoritmo y el siguiente programa se encuentra en la Ref. 4: #!/usr/bin/env python #-*- coding: utf-8 -*from random import * from visual import * ### par\’ametros: np=500 L=50 radio=1 tvp=50 ## velocidad de despliegue bolas=[] rlist=[] Lb= (L/2.) ## LONGITUD EJES DE REFERENCIA win=600 ## ANCHO DE LA VENTANA angulo=1.5 ## RANGO VISUALIZACION CAMARA ### elementos gr\’aficos, ejes scene = display(title=‘‘Difusi\’on Browniana’’, width=win, height=win, x=1000, \ y=0, center=(0,0,0), background=(0,0,0)) axisX = arrow(pos=(0,0,0), axis=(Lb,0,0), shaftwidth=0.2, color = color.red) axisY = arrow(pos=(0,0,0), axis=(0,Lb,0), shaftwidth=0.2, color = color.blue) axisZ = arrow(pos=(0,0,0), axis=(0,0,Lb), shaftwidth=0.2, color = color.green) label(pos=(Lb,0,0), text=’x’) label(pos=(0,Lb,0), text=’y’) label(pos=(0,0,Lb), text=’z’) ### lista de part{\’i}culas Rev. Mex. Fı́s. 56 (1) (2010) 41–50 46 J.F. ROJAS Y M.A. MORALES for i in arange(np): bola = sphere(color = color.red, radius=radio) posicion=[0,0,0] ## posici\’on inicial de las part\’iculas bola.r=vector(posicion) ## posici\’on de cada part\’icula rlist.append(posicion) ## lista de posiciones auxiliar bolas.append(bola) bolas[0].color = color.yellow ## trazadora r=array(rlist) ## conversi\’on a ’array’ (conviene) ### funci\’on que genera los desplazamientos def dr(): dr1 = array([[uniform(-1,1), uniform(-1,1), uniform(-1,1)] for i in range(np)]) for i in range(np): dr1[i] = dr1[i]/mag(dr1[i]) return dr1 ### ciclo principal t=0 while t<10000: #ciclo sobre el tiempo rate(tvp) t = t+1 rant = r[0] # posici\’on trazador r = r + dr() # agregar desplazamientos a posici\’on actual for i in arange(len(bolas)): # actualizar posiciones bolas[i].pos=r[i] curve(pos=[rant,r[0]],color=color.yellow, radius = .1) # traza Una imagen de la dinámica lograda por este programa y la respectiva gráfica correspondiente a la expresión (6) se encuentra en la Fig. 4. 3.2. Trampas y temperatura: un modelo para la difusión anómala Hemos mencionado algunas caracterı́sticas relacionadas con el fenómeno de la difusión. Entre ellas algunas han sido propuestas por el modelo de Einstein (tal como aparece en las Secs. 2.1 y 3.1). Ahora vamos a implementar la idea del movimiento browniano, pero en un medio poroso: pensemos que las moléculas que lo forman se agrupan de tal modo que dejan algunos intersticios o huecos. Es decir, si fuésemos una de estas partı́culas dando pasos uniformes y de dirección arbitraria dentro de este medio entrarı́amos, eventualmente, en regiones intersticiales que nos atrapan por un tiempo que pensaremos proporcional al tamaño del hueco. Cada partı́cula atrapada permanecerá ahı́ hasta que alguna otra molécula del medio, por agitación térmica, la alcance y la saque del sitio. En el modelo suponemos que los huecos son esféricos y en la simulación aparecen en color azul. 1 2 3 4 5 6 7 8 9 10 #-*- coding: utf-8 -*from random import * from visual import * ## par\’ametros f\’{\i}sicos del modelo np=200 ## n\’umero de part\’{\i}culas nh=200 ## n\’umero de pozos T = 1.0 ## temperatura inicial del sistema dT = 0.000 ## incremento de paso de la temperatura mu = 25. ## coeficiente de viscocidad tesp=mu ## tiempo de espera para una part\’{\i}cula atrapada en un pozo 11 12 13 14 15 16 ## par\’ametros gr\’aficos de la simulaci\’on Tiempo = 10000 ## tiempo de evoluci\’on del sistema radio1=1. ## radio de una part\’{\i}cula browniana tvp=50 ## n\’umero de calculos por segundo L=50 ## longitud unitaria Lb= 2.*(L/3.) ## longitud de ejes de referencia Rev. Mex. Fı́s. 56 (1) (2010) 41–50 EXPERIMENTOS NUMÉRICOS EN EL AULA SOBRE FENÓMENOS DIFUSIVOS: DIFUSIÓN ANÓMALA EN SISTEMAS. . . 17 win=600 18 angulo=.8 19 20 21 22 23 24 ## ancho de la ventana ## rango de visualizaci\’on de camara ## inicializaci\’on de listas de variables bolas=[] rlist=[] hoyos=[] listhoyo=[] tespL=[0 for i in range(np)] # part\’{\i}culas atrapadas 25 ## parte gr\’afica de la simulaci\’on 26 scene = display(title="Movimiento Browniano",width=win,height=win,x=1000, \ y=0,center=(0,0,0),background=(0,0,0)) 27 axisX = arrow(pos=(0,0,0),axis=(Lb,0,0),shaftwidth=0.01,color=color.red) 28 axisY = arrow(pos=(0,0,0),axis=(0,Lb,0),shaftwidth=0.01,color=color.blue) 29 axisZ = arrow(pos=(0,0,0),axis=(0,0,Lb),shaftwidth=0.01,color=color.green) 30 label(pos=(Lb,0,0),text=’x’) 31 label(pos=(0,Lb,0),text=’y’) 32 label(pos=(0,0,Lb),text=’z’) 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ## se crean las listas de particulas y de ‘‘hoyos’’ for i in arange(np): bola = sphere(color = color.red, radius=radio1) posicion = [0,0,0] rlist.append(posicion) bola.r = vector(posicion) bolas.append(bola) bolas[0].color = color.yellow r=array(rlist) for i in arange(nh): hoyo = sphere(color = color.blue, radius = int(paretovariate(mu))) poshoyo = vector(uniform(-Lb,Lb), uniform(-Lb,Lb), uniform(-Lb,Lb)) hoyo.pos = poshoyo listhoyo.append(poshoyo) hoyos.append(hoyo) ocup = [-1 for i in range(nh)] h=array(listhoyo) 50 def atrapada(): 51 ## atrapada! 52 for i in range(np): 53 for j in range(nh): 54 if mag(r[i]-h[j]) < hoyos[j].radius and ocup[j] == -1: 55 tespL[i] = int(tesp*hoyos[j].radius) # t espera 56 ocup[j] = i # part\’{\i}cula i atrapada en hoyo j 57 return 1 58 def dr(): 59 atrapada() 60 dri = array([[uniform(-1,1), uniform(-1,1), uniform(-1,1)] \ for i in range(np)]) 61 for i in range(np): 62 if tespL[i] == 0: # no hay tiempo de espera => avance 63 dri[i] = T*uniform(0,1)*dri[i]/mag(dri[i]) 64 else: # tiempo de espera no nulo: 65 dri[i] = [0,0,0] # no hay avance Rev. Mex. Fı́s. 56 (1) (2010) 41–50 47 48 66 67 68 69 70 71 72 J.F. ROJAS Y M.A. MORALES tespL[i] = tespL[i]-1 # decrementa tiempo de espera if tespL[i] == 0: # desmarca part\’{\i}cula atrapada j = 0 while ocup[j] != i and j != j += 1 ocup[j] = -1 # NO atrapada return dri 73 seed() # semilla para random 74 ## apertura de archivo para escritura de datos 75 ff = open("Brown_nh"+str(nh)+"mu"+str(mu)+"_T"+str(T)+ \ "_dT"+str(dT)+".dat","w") 76 t=0 # inicializaci\’on del tiempo 77 while t<Tiempo: # ciclo sobre el tiempo 78 rate(tvp) 79 T += dT 80 t = t+1 81 rant = r[0] # posici\’on actual del trazador 82 r = r + dr() 83 for i in range(np): 84 bolas[i].pos=r[i] 85 curve(pos = [rant,r[0]], color = color.yellow, radius = .1) # traza 86 # promedio de cuadrados de distancias al origen 87 S = sum( [mag(bolas[i].pos)**2 for i in range(np)] )/np 88 if t%100==0: 89 print >> ff, t, S 90 ff.close() En este programa se ha agregado un bloque para generar las trampas intersticiales o ¿huecosÀ y una lista en la que se guarda la etiqueta de cada partı́cula que ha sido atrapada. Hasta la lı́nea 32 del listado solamente hay declaración de parámetros y ambiente gráfico. De la lı́nea 33 a la 49 se crean las listas de las partı́culas y ¿huecosÀ, que se transforman en el objeto array que permite hacer operaciones aritméticas ¿colectivasÀ. Las lı́neas 50-57 contienen la definición de la función atrapada() que define qué particulas están suficientemente cerca de alguno de los ¿pozosÀ y quedarán atrapadas. En cada paso, dentro del ciclo de tiempo entre 76 y 89, si hay una partı́cula atrapada, se reduce en uno su ¿tiempo de esperaÀ (el tiempo que permanece atrapada) hasta que por fin es liberada cuando ese tiempo es cero. Esto se lleva a cabo en la función dr(): si la partı́cula no está atrapada dará un paso proporcional a un parámetro de temperatura T. En caso contrario se reduce su tiempo de espera en uno y su avance es cero. En la Fig. 5 se aprecia la ¿madejaÀ correspondiente a la trayectoria de una de las partı́culas brownianas. La partı́cula trazadora (en color amarillo) se encuentra cerca del origen de coordenadas. Las partı́culas rojas pueden quedar atrapadas en los pozos que modelamos como esferas azules. En este modelo simple, por tanto, compiten las trampas (en número y exponente de su distribución de tamaños) con las variaciones de temperaturaxv dT. La Fig. 6 muestra los casos en que predomina el incremento de la temperatura (curva alta, con F IGURA 4. Imagen de movimiento browniano con una partı́cula trazadora. La gráfica del lado derecho corresponde a la relación (6) para 500 partı́culas y 104 pasos. α = 1.415, dT = 0.05, µ = 0), la viscosidad (curva inferior, α = 0.639, µ = 4, dT = 0) y el caso de difusión browniana (curva en el centro α = 0.999, µ = 0, dT = 0). La lı́nea 79 del programa implica un proceso fuera de equilibrio: la temperatura se incrementa en cada paso en dT (a menos que dT=0). Este efecto puede competir con el parámetro de viscosidad µ. Dado que las leyes de potencias aparecen en tantos eventos y fenómenos, en el modelo asumimos que los tamaños de las trampas o pozos (y, por tanto, los tiempos de espera) tienen una distribución de Pareto: radius = int(paretovariate(mu)) en la lı́nea 43 (ver relación (8)). Rev. Mex. Fı́s. 56 (1) (2010) 41–50 EXPERIMENTOS NUMÉRICOS EN EL AULA SOBRE FENÓMENOS DIFUSIVOS: DIFUSIÓN ANÓMALA EN SISTEMAS. . . 49 El número de partı́culas y de pozos empleado en las gráficas de la Fig. 7 fue de 500 en un rango de 104 iteraciones. 4. Comentarios y posibilidades En nuestro modelo, el efecto de difusión anómala se presenta para ciertos valores de µ y de dT. Esto representa fı́sicamente una competencia entre viscosidad (o fricción) dentro de un medio poroso y el incremento lineal de la temperatura con el tiempo. Esto implica mayor energı́a de las partı́culas y, por lo mismo, el crecimiento de las longitudes de paso en su ¿caminataÀ. F IGURA 5. Las partı́culas unidas a otra están atrapadas. La trazadora está cerca del origen. Los experimentos numéricos pueden motivar a los estudiantes de fı́sica u otras áreas a construir sus propios experimentos o modelar sistemas de su interés. Una forma general de construir simulaciones o modelos consiste en partir de una idea muy simple que, a medida que va mostrando resultados, puede irse modificando ya sea en complejidad de los comportamientos o incrementando los elementos participantes o las relaciones entre ellos. Algunas cuestiones que podrı́an ser investigadas a partir de este modelo podrı́an ser: ¿Qué ocurre si las partı́culas brownianas interactúanxvi ? ¿Si los poros o trampas fuesen del mismo tamaño?, ¿o si tuviesen otra distribución? ¿Si hubiese muchos más poros que partı́culas (o viceversa)?, ¿hay una relación crı́tica entre estas cantidades? 2 F IGURA 6. < R(t) >contra t. Pueden observarse diferentes comportamientos. Superdifusión (arriba), difusión (centro) y subdifusión (abajo). F IGURA 7. Dos casos de subdifusión para µ = 25, 4; b) dos casos de superdifusión con dT = 0.005, 0.01. ¿Hay alguna relación entre µ y dT que logre difusión ¿normalÀ? ¿Existe relación entre los exponentes de las curvas y los parámetros? Todas estas y tal vez muchas otras preguntas pueden motivar a los estudiantes a experimentar con este modelo y programa, pero también a la búsqueda: a ver cómo hay que modificarlo para obtener cierta información del modelo, cómo evitar la infuencia de un parámetro u otro, etc. A la larga tendrá que modificar, experimentar con este u otros modelos o crear los propios. Finalmente, esperamos, serán parte de su formación como futuros investigadores. Rev. Mex. Fı́s. 56 (1) (2010) 41–50 50 J.F. ROJAS Y M.A. MORALES i. Aquı́ nos referimos a las posibilidades que ofrece un lenguaje de programación en el que no se tiene que implementar, por ejemplo, los métodos de Newton o la regla de cuadratura de Simpson. Más aún: no requiere que uno programe e implemente módulos o funciones que permitan visualizar, en tiempo real o no, de manera rápida y eficiente, los resultados. ii. La carga eléctrica que se desplaza en un medio puede ser descrita por la carga de los electrones, pero hay una convención que describe esta corriente por medio de carga positiva. Esta carga se asocia a los ¿huecosÀ que los electrones van dejando cuando salen de una posición, de modo que, en términos de carga, puede verse un flujo de carga neta positiva en sentido opuesto al de los electrones. iii. Esta idea simple dio lugar a nuestro experimento numérico. iv. Una modificación formal consiste en la introducción del concepto de derivada fraccionaria, pero el tema sale de las intenciones de este trabajo. v. Este ¿algoÀ puede ser carga eléctrica, masa, componente de una mezcla reactiva (en cuyo caso se requieren más ecuaciones), etc. vi. Esto responde a la pregunta ¿cuántas lı́neas de campo salen de una superficie cerrada, muy pequeña, que rodea al punto donde evalúas? vii. Si u es una función del tiempo y de las coordenadas, entonces ∇u será un campo vectorial que a cada punto del espacio asocia el vector gradiente cuyas componentes nos dicen cuánto crece u si nos desplazamos una unidad espacial en la dirección elegida. canismo que nos da direcciones impredecibles, pero todas con la misma probabilidad de ocurrir. xiv. Esto lo demostró Einstein (ver Sec. 2.1). xv. Obviamente si nh, el número de trampas o de pozos, es cero, y además la temperatura del sistemas no cambia (dT=0), entonces no habrá difusión anómala: las partı́culas brownianas continuarán con su dinámica. xvi. En esta parte hay un mundo de posibles resutados que dependen del tipo de interacción sugerida para las partı́culas brownianas: desde esfera dura hasta interacción coulombiana, magnética, etc. xvii. Esto puede llevar a la discusión del fenómeno de percolación, por ejemplo. 1. Página de python, http://www.python.org. 2. Numpy, Scipy: http://numpy.scipy.org/. 3. Visual python, http://www.vpython.org/. 4. J.F. Rojas, M.A. Morales, A. Rangel, and I. Torres. Rev. Mex. Fı́s. 55 (2009) 97. 5. J. Klafter and I.M. Sokolov. Physics World (2005) 29. 6. A.M. Edwards et al. Nature 449 (2007) 1044. 7. G.R. Fernández, J.L. Mateos, Behav. Ecol. Sociol. 55 (2004) 223. 8. D. Boyer et al., Proceedings of the Royal Society B 273 (2006) 1743. 9. A. Witkin and M. Kass. Computer Graphics 25 (1991) 299. viii. Realmente es la traducción del parágrafo 4 de la Ref. 11, ası́ que se refiere al parágrafo 3. 10. J. von Hardenberg, E. Meron, M. Shachak, and Y. Zarmi. Phys. Rev. Lett. 87 (2001). ix. No sabemos a qué se refiere aquı́ Einstein, pero no es necesario para entender el planteamiento. 11. A. Einstein, Investigations on the theory of the brownian movement (Dover, 1956). x. La ecuación de difusión. xi. La función P (λ) tiene las propiedades de cualquier función densidad de probabilidad. xii. ¿AzarosoÀ se entiende aquı́ como impredecible. La naturaleza es causal. xiii. ¿AleatorioÀ. Se está pensando en un modelo (el que se plantea) que reproduzca el comportamiento de muchas partı́culas brownianas, entonces por aleatorio se va a entender un me- 12. M. Levy and S. Solomon. Power Laws are Logarithmic Boltzmann Laws. arXiv:adap-org 9607001v1, (July 1996). 13. G. Cardarelli, M. Marsili, and Y. Zhang. Europhys. Lett. 40 (1997). 14. M.E.J. Newman. Power laws, Pareto distributions and Zipf’s law. arXiv:cond-mat/0412004 (2004). 15. C. Booth, Tom Beer, and J.D. Penrose. Am. J. Phys. 46 (1978) 525. Rev. Mex. Fı́s. 56 (1) (2010) 41–50