Darcy's law
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (3)
Image Analyst
am 7 Dez. 2019
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 Kommentare
Hassan Abdullah Saleem
am 12 Okt. 2020
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
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!