add exerices sheets, worked example matlab scripts
This commit is contained in:
parent
f2e94c592f
commit
6e748d46b2
Binary file not shown.
Binary file not shown.
@ -0,0 +1,65 @@
|
||||
% author: Akbar Alvi Rahman
|
||||
% Lecture 1 Worked Example 1 (Section 10.1)
|
||||
|
||||
clear all; close all; clc
|
||||
|
||||
% define physical constants
|
||||
L = 1;
|
||||
S = 0;
|
||||
conductivity = 400;
|
||||
Ta = 300;
|
||||
Tb = 320;
|
||||
|
||||
% define numerical parameters
|
||||
n = 21;
|
||||
|
||||
% grid generation
|
||||
x0 = linspace(0, L, 21);
|
||||
dx = L/(n-1);
|
||||
Dx = dx;
|
||||
DxB = Dx/2;
|
||||
|
||||
% create matrix
|
||||
A = zeros(n, n);
|
||||
B = zeros(n, 1);
|
||||
|
||||
A(1, 1) = 1; % Dirichlet boundary
|
||||
B(1) = Ta;
|
||||
|
||||
A(n, n) = 1; % Dirichlet boundary
|
||||
B(n) = Tb;
|
||||
|
||||
for i=2:n-1
|
||||
A(i, i-1) = -conductivity/dx;
|
||||
A(i, i) = 2*conductivity/dx;
|
||||
A(i, i+1) = -conductivity/dx;
|
||||
|
||||
B(i) = 0;
|
||||
end
|
||||
|
||||
T = A\B; % matrix backslash
|
||||
|
||||
figure('color', 'w');
|
||||
plot(x0, T, 'rs');
|
||||
grid on;
|
||||
xlabel('x [m]'); ylabel('T [K]');
|
||||
hold on;
|
||||
|
||||
% comparison with theoretical solution
|
||||
Tteo = Ta + (Tb-Ta)*x0/L;
|
||||
plot(x0, Tteo, 'k-');
|
||||
legend('backslash', 'Exact');
|
||||
error = mean(abs(T-Tteo')) % Tteo transposed by ' operator
|
||||
|
||||
% check of residuals
|
||||
residual = sum(abs(B-A*T))/sum(abs(diag(A).*T)) % defined as |B-A*T|/|diag(A).T|
|
||||
|
||||
% check of energy balance
|
||||
num=0; den = 0;
|
||||
|
||||
for i=2:n-1
|
||||
num = num+abs(-conductivity*(T(i)-T(i-1))/dx+conductivity*(T(i+1)-T(i))/dx); % sum(|q_w-q_e|)
|
||||
den = den+abs(conductivity*(T(i)-T(i-1))/dx); % sum(|q_w|)
|
||||
end
|
||||
|
||||
unbalance = num/den*100
|
@ -0,0 +1,68 @@
|
||||
% author: Akbar Alvi Rahman
|
||||
% Lecture 1 Worked Example 1 (Section 10.1)
|
||||
|
||||
clear all; close all; clc
|
||||
|
||||
% define physical constants
|
||||
L = 1;
|
||||
S = 0;
|
||||
conductivity = 400;
|
||||
Ta = 300;
|
||||
Tb = 320;
|
||||
|
||||
Sp = -100;
|
||||
Sc = 5000;
|
||||
|
||||
% define numerical parameters
|
||||
n = 21;
|
||||
|
||||
% grid generation
|
||||
x0 = linspace(0, L, 21);
|
||||
dx = L/(n-1);
|
||||
Dx = dx;
|
||||
DxB = Dx/2;
|
||||
|
||||
% create matrix
|
||||
A = zeros(n, n);
|
||||
B = zeros(n, 1);
|
||||
|
||||
A(1, 1) = 1; % Dirichlet boundary
|
||||
B(1) = Ta;
|
||||
|
||||
A(n, n) = 1; % Dirichlet boundary
|
||||
B(n) = Tb;
|
||||
|
||||
for i=2:n-1
|
||||
A(i, i-1) = -conductivity/dx;
|
||||
A(i, i) = 2*conductivity/dx-Sp*Dx;
|
||||
A(i, i+1) = -conductivity/dx;
|
||||
|
||||
B(i) = Sc*Dx;
|
||||
end
|
||||
|
||||
T = A\B; % matrix backslash
|
||||
|
||||
figure('color', 'w');
|
||||
plot(x0, T, 'rs');
|
||||
grid on;
|
||||
xlabel('x [m]'); ylabel('T [K]');
|
||||
hold on;
|
||||
|
||||
% comparison with theoretical solution
|
||||
Tteo = Ta + (Tb-Ta)*x0/L;
|
||||
plot(x0, Tteo, 'k-');
|
||||
legend('backslash', 'Exact');
|
||||
error = mean(abs(T-Tteo')) % Tteo transposed by ' operator
|
||||
|
||||
% check of residuals
|
||||
residual = sum(abs(B-A*T))/sum(abs(diag(A).*T)) % defined as |B-A*T|/|diag(A).T|
|
||||
|
||||
% check of energy balance
|
||||
num=0; den = 0;
|
||||
|
||||
for i=2:n-1
|
||||
num = num+abs(-conductivity*(T(i)-T(i-1))/dx+conductivity*(T(i+1)-T(i))/dx); % sum(|q_w-q_e|)
|
||||
den = den+abs(conductivity*(T(i)-T(i-1))/dx); % sum(|q_w|)
|
||||
end
|
||||
|
||||
unbalance = num/den*100
|
Loading…
Reference in New Issue
Block a user