Darcy's law

3 次查看(过去 30 天)
hasan damaj
hasan damaj 2019-12-7
clc
clear
% Laplace equation
% Define the length of the grid
L = 5 ;
% Define the Width of the grid
B = 5 ;
nx = 4 ;
ny = 4 ;
dx = 100;
dy = 100;
h=zeros(nx,ny);
amax = 0;
% boundry conditions
h(1,:) = [ 8.04 , 7.68 , 7.19 , 6.82 ];
h(nx,:) = [ 8.53 , 8.41 , 8.33 , 8.29 ];
h(:,1) = [ 8.04 , 8.18 , 8.36 , 8.53 ];
h(:,ny) = [ 6.82 , 7.56 , 7.99 , 8.29 ];
while amax <= 0.01
for j = 2 : nx-1
for i = 2 : ny-1
oldval = h(i,j);
h(i,j) = ( h(i-1,j) + h(i+1,j) + h(i,j-1) + h(i,j+1)/4) ;
e = abs(h(i,j)) - oldval;
if e > amax
amax = e;
end
end
end
end
h
I NEED TO GET TO THE FOLLOWING RESULT
8.04 8.18 8.36 8.53
7.68 7.93 8.19 8.41
7.19 7.68 8.05 8.33
6.82 7.56 7.99 8.29
Can you suggest for me the correction and thank you :)
  7 个评论
hasan damaj
hasan damaj 2019-12-11
the equation is correct sir..
hasan damaj
hasan damaj 2019-12-11
the while condition is not working with me

请先登录,再进行评论。

回答(3 个)

Image Analyst
Image Analyst 2019-12-7
You're setting up your boundary conditions incorrectly. You're overwriting the corners with different numbers. I think maybe you want this:
% Initialize boundary conditions:
h(1,:) = [ 8.04 , 7.68 , 7.19 , 8.53];
h(end,:) = [6.82 , 7.56 , 7.99 , 8.29 ];
h(2:3,1) = [7.68;7.19];
h(2:3,end) = [8.41; 8.33];
h
% Here h should be
% 8.04 8.18 8.36 8.53
% 7.68 0 0 8.41
% 7.19 0 0 8.33
% 6.82 7.56 7.99 8.29
Adapt as needed.
  7 个评论
hasan damaj
hasan damaj 2019-12-11
but the values of inner index are zeros after running the code..
hasan damaj
hasan damaj 2019-12-12
how do i edit it to reach my results and thank you

请先登录,再进行评论。


Hassan Abdullah Saleem
I think I know what is the probelm in your code..you have overlap intry try to inter the boundary by value like this h(1,1) = 8.04

Hassan Abdullah Saleem

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

产品


版本

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by