Saturday 13 December 2014

Published Saturday, December 13, 2014 by with 0 comment

Matlab code difusi partikel random walk

Admin akan menyempurnakan dan memindahkan artikel pada blog ini  secara bertahap ke : 

Key Word : Matlab Code, Random Wolk, Difusi, Partikel

Dibawah ini merupakan code matlab untuk simulasi difusi partikel dengan metode random wolk


Gambar hasil program


%program diffusi partikel dengan random walk untuk 1 sumber partikel
%berdasarkan metode montecarlo dengan persamaan difusi einstein
%pergerakan partikel hanya bergantung pada temperatur sistem dan
%konsentrasi partikel
%partikel dipantulkan ketika menumbuk dinding
clear
clc;

%% inisialisasi keadaaan partikel
p = 20;  %panjang sb-x
l = 20;  %lebar sb-y
T = 300;  %Temperatur (K)
n = 100;  %jumlah partikel
N = 100; %time step

h = sqrt ( T / n ); %koefisien difusi
p = p/2;
l = l/2;

%% inisialisasi posisi awal partikel
x = zeros(N,n);
y = zeros(N,n);


for i = 1 : N
%% keadaan partikel untuk setiap time step
    x(i+1,:) = x(i,:) + h * randn (1,n,1);  %mencari posisi x untuk time step berikutnya
    y(i+1,:) = y(i,:) + h * randn (1,n,1);  %mencari posisi y untuk time step berikutnya
 
    %pengkondisian pada syarat batas
    for j= 1 : n
        if x(i+1,j)<-p
            x(i+1,j) = p;      %partikel diteruskan ke bonderi kanan
        elseif x(i+1,j)>p
            x(i+1,j) = -p;     %partikel diteruskan ke bonderi kiri
        elseif y(i+1,j)<-l
            y(i+1,j) = y(i,j);  %partikel dipantulkan kembali dari bonderi
        elseif y(i+1,j)>l
            y(i+1,j) = y(i,j);  %partikel dipantulkan kembali dari bonderi
        else
            x(i+1,j) = x(i+1,j);    %keadaan pada bagian tengah
            y(i+1,j) = y(i+1,j);    %keadaan pada bagian tengah
        end
    end

%% menampilkan figur
plot(x(i,:),y(i,:),'b*');
axis([-p p -l l])
getframe;  
pause(0.1)
end

    email this

0 comments:

Post a Comment