bài tập lớn môn học phương pháp số động lực học lưu chất

57 0 0
Tài liệu đã được kiểm tra trùng lặp
bài tập lớn môn học phương pháp số động lực học lưu chất

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

 Ở trong bài tập lớn này ta cần sử dụng các giản đồ số để xác định được Tx,ylà nhiệt độ trong miền tính toán, đồng thời giải quyết các vấn đồ được đặt ra ởmục 2.. để có thể hiểu rõ về c

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHĐẠI HỌC BÁCH KHOA

KHOA KỸ THUẬT GIAO THÔNG

BÀI TẬP LỚN MÔN HỌC

PHƯƠNG PHÁP SỐ - ĐỘNG LỰC HỌC LƯU CHẤTGiảng viên hướng dẫn: Lê Tuấn Phương Nam

Lớp: P01

Sinh viên thực hiện:

Sinh viên thực hiệnMã số sinh viên

Nguyễn Viết Minh Quân2010558Nguyễn Thị Khánh Ly2010400Nguyễn Bá Hoàng Nhân2012521

Thành phố Hồ Chí Minh, tháng 4 năm 2024

Trang 2

1.2.1Ảnh hưởng của kích thước lưới 4

1.2.2Ảnh hưởng của giản đồ số cho số hạng đối lưu 4

1.2.3Ảnh hưởng của các thông số Re và Pr trong số hạng khuếch tán 4

2CƠ SỞ LÝ THUYẾT 5

2.1 Phương pháp số 5

2.2 Rời rạc hóa phương trình vi phân thành hệ phương trình đại số 6

2.3 Công thức tính thông lượng “fluxes” cho một cell tại các biên và bêntrong miền tính toán 6

2.4 Sơ đồ giải thuật để viết chương trình (code): 12

2.5 Lựa chọn phương pháp giải quyết phù hợp 13

3KẾT QUẢ TÍNH TOÁN VÀ THẢO LUẬN 14

Trang 3

PHỤ LỤC HÌNH ẢNH

Hình 1: Normal cells 7

Hình 2: Bottom-Left corner boundary 7

Hình 3: Left wall boundary 8

Hình 4: Top-Left corner boundary 9

Hình 5: Top-Right corner boundary 9

Hình 6: Right wall boundary 10

Hình 7: Bottom-Right corner boundary 10

Hình 8: Bottom wall boundary 11

Hình 9: Top wall boundary 11

Hình 10: Sơ đồ giải thuật 12

Hình 11: Miền tính toán 13

Hình 12: Contour tại mức lưới 32cells 15

Hình 13: Contour tại mức lưới 800cells 15

Hình 14: Contour tại mức lưới 3200cells 15

Hình 15: Contour tại mức lưới 12800cells 15

Hình 16: So sánh giữa hai giản đồ upwind và central 19

Hình 17: Contour nhiệt độ tại Pr =1.5 Re = 20 20

Hình 18: Contour nhiệt độ tại Pr =1 Re = 35 20

Trang 4

PHỤ LỤC ĐỒ THỊ

Đồ thị 1: Khảo sát hội tụ lưới 16Đồ thị 2: Đồ thị nhiệt độ tại y = 1 ở các hệ số khác nhau 21Đồ thị 3: Đồ thị nhiệt độ tại x=0.5 ở các hệ số khác nhau 21

Trang 5

1 VẤN ĐỀ

1.1 Đề bài

Xem xét vấn đồ đối lưu – khuếch tán hai chiều ổn định của nhiệt độ:

Trong đó Pr là hằng số Prandtl và Re là số Reynolds. Điều kiện biên: T(0,y) = 0; T(1,y) = 1; ;

 Điều kiện biên theo phương ngang như sau:

 là thành phần vận tốc theo phương x

 là thành phần vận tốc theo phương y

Trang 6

 Ở trong bài tập lớn này ta cần sử dụng các giản đồ số để xác định được T(x,y)

là nhiệt độ trong miền tính toán, đồng thời giải quyết các vấn đồ được đặt ra ởmục 2 để có thể hiểu rõ về các giản đồ, phương pháp giản đồ số nào phù hợphơn,…

