Hello
I have problem with my code and I can't find the right solution. even if I've change my matrices to a uniform one (like 100*100)
I will be appreciate you if you answer.
best wishes
clcclear allclose allID = 80;Q = 2/(30*24*60*60); k = (ID * 10)/(30*24*60*60); D = 0.02 * ID; S = 0.018; xmin = 0; ymin = 0; xmax = 20000; ymax = 20000; nSS = 100; dx = xmax / nSS; dy = dx; dt = 1000; Tmax = 30*24*60*60; nTS = Tmax / dt; xw = 10000;yw1 = 5000;yw2 = 15000;xp1 = 5000;xp2 = 15000;yp = 10000;h = 80*ones(20000/dx +1 , 20000/dy +1 );for t = 1:nTS for i = 2:nSS for j = 2:nSS if i == xw/dx +1 && j == yw1/dy +1 h(i,j) = (1/(S*dx*dy))*(((k*0.5*dt)*(dy*(((h(i+1,j)^2)-(2*(h(i,j)^2))+... (h(i-1,j)^2))/dx)+dx*(((h(i,j+1)^2)-(2*(h(i,j)^2))+(h(i,j-1)^2))/dy)))-dx*dy*dt*Q)+h(j,i); elseif i == xw/dx +1 && j == yw2/dy +1 h(i,j) = (1/(S*dx*dy))*(((k*0.5*dt)*(dy*(((h(i+1,j)^2)-(2*(h(i,j)^2))+... (h(i-1,j)^2))/dx)+dx*(((h(i,j+1)^2)-(2*(h(i,j)^2))+(h(i,j-1)^2))/dy)))-dx*dy*dt*Q)+h(j,i); elseif i == xw/dx +1 && j>= yw1/dy && j<=yw2/dy h(i,j) = (1/(S*dx*dy))*(((k*0.5*dt)*(dy*(((h(i-1,j)^2)-(2*(h(i,j)^2))+... (h(i-1,j)^2))/dx)+dx*(((h(i,j+1)^2)-(2*(h(i,j)^2))+(h(i,j-1)^2))/dy)))-dx*dy*dt*Q)+h(j,i); else h(i,j) = (1/(S*dx*dy))*(((k*0.5*dt)*(dy*(((h(i+1,j)^2)-(2*(h(i,j)^2))+... (h(i-1,j)^2))/dx)+dx*(((h(i,j+1)^2)-(2*(h(i,j)^2))+(h(i,j-1)^2))/dy))))+h(j,i); end end endendu = zeros(101);v = zeros(101);for t=1:nTS for i=1:nSS for j=1:nSS if i>=1 && i<=101 && j==1 u(i,j)=0; v(i,j)=0; elseif i>=1 && i<=101 && j==101 u(i,j)=0; v(i,j)=0; elseif i==101 && j>=1 && j<=101 u(i,j)=0; v(i,j)=0; elseif i==1 && j>=1 && j<=101 u(i,j)=0; v(i,j)=0; elseif i>= yw1/dy && i<=yw2/dy && j == xw/dx +1 v(i,j)=0; else v(i,j) = (k*dy*dt)*(((h(i+1,j)+h(i,j))/2)-((h(i,j)+h(i-1,j))/2)); u(i,j) = (k*dx*dt)*(((h(i,j+1)+h(i,j))/2)-((h(i,j)+h(i,j-1))/2)); end end endendc = zeros(101);a1 = 1;b1 = 1;c1 = 1;d1 = 1;Q = zeros(101);Q(51,24) = 2;Q(51,76) = 2;for t=1:nTS for i=2:100 for j=2:100 if v(i,j)<0 a1 = 1; b1 = 0; else a1 = 0; b1 = 1; end if u(i,j)<0 c1 = 1 ; d1 = 0 ; else c1 = 0; d1 = 1; end c(i,j)=c(i,j)+((D*dt)/dx)*(((c(i+1,j)-c(i,j))/dx)-(c(i,j)-c(i-1,j))/dx)+... +((D*dt)/dx)*(((c(i,j+1)-c(i,j))/dx)-(c(i,j)-c(i,j-1))/dx)-... ((k*v*dt)/(dx))*0.5*(a1*(c(i+1,j)-c(i,j))-b1*(c(i,j)-c(i-1,j)))-... ((k*u*dt)/(dy))*0.5*(c1*(c(i,j+1)-c(i,j))-d1*(c(i,j)-c(i,j-1)))+Q; end endend
Best Answer