Rowan-Classes/5th-Semester-Fall-2023/EEMAGS/Labs/Lab-06/cemLaplace03.m
2024-02-22 14:23:12 -05:00

69 lines
1.7 KiB
Matlab

% cemLaplace01.m
% Solution of Laplace's equation
clear
clf
tic
% INPUTS ================================================================
% Number of XY grid points (integer)
Nx = 5;
% Range for X and Y values [minX maxX minY maxY minZ maxZ]
XY = [0 5];
% Boundary potential
V0 = 100;
% tolerance for ending iterations
tol = 0.1;
% SETUP ==================================================================
V = zeros(Nx,1);
minX = XY(1); maxX = XY(2);
x = linspace(minX, maxX,Nx);
hx = x(2) - x(1);
V(1) = V0; V(Nx) = 0;
% CALCULATIONS ===========================================================
% dSum difference in sum of squares / n number of iterations
dSum = 10; n = 0;
while dSum > tol
sum1 = sum(sum(V.^2));
for nx = 2: Nx-1
V(nx) = 0.5*(V(nx+1) + V(nx-1));
end
sum2 = sum(sum(V.^2));
dSum = abs(sum2 - sum1);
n = n+1;
end
% exact solution
VT = -(V0/maxX)*x + V0;
% electric field
E = -gradient(V,hx);
% GRAPHICS ===============================================================
figure(1)
set(gcf,'units','normalized','position',[0.05 0.2 0.3 0.4]);
subplot(2,1,1)
plot(x,V,'b','lineWidth',2);
hold on
plot(x,VT,'r','lineWidth',2);
%set(gca,'xLim',[minX, maxX]);
%set(gca,'yLim',[minY, maxY]);
xlabel('x [ m ]'); ylabel('V [ V ]');
set(gca,'fontsize',14)
subplot(2,1,2)
plot(x,E,'b','lineWidth',2)
set(gca,'yLim',[0, 25]);
xlabel('x [ m ]'); ylabel('E [ V / m ]');
set(gca,'fontsize',14)
% =======================================================================
toc