1.2 Giải quyết vấn đề

1.2.1 Ảnh hưởng của kích thước lưới

Dùng giản đồ số “upwind” bậc nhất cho các số hạng đối lưu, tự do thiết kế 03 loại lưới

(thô, vừa, và mịn) để xét độ hội tụ lưới, viết chương trình (code) để tìm sự phân bốnhiệt độ T(x, y) trong miền tính toán và nhiệt độ tại các đường x = 0.5 và y = 1 Trình

bày hình ảnh, vẽ đồ thị và nhận xét kết quả cho 03 loại lưới trên.

1.2.2 Ảnh hưởng của giản đồ số cho số hạng đối lưu

Dùng giản đồ số trung tâm “central” cho các số hạng đối lưu để tính toán kết quả, rồiso sánh với kết quả khi dùng giản đồ số “upwind” ở câu 1 cho cùng 1 lưới.

1.2.3 Ảnh hưởng của các thông số Re và Pr trong số hạng khuếch tán.

Thay đổi các hằng số như sau:a) Pr = 1 và Re = 35

b) Pr = 1,5 và Re = 20

Khi đó dùng giản đô số “upwind” cho các số hạng đối lưu và lưới hội tụ xác định câu 1

để tìm phân bố T(x, y) Nhận xét kết quả đạt được ở câu 3 và so sánh với kết quả ở câu

1 cùng các điều kiện (lưới và giản đồ số).

Trang 7

2 CƠ SỞ LÝ THUYẾT

2.1 Phương pháp số

Ta có ba phương pháp chính để giải một bài toán trong lưu chất

Sai phân hữu hạn

FDM - Dễ lập trình.- Có thể giải trên các máy tínhsong song.

- Tốt nhất trên lưới hình chữnhật.

- Khó sử dụng với nhữngmô hình có hình phứctạp.

- Chỉ dùng cho lưới cấutrúc.

Phần tử hữu hạn

FEM - Phương pháp liên tục.- Các hàm cơ bản được sử dụngđể tính gần đúng nghiệm.- Cho phép tính toán ở nhiều

loại lưới khác nhau.

- Dễ sử lý những mô hình cóbiên dạng hình học cong.

- Khó xác định bảo toàncục bộ.

- Khó rời rạc một bàitoán đối lưu

Thể tích hữu hạn

FVM - Dễ lập trình- Phương pháp rời rạc.

- Bảo toàn cục bộ dẫn đếnthông lượng trong mỗi thể tíchkiểm soát được bảo toàn.- Cho phép tính toán ở nhiều

dạng lưới khác nhau.

- Để đạt được high-orderthì cần phải sử dụngcác loại lưới cấu trúc,điều này dễ làm ảnhhưởng đến hình họccủa mô hình.

Yêu cầu của để bài là:

- Giải quyết là bài toán về truyền nhiệt trong lưu chất có thành phần đối lưu và

Trang 8

Vậy nên nhóm quyết định sử dụng phương pháp thể tích hữu hạn (FVM) để giải quyếtbài toán.

2.2 Rời rạc hóa phương trình vi phân thành hệ phương trình đại số

101\*MERGEFORMAT (.)

Trang 9

Hình 1: Normal cells

02\* MERGEFORMAT (.)

Phần tử ở biên góc trái tại x =0

Với điều kiện biên

Phần tử 2

Trang 10

303\*MERGEFORMAT (.)

Phần tử 3:

Hình 3: Left wall boundary

04\* MERGEFORMAT (.)

Phần tử 4

Trang 11

Hình 4: Top-Left corner boundary

505\*MERGEFORMAT (.)

Với biên phải tại x =1

Phần tử 5

Hình 5: Top-Right corner boundary

Trang 12

606\*MERGEFORMAT (.)

Trang 13

808\*MERGEFORMAT (.)

Phần tử phía dưới y = 0 – Phần tử 8

Hình 8: Bottom wall boundary

909\* MERGEFORMAT (.)

Phần tử phía trên tại y = 1 – Phần tử 9

Trang 14

Hình 9: Top wall boundary

010\* MERGEFORMAT (.)

Trang 15

