Garraio fenomenoak |
Difusioa Difusioa Nola neurtu difusio koefizientea Difusioaren simulazioa Higidura browndarra
Boltzmann-en konstantea |
Jalkiera | |
JalkieraJalkiera edo "sedimentazio" fenomenoak ere higidura browndarra du oinarri, baina kanpoko indar eremu baten eraginpean gertatzen da (grabitatea). Ikuspegi makroskopikotik, difusio fenomenoaren oso antzekoa da, baina Smoluchowski-ren ekuazio deiturikoak deskribatzen du:
Non n solutu-partikulen kontzentrazioa den, x, partikulen posizioa medio horretan eta t denbora. D difusio koefizientea da eta l arraste abiadura. Honako eredu honetan suposatzen da partikula termikoak (medioa) eta partikula browndarrak (solutua) ontzi batean itxita daudela. Partikula termikoak ontzi osoan zehar sakabanatuta daude, uniformeki, eta abiadura jakin batez mugitzen ari dira norabide guztietan, denek abiadura bera dutela suposatuko dugu (batez bestekoa, tenperaturaren proportzionala). Beraz, partikula browndarrek jasaten dituzten indarrak bi motakoak izango dira, batetik, grabitatea eta, bestetik, partikula termikoen etengabeko talkak. Ondorengo programak zenbait parametro aldatzeko aukera ematen du: partikula browndarren masa (partikula termikoen masa, unitatetzat hartuta), partikula termikoen abiadura (batezbestekoa) eta partikula browndarrek jasaten duten kanpo-indarrararen intentsitatea. Hasieran partikula browndarrak nola kokatu ere aukera dezakegu: denak azpiko aldean, gaineko aldean, erdian edo ausaz sakabanatuta ontzian zehar. Denbora "nahikoa" iragan ondoren, partikula browndarrak oreka egoera batera iristen dira, eta partikulon distribuzioak bi efektu kontrajarriak erakusten ditu: batetik, grabitateak ontziaren hondorantz bidaltzen ditu partikulok eta bestetik, difusioak ontzi osoan zehar sakabanatzen ditu. SaiakuntzaAukeran idatz daitezke:
Partikula termikoen masa unitatetzat hartu da eta partikula browndarrak pausagunetik abiatzen dira. Hasi botoian klik egin simulazioa abiatzeko. Alda itzazu aukerak eta beha itzazu aldaketen eraginak. |
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];
}
}
}
}
|