Fenómenos de transporte |
Difusión Difusión Medida del coeficiente de difusión Simulación de la difusión Movimiento browniano
Constante Boltzmann |
Sedimentación | |
SedimentaciónEl fenómeno de la sedimentación está basado en el movimiento browniano en un campo de fuerzas externo (campo gravitatorio), y está descrito desde el punto de vista macroscópico por la ecuación de Smoluchowski, que es semejante a la que describe el fenómeno de la difusión Donde n es la concentración de partículas de soluto en un punto x del medio, en un instante t determinado, D es el coeficiente de difusión, y l se denomina velocidad de arrastre. En nuestro modelo, se supone que las partículas térmicas (medio) y las partículas brownianas (soluto) están encerradas en un recinto. Las partículas térmicas están distribuidas uniformemente en el recinto y se mueven con cierta velocidad, la misma en todas las direcciones. Las partículas brownianas se mueven bajo la acción de su propio peso y de los choques con las partículas térmicas. El programa pregunta por la masa de las partículas brownianas (tomando como unidad la masa de las partículas térmicas), la velocidad (media) de las partículas térmicas que estará en relación con la temperatura del medio, y la intensidad de la fuerza externa aplicada sobre las partículas brownianas. Podemos elegir entre diversas situaciones iniciales: todas las partículas brownianas en la parte inferior, en la parte superior o distribuidas al azar en el recipiente que las contiene. Podemos observar que la distribución de partículas brownianas en el estado estacionario, después de cierto tiempo, es el compromiso entre dos efectos contrapuestos: el campo gravitatorio que tiende a agrupar las partículas en el fondo del recipiente y la difusión que tiende a esparcirlas uniformemente por todo el volumen del recipiente.
ActividadesSe introduce
Modificar una o más variables a la vez y observar los resultados. |
Minowa H., Toya D., Mishima N. Model expriment illustrating sedimentation by microcomputer. Eur. J. Phys. 3 (1982) pp. 239-244
import java.util.*; public class Sistema { final int nParticulas=500; //dimensiones de la región donde se mueven las partículas int ancho; int alto; //masa de las partículas térmicas final double Mt=1.0; //masa de las partículas brownianas double Mb; //velocidad de las partículas térmicas double Vt; //intervalo de tiempo final double dt=1.0; //Fuerza externa double Fa; //Posición de las partículas public double[] X, Y; //Velocidades de las partículas double[] VX, VY; //números al azar Random rnd=new Random(); public Sistema(double Vt, double Mb, double Fa, int eleccion, int ancho, int alto) { this.ancho=ancho; this.alto=alto; this.Vt=Vt; this.Mb=Mb; this.Fa=Fa; //estado inicial X=new double[nParticulas]; Y=new double[nParticulas]; VX=new double[nParticulas]; VY=new double[nParticulas]; for(int i=0; i<nParticulas; i++){ VY[i]=VY[i]=0; } //estado inicial switch(eleccion){ case 0: //arriba for(int i=0; i<nParticulas; i++){ Y[i]=0; } break; case 1: //abajo for(int i=0; i<nParticulas; i++){ Y[i]=alto; } break; case 2: //en medio for(int i=0; i<nParticulas; i++){ Y[i]=alto/2; } break; case 3: //al azar for(int i=0; i<nParticulas; i++){ Y[i]=(int)(alto*rnd.nextDouble()); } break; default: break; } //distribución al azar en el eje horizontal for(int i=0; i<nParticulas; i++){ X[i]=(int)(ancho*rnd.nextDouble()); } } public void evolucion(){ double Ux, Uy, angulo; for(int i=0; i<nParticulas; i++){ angulo=2*Math.PI*rnd.nextDouble(); Ux=VX[i]-Vt*Math.sin(angulo); Uy=VY[i]-Vt*Math.cos(angulo); angulo=2*Math.PI*rnd.nextDouble(); VY[i]+=(Mt/(Mt+Mb))*(Uy*(Math.cos(angulo)-1)-Ux*Math.sin(angulo))+Fa*dt; VX[i]+=(Mt/(Mt+Mb))*(Ux*(Math.cos(angulo)-1)+Uy*Math.sin(angulo)); X[i]+=VX[i]*dt; Y[i]+=VY[i]*dt; //condiciones de contorno if(X[i]<0){ X[i]=-X[i]; VX[i]=-VX[i]; } if(X[i]>ancho){ X[i]=2*ancho-X[i]; VX[i]=-VX[i]; } if(Y[i]<0){ Y[i]=-Y[i]; VY[i]=-VY[i]; } if(Y[i]>alto){ Y[i]=2*alto-Y[i]; VY[i]=-VY[i]; } } } } |