2.4 Sơ đồ giải thuật để viết chương trình (code):

Hình 10: Sơ đồ giải thuật

Miền tính toán (Domain) [1x2] được chia lưới dưới dạng hình chữ nhật với a ô lướitheo chiều x và b ô lưới theo chiều y Các ô lưới (cell) được đánh số thứ tự từ 1 đến N= a.b như hình bên dưới

Trang 16

12345…j … a-2a-1a

32a+12a+22a+32a+42a+5………2a+(a-2) 2a+(a-1)3a

43a+13a+23a+33a+43a+5………3a+(a-2) 3a+(a-1)4a

b-1(b-2)a+1 (b-2)a+2 (b-2)a+3 (b-2)a+4 (b-2)a+5………(b-2)a+a-2 (b-2)a+a-1 (b-2)a+a

b(b-1)a+1 (b-1)a+2 (b-1)a+3 (b-1)a+4 (b-1)a+5………(b-1)a+a-2 (b-1)a+a-1abHình 11: Miền tính toán

Vị trí của một ô lưới được xác định theo quy tắc như một phần từ trong ma trận, tức ôlưới ở hàng i và cột i có vị trí (i,j) và có số thứ tự là n = (i – 1).a – j

Ma trận hệ số A và B chứa các hệ số của phương trình giải cho ô lưới thứ n sẽ có kíchthước NxN và 1xN.

Hàng thứ n của mà ma trận A và B là hệ số của phương trình khuếch tán – đối lưu viếtcho ô lưới T(i,j) (với n = (i -1).a+j ).

2.5 Lựa chọn phương pháp giải quyết phù hợp

Để thực hiện giải các nghiệm của hệ phương trình : A.x = B, ta có nhiều phương phápgiải quyết Trong Matlab, để giải hệ phương trình tuyến tính dạng A⋅x = B, ta có thể sử

dụng hàm mldivide hoặc mrdivide, hoặc sử dụng các hàm khác như linsolve hoặc cáchàm giải hệ phương trình tuyến tính cụ thể như inv, lu, qr, chol

Cơ sở toán học phổ biến cho việc giải hệ phương trình này là sử dụng các phươngpháp đại số tuyến tính như:

- Phương pháp ngịch đảo ma trận (Matrix inversion method):

x= A−1.B

Tuy nhiên, phương pháp này không phổ biến trong thực tế vì nó yêu cầu tính toán matrận nghịch đảo, đòi hỏi nhiều tài nguyên tính toán của máy tính và không hiệu quảcho các ma trận lớn.

Trang 17

- Phương pháp phân rã LU (LU decomposition): Phương pháp này phân rã ma

trận A thành tích của một ma trận tích LU, trong đó L là một ma trận tam giácdưới và U là một ma trận tam giác trên Sau đó, hệ phương trình được giải bằngviệc giải hai hệ phương trình tam giác:

{Ly=BUx= y

Trong đó, y và x là các vectơ không gian tương ứng.

- Phương pháp sử dụng Decomposition QR: Tương tự như phân rã LU, nhưng

phân rã A thành tích của một ma trận trực giao Q và một ma trận tam giác trênR Cách tiếp cận này thích hợp cho các ma trận dài và hẹp.

- Phương pháp sử dụng Cholesky Decomposition: Được sử dụng cho các ma trận

đối xứng và xác định dương.

Các phương pháp này tùy thuộc vào tính chất cụ thể của ma trận A và có thể cải thiệnhiệu suất tính toán Trong mã nguồn của MATLAB sẽ thực hiện các phương pháp nàymột cách tối ưu để cung cấp kết quả chính xác và hiệu quả khi giải hệ A.x = B

3 KẾT QUẢ TÍNH TOÁN VÀ THẢO LUẬN

3.1 Câu 1

Tiến hành khảo khát độc lập lưới tại các mức lưới có số lượng ô lưới (cell) khácnhau:

Trang 18

Hình 12: Contour tại mức lưới 32cellsHình 13: Contour tại mức lưới 800cells

Hình 14: Contour tại mức lưới 3200cellsHình 15: Contour tại mức lưới 12800cells

Khảo sát giá trị nhiệt độ tại vị trí (x,y) = (0.5,1), kết quả cho ở đồ thị:

Trang 19

Khảo sát hội tụ lưới

Đồ thị 1: Khảo sát hội tụ lưới

Nhận xét: Về mặt lý thuyết, lưới có độ mịn càng cào thì độ chính xác càng cao

tuy nhiên thời gian tính toán cũng càng lớn và bộ nhớ xử lý của máy tính càngcần nhiều hơn Từ quá trình khảo sát độ hội tụ lưới ta thấy, với mức lưới khoảngtrên 4000 cells Kết quả cho ra độ sai lệch không đáng kể (đạt hội tụ lười) Dovậy để tiết kiện thời gian và tài nguyên máy tính nhưng không mất tính chínhxác, ta lựa chọn kích cỡ lưới là 7200 cells ( 60 ô lưới trên trục x và 120 ô lướitrên trục y).

Dưới đây là kết quả tham khảo của lưới 7200 cells sử dụng giản đồ CentralScheme:

0.82890.83420.83980.8457…0.96850.97750.98650.99550.83430.83970.84530.8512…0.97010.97860.98710.99570.83790.84340.84900.8549…0.97110.97930.98760.99590.83980.84520.85090.8567…0.97170.97970.98780.9959

Trang 20

3.2 Câu 2

Giản đồ Upwind và Central là hai phương pháp phổ biến được sử dụng trongphân tích phần tử hữu hạn (CFD) cho các bài toán 2D So sánh giữa hai giản đồnày:

Giản đồ Upwind:Ưu điểm:

Hiệu quả cho các bài toán có dòng chảy mạnh và có tính chất 'dòng một chiều'(one-directional flow), trong đó dòng chảy chủ yếu di chuyển theo một hướng.Giảm hiện tượng dao động và sự phân tán nếu dòng chảy di chuyển theo mộthướng cụ thể.

Nhược điểm:

Không hiệu quả khi xử lý các hiện tượng dòng chảy phức tạp hoặc đa chiều.Dễ gây ra hiện tượng mất cân bằng nếu không được thực hiện cẩn thận.Giản đồ Central:

Trang 21

thuộc vào tính chất cụ thể của bài toán và sự kỹ năng của người mô phỏng đểcấu hình và sử dụng chúng một cách hiệu quả.

Khảo sát giá trị nhiệt độ của cells 1 (giá trị T(1,1)) đối với từng kích thước lưới ở 2giản đồ Upwind-Scheme và Central-Scheme:

Upwind – SchemeCentral – Scheme

UpWind-Scheme Central-Scheme

320.20850.176615.31%2000.21070.20104.60%4500.15160.14554.05%8000.11570.11183.34%32000.05800.05701.86%72000.03860.03811.27%128000.02880.02860.96%T(1,1); Pr = 1, Re = 20 Delta (%)Cells

Trang 23

Hình 17: Contour nhiệt độ tại Pr =1.5 Re = 20

Trang 24

Với trường hợp tăng hệ số Reynolds, do hiệu ứng thủy động lực mạnh hơn ở số Reynolds cao hơn, sự khuếch tán theo hướng ngang bị giảm đi và khả năng truyền nhiệt của lưu chất giảm đi đáng kể.

Đồ thị nhiệt độ tại y = 1 ở các hệ số khác nhau

Pr=1 Re=20Pr= 1.5 Re=20Pr=1 Re=35

Đồ thị nhiệt độ tại x=0.5 ở các hệ số khác nhau

Pr=1 Re=20Pr= 1.5 Re=20Pr=1 Re=35y

Đồ thị 3: Đồ thị nhiệt độ tại x=0.5 ở các hệ số khác nhau

Trang 25

Có thể thấy được rằng sự ảnh hưởng đến khả năng truyền nhiệt của hệ sốReynolds và hệ số Prandtl lên bài toán gần như là giống nhau Chúng đều làmgiàm khả năng truyền nhiệt.

Trang 26

TÀI LIỆU THAM KHẢO

Trang 27

PHỤ LỤC

Code vẽ đồ thị phân bố vận tốc:

[X, Y] = meshgrid(0:(1/20):1, 0:(2/20):2);u = -sin(pi*X).*cos(pi*Y);

v = cos(pi*X).*sin(pi*Y);

quiver(X, Y, u, v);xlabel('x');

title('Vector V');axis equal;

contourf(X, Y, sqrt(u.^2 + v.^2)); colorbar;

title('Contour velocity');axis equal;

Trang 28

Output:

Code giản đồ số Central Scheme (Matlab):

% BTL 1% Input

dy = 2/b;

N = a*b; % Number of cells

fprintf('Total cell: %d\n', N);

Trang 29

% Domain matrix

A = zeros(N,N);B = zeros(N,1);

Domain = sym('d',[b,a]);

% Matrix coorndinat

X = dx/2;Y = dy/2;

% West face

fluxw = 0-(1/(Pr*Re))*dy*((Domain(1,1)-0)/(0.5*dx));

% Y axis

Trang 30

fluxn = v*dx*Domain(1,1);

% South face

v = cos(pi*X(1))*sin(pi*(Y(b)-dy/2)); fluxs =

p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,

[Domain(1,1),Domain(1,2),Domain(2,1)]);Coeff_Domain = double(Coeff_Domain);A(1,1) = Coeff_Domain(3);

A(1,2) = Coeff_Domain(2);A(1,a+1) = Coeff_Domain(1);

% Top-Right corner boundary (1,a)% X axis

% Est face

u = -sin(pi*(X(a)+dx/2))*cos(pi*Y(b));

fluxe = Domain(1,a));

% West face

u = -sin(pi*(X(a)-dx/2))*cos(pi*Y(b)); fluxw =

u*dy*0.5*(Domain(1,a-1)+Domain(1,a))-(1/(Pr*Re))*(dy/dx)*(Domain(1,a)-Domain(1,a-1));

Trang 31

% Y axis% North face

v = cos(pi*X(a))*sin(pi*(Y(b)+dy/2)); fluxn = v*dx*Domain(1,a);

% South face

v = cos(pi*X(1))*sin(pi*(Y(b)-dy/2)); fluxs =

p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,[Domain(1,a-1),Domain(1,a),Domain(2,a)]);

Coeff_Domain = double(Coeff_Domain); A(a,a-1) = Coeff_Domain(4);

A(a,a) = Coeff_Domain(3); A(a,2*a) = Coeff_Domain(2); B(a) = - Coeff_Domain(1);

% Bottom-Left corner boundary b,1% X axis

% Est face

u = -sin(pi*(X(1)+dx/2))*cos(pi*Y(1)); fluxe =

u*dy*0.5*(Domain(b,2)+Domain(b,1))-(1/(Pr*Re))*(dy/dx)*(Domain(b,2)-Domain(b,1));

Trang 32

fluxw = 0-(1/(Pr*Re))*dy*(Domain(b,1)-0)/(0.5*dx);

% Y axis% South face

v = cos(pi*X(1))*sin(pi*(Y(1)-dy/2)); fluxs = v*dx*Domain(b,1);

% North face

v = cos(pi*X(1))*sin(pi*(Y(1)+dy/2)); fluxn =

p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,[Domain(b-1,1),Domain(b,1),Domain(b,2)]);

Coeff_Domain = double(Coeff_Domain);

A((b-1)*a+1,(b-2)*a+1) = Coeff_Domain(3);A((b-1)*a+1,(b-1)*a+1) = Coeff_Domain(2);A((b-1)*a+1,(b-1)*a+2) = Coeff_Domain(1);

% Bottom-Right corner boundary (b,a)% X axis

% Est face

u = -sin(pi*(X(a)+dx/2))*cos(pi*Y(1));

fluxe = Domain(b,a));

Trang 33

% West face

u = -sin(pi*(X(a)-dx/2))*cos(pi*Y(1)); fluxw =

% Y axis% South face

v = cos(pi*X(a))*sin(pi*(Y(1)-dy/2)); fluxs = v*dx*Domain(b,a);

% North face

v = cos(pi*X(a))*sin(pi*(Y(1)+dy/2)); fluxn =

p = fluxn - fluxs + fluxe - fluxw;

Coeff_Domain = 1),Domain(b,a)]);

coeffs(p,[Domain(b-1,a),Domain(b,a-Coeff_Domain = double(coeffs(p,[Domain(b-1,a),Domain(b,a-Coeff_Domain); A(a*b,(b-2)*a+a) = Coeff_Domain(4); A(a*b,(b-1)*a+a-1) = Coeff_Domain(3); A(a*b,a*b) = Coeff_Domain(2);

B(a*b) = - Coeff_Domain(1);

% Left Boundary (i,1)for i = 2 : (b-1)

Trang 34

% Est face

u = -sin(pi*(X(1)+dx/2))*cos(pi*Y(b-i+1)); fluxe =

fluxw = 0-(1/(Pr*Re))*(dy/(0.5*dx))*(Domain(i,1)-0);

v = cos(pi*X(1))*sin(pi*(Y(b-i+1)-dy/2)); fluxs =

p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,[Domain(i-

1,1),Domain(i,1),Domain(i,2),Domain(i+1,1)]);Coeff_Domain = double(Coeff_Domain);

A((i-1)*a+1,(i-2)*a+1) = Coeff_Domain(4);A((i-1)*a+1,(i-1)*a+1) = Coeff_Domain(3);A((i-1)*a+1,(i-1)*a+2) = Coeff_Domain(2); A((i-1)*a+1,i*a+1) = Coeff_Domain(1);

end

Trang 35

% Right Boundary (i,a)for i = 2 : (b-1)

% X axis% Est face

u = -sin(pi*(X(a)+dx/2))*cos(pi*Y(b-i+1));

fluxe = Domain(i,a));

% West face

u = -sin(pi*(X(a)-dx/2))*cos(pi*Y(b-i+1)); fluxw =

% Y axis% North face

v = cos(pi*X(a))*sin(pi*(Y(b-i+1)+dy/2)); fluxn =

% South face

v = cos(pi*X(a))*sin(pi*(Y(b-i+1)-dy/2)); fluxs =

Trang 36

p = fluxn - fluxs + fluxe - fluxw;

Coeff_Domain = 1),Domain(i,a),Domain(i+1,a)]);

coeffs(p,[Domain(i-1,a),Domain(i,a-Coeff_Domain = double(coeffs(p,[Domain(i-1,a),Domain(i,a-Coeff_Domain);

A((i-1)*a+a,(i-2)*a+a) = Coeff_Domain(5); A((i-1)*a+a,(i-1)*a+a-1) = Coeff_Domain(4); A((i-1)*a+a,(i-1)*a+a) = Coeff_Domain(3); A((i-1)*a+a,i*a+a) = Coeff_Domain(2);

B((i-1)*a+a)= - Coeff_Domain(1);

% Top Boundary (1,j)for j = 2 : (a-1)

% X axis% Est face

u = -sin(pi*(X(j)+dx/2))*cos(pi*Y(b)); fluxe =

% West face

u = -sin(pi*(X(j)-dx/2))*cos(pi*Y(b)); fluxw =

u*dy*0.5*(Domain(1,j-1)+Domain(1,j))-(1/(Pr*Re))*dy*(Domain(1,j)-Domain(1,j-1))/dx;

Trang 37

% Y axis% North face

v = cos(pi*X(j))*sin(pi*(Y(b)+dy/2)); fluxn = v*dx*Domain(1,j);

% South face

v = cos(pi*X(j))*sin(pi*(Y(b)-dy/2)); fluxs =

p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,[Domain(1,j-

1),Domain(1,j),Domain(1,j+1),Domain(2,j)]);Coeff_Domain = double(Coeff_Domain);

A(j,j-1) = Coeff_Domain(4); A(j,j) = Coeff_Domain(3); A(j,j+1) = Coeff_Domain(2); A(j,a+j) = Coeff_Domain(1);

% Bottom Boundary (b,j)for j = 2 : (a-1)

% X axis% Est face

u = -sin(pi*(X(j)+dx/2))*cos(pi*Y(1));

Ngày đăng: 06/05/2024, 15:18

Tài liệu cùng người dùng

Tài liệu liên quan