Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 126 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
126
Dung lượng
1,76 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG PHƯƠNG PHÁP PROPER GENERALI ZEDDECOMPOSITION SKC003841 Tp Hồ Chí Minh, 11/2012 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH KHOA XÂY DỰNG VÀ CƠ HỌC ỨNG DỤNG NGÀNH CƠ TIN KỸ THUẬT MSSV: 09106022 MSSV: 09106034 MSSV: 09106039 BÁO CÁO NGHIÊN CỨU KHOA HỌC Đề tài: PHƯƠNG PHÁP PROPER GENERALIZED DECOMPOSITION GVHD: SVTH: Thành Phố Hồ Chí Minh, tháng 11 năm 2012 BỘ GIÁO DỤC VÀ ĐÀO TẠO Trường Đại Học Sư Phạm Kỹ Thuật CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc Tp.HCM Khoa Xây Dựng Cơ Học Ứng Dụng NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP Họ tên: Vũ Minh Khoa Trịnh Văn Quốc Ngành : Tống Quốc Tuấn Cơ - Tin Kỹ Thuật 1) Đề tài luận văn: Phương pháp Proper Generalized Decomposition 2) Các số liệu ban đầu: Không 3) Nội dung phần học lý thuyết tính tốn lập trình - Phương pháp Proper generalized decomposition - Viết code cho giải thuật Proper generalized decomposition 4) Giáo viên hướng dẫn: TS Phan Đức Huynh 5) Ngày giao nhiệm vụ: 6) Ngày hoàn thành nhiệm vụ: Giáo viên hướng dẫn TS Phan Đức Huynh BỘ GIÁO DỤC VÀ ĐÀO TẠO NAM TS Phan Đức Huynh CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM Độc lập – Tự – Hạnh phúc Khoa Xây Dựng Cơ Học Ứng Dụng NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……………………………………………………………………………………………… Đại Học Sư Phạm Kỹ Thuật TP.HCM, ngày tháng năm 2012 Giáo viên hướng dẫn TS Phan Đức Huynh BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM Độc lập – Tự – Hạnh phúc Khoa Xây Dựng Cơ Học Ứng Dụng NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Đại Học Sư Phạm Kỹ Thuật TP.HCM, ngày tháng năm 2012 Giáo viên phản biện BỘ GIÁO DỤC VÀ ĐÀO TẠO Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc Khoa Xây Dựng Cơ Học Ứng Dụng NHẬN XÉT CỦA HỘI ĐỒNG Đại Học Sư Phạm Kỹ Thuật TP.HCM ngày tháng năm 2012 Chủ tịch hội đồng LỜI CẢM ƠN Trong suốt trình thực đề tài nghiên cứu gặp số khó khăn kiến thức phần mềm ứng dụng Để có kết việc nghiên cưu ngày hơm nay, nhờ giúp đỡ, hướng dẫn TS.Phan Đức Huynh, với cố gắng nhóm Đầu tiên nhóm thực xin gửi lời cảm ơn chân thành đến TS.Phan Đức Huynh tận tình hướng dẫn, giúp đỡ nhóm hồn thành đề tài nghiên cứu Xin chân thành cảm ơn trường Đại học Sư Phạm Kỹ Thuật khoa Xây Dựng & Cơ Học Ứng Dụng tạo điều kiện cho sinh viên có điều kiện tiếp cận, tìm hiêu nghiên cứu thực tế, tảng để sinh viên phát huy khả tư duy, học hỏi sáng tạo TP.HCM, tháng 12 năm 2012 Nhóm thực : Vũ Minh Khoa MSSV: 09106022 Trịnh Văn Quốc MSSV: 09106034 Tống Quốc Tuấn MSSV: 09106039 Mục lục Proper Generalized Decomposition MỤC LỤC PHẦN A: DẪN NHẬP I Lý chọn đề tài II Mục đính nghiên cứu III Khách thể đối tượng nghiên cứu IV Giả thuyết nghiên cứu V Giới hạn đề tài PHẦN B: NỘI DUNG Chương 1: CƠ SỞ LÝ THUYẾT I Giới thiệu II Cơ sở lý thuyết phương pháp Proper generalized decomposition Chương 2: ỨNG DỤNG CHO BÀI TOÁN 1D 14 Bài 1: Bài tốn dịng chảy ổn định chiều ống 14 I Mơ tả tốn: 14 II Phương trình điều khiển: 14 III Giải toán phương pháp PGD: 16 Giải thuật 18 Kết 18 Bài 2: Bài toán truyền nhiệt chiều 20 I Yêu cầu toán: 20 II Giải toán phương pháp PGD: 20 Lưu đồ giải thuật 22 Kết 23 Chương 3: ỨNG DỤNG CHO BÀI TOÁN 2D 25 A – CƠ SỞ LÝ THUYẾT CHO BÀI TOÁN 25 I Các phương trình mơ tả dịng lưu chất 2D 25 Phương trình động lượng (Navier Stokes equations) 25 Phương trình liên tục (continuity equation) 25 Điều kiện ràng buộc toán 2D 26 II Rời rạc phương trình Navier-Stokes 28 Xử lý đạo hàm riêng 28 1.1 Chia lưới cho miền tính tốn 28 1.2 Cơ sở phương pháp Sai phân cho phương trình Navier Stokes 29 1.3 Rời rạc xấp xỉ đạo hàm phương trình Navier Stokes 31 Giá trị biên cho phương trình rời rạc 34 Rời rạc đạo hàm theo thời gian 37 III Thuật toán cho việc giải tốn dịng lưu chất 2D 37 Phương trình động lượng (Navier Stokes) 39 Phương trình Poisson cho áp suất 40 Giải thuật PGD cho phương trình Poisson áp suất 41 Mục lục Proper Generalized Decomposition B – ÁP DỤNG CHO BÀI TOÁN HAI CHIỀU (2D 45 Bài tốn 1: Tính vận tốc dòng lưu chất miền tự 45 Mơ hình 45 Dữ liệu toán 45 Phân tích tốn 45 Tiến hành tính tốn 46 Kết quả: 47 Với phương trình Poisson áp suất giải phương pháp SOR: 47 Với phương trình Poisson áp suất giải phương pháp PGD: 48 Nhận xét: 50 Chương 4: PHÁT TRIỂN GIẢI THUẬT PGD 51 KẾT LUẬN 66 PHẦN C: PHỤ LỤC 68 PHỤ LỤC A: Phương trình vi phân riêng phần (PDE) 69 PHỤ LỤC B: Phương pháp Sai phân hữu hạn 71 PHỤ LỤC C: Phương pháp Successive Over Relaxation (SOR) 75 Phần A: Dẫn nhập Proper Generalized Decomposition PHẦN A: DẪN NHẬP 69 Phần Phụ lục A Proper Generalized Decomposition Một số phương pháp tính tốn cho PDE: Phương pháp tách biến (Separation of variables): Là phương pháp dùng để tách ẩn số phương trình vi phân đạo hàm riêng đa chiều, thành nhiều phương trình rời rạc với số chiều (chứa biến độc lập hơn) Ví dụ: Xét phương trình nhiệt chiều sau: u k 2u t x2 Tách biến: (P1.2) ux, t XxTt Thay vào lại phương trình (P1.2) ta có: (P1.3) Giải phương trình ta được: ux, tDn sin n1 Với Dn: hệ số xác định điều kiện toán Và vài phương pháp giải tích khác như: đổi biến, phương pháp dựa đặc trưng phương trình biểu diễn… Ngồi ra, cịn có phương pháp số sử dụng để giải PDE như: Sai phân hữu hạn (Finite difference method – FDM), Phần tư hữu hạn (Finite element method – FEM), Thể tích hữu hạn (Finite volume method) 70 Phần Phụ lục B Proper Generalized Decomposition PHỤ LỤC B PHƯƠNG PHÁP SAI PHÂN HỮU HẠN – FINITE DIFFERENCE METHOD (FDM) Dựa phương pháp tính xấp xỉ đạo hàm, phương pháp sai phân (FDM) chia làm nhiều loại: sai phân lùi (Backward diffference), sai phân tiến (Forward difference), sai phân trung tâm (Central difference) Bằng cách rời rạc miền khảo sát, tiến hành tính nghiệm phương trình vi phân (Difference equation) điểm nút (grid point) lưới vuông (rectangular grid) Phương pháp Sai phân hữu hạn phương pháp số bản, thường sử dụng việc tính phương trình vi phân tuyến tính Cơ sở phương pháp Sai phân: Sử dụng khai triển Chuỗi khai triển Taylor (Taylor’s series expansion): x i1 i x i1 i Hình P2.1 Rời rạc hàm f(x) theo sai phân hưu hạn Trong đó: x(t): hàm số theo biến t xi = x (t = ti) : giá trị rời rạc t = ti h = ti+1 – ti : bước chia lưới Xấp xỉ đạo hàm bậc (First derivative) Sai phân trung tâm: xi dx dt 71 Phần Phụ lục B Proper Generalized Decomposition Xấp xỉ đạo hàm bậc (Second derivative) Sai phân trung tâm: (P2.4) xi Sai phân trung tâm cho toán trị biên bậc tự do: Phương trình vi phân cho tốn: (P2.5) mx cx kx Ft Rời rạc theo biến t, phương trình (P2.4) trở thành: (P2.6) (P2.7) m t Từ (P2.7) ta lập hệ gồm (n – 1) phương trình với (n – 1) ẩn số (với n: số khoảng chia) Giá trị x1 xn+1 xác định điều kiên biên cho trước.Ta dễ dàng giải hệ phương trình (P2.7) để tìm dược giá trị xi (với i = 2,3,…,n) Sử dụng phương pháp Sai phân để giải phương trình vi phân đạo hàm riêng: Để dễ dàng phân tích, chúng tơi đề xuất việc giải phương trình vi phân đạo hàm riêng sau: u t Sử dụng rời rạc theo biến x t, ta có phương pháp sau: k Explicit Method: Áp dụng Sai phân tiến rời rạc đạo hàm theo t, sai phân trung tâm cho biến x: u nj1 u nj ru nj1 2.u nj unj1 Trong đó: (P2.10) (P2.9) Ta tính giá trị un 1 j 72 Phần Phụ lục B Proper Generalized Decomposition Sai số đạt được:utx2 Hình P3.2 Explicit method Implicit Method: Áp dụng sai phân lùi rời rạc đạo hàm theo t, sai phân trung tâm cho biến x: u nj1 u nj k u nj11 2.u nj1 unj11 t x2 Giá trị unj 1 (P2.12) tính theo: 1 2ru nj1 ru nj11 u nj runj11 (P2.13) Sai số đạt được:utx2 Hình P3.3 Implicit method Crank – Nicolson Method: Áp dụng sai phân trung tâm tính xấp xỉ đạo hàm t = tn+1/2 ta có: 1 u nj u nj (P2.14) t Khi đó, giá trị unj 1 (P2.15) tính theo: 2 2ru nj1 ru nj11 ru nj11 2 2ru nj ru nj1 runj1 Sai số đạt được:ut 2x4 73 Phần Phụ lục B Proper Generalized Decomposition Hình P3.4 Crank – Nicolson method Code Matlab sử dụng FDM cho toán trị biên chiều: function [R,DR,D2R]=fdm(a,b,f,dx,n,x0,xn) % -% % Calculating 2nd-ODE form: % ax” + bx = f % input: a,b,f % dx: step size % n: number of step in [x0 x(end)] % xo,xn: boundary conditions % output: x,x’,x” % -% A=zeros(n-1); B=zeros(n-1,1); R=zeros(n+1,1); DR=zeros(n+1,1); D2R=zeros(n+1,1); R(1)=x0; R(n+1)=xn; for i=1:n-1 if i==1 A(i,i)=2-b*dx^2/a; A(i,i+1)=-1; B(i)=-f(i+1)*dx^2/a+R(1); elseif i==n-1 A(i,i-1)=-1; A(i,i)=2-b*dx^2/a; B(i)=-f(i+1)*dx^2/a+R(n+1); else A(i,i-1)=-1; A(i,i)=2-b*dx^2/a; A(i,i+1)=-1; B(i)=-f(i+1)*dx^2/a; end end R(2:n)=A\B; D2R=(f-b.*R)./a; DR(1)=(R(2)-R(1)-D2R(1)*dx^2/2)/dx; DR(n+1)=(R(n+1)-R(n)+D2R(n+1)*dx^2/2)/dx; DR(2:n)=(R(3:n+1)-R(1:n-1))/(2*dx); 74 Phần Phụ lục C Proper Generalized Decomposition PHỤ LỤC C PHƯƠNG PHÁP LẶP SUCCESSIVE OVER RELAXATION (SOR) Phương pháp lặp Successive Over Relaxation (SOR) dạn biến thể phương pháp lặp Gauss-Seidel, ứng dụng giải hệ phương trình với số lần lặp phương pháp gốc Nội dung phương pháp SOR: Hệ phương trình có (P3.1) dạng: AX=B Với : A = D + L + U Trong đó: a11 a A 21 a a m1 a a 1m 2m 11 0 D 0 a Hệ (P4.1) viết lại sau: D L U x b D L U xb D L x bU1D x x n1 D L1 bU1D xn Tổng quát: xin11 xin Với ω = 1: phương pháp SOR trở thành phương pháp Gauss – Seidel Hệ số ω chọn khoảng: < ω < Giải thuật: Giá trị đầu vào (input): A, B, ω Giá trị đầu (output): x Chọn giá trị khởi dộng x repeat n = : Nmax or until convergence (P3.2) 75 Phần Phụ lục C Proper Generalized Decomposition for i = : m 0 for j = : i – aij xnj end for j = i+1 : m aij x jn1 end xin11 xnj end check if convergence is reached end Áp dụng cho toán 2D: Giải thuật SOR cho phương trình Poisson áp suất đề cập chương 3: n1, ,n max { 1, ,imax i { j1, , jmax { pi ,nj1 1 pi ,nj E i W i } x2 } } Kí hiệu rhsi, j thay cho vế phải phương trình Poisson áp suất (3.36) Trong kí hiệu: i 76 Phần Phụ lục C Proper Generalized Decomposition Matlab code: function P=sor(beta,rhs,nx,ny,hx2,hy2,Nmax,MaxErr) % % % % Calculating Poisson Eq by SOR method input: - beta:SOR coefficient % - rhs:right hand side Poisson Eq % - nx,ny: number of step for x,y % - hx2,hy2: delta x,y squared % - Nmax:maximum number of interation % - MaxErr: Maximum Error % output: P: pressure % % for n=1:Nmax P_chk=P; for i=2:nx+1 for j=2:ny+1 P(i,j)=(1-Beta)*P(i,j)+Beta/… ((CE+CW)/hx2+(CN+CS)/hy2)*… ((CE*P(i+1,j) +CW*P(i-1,j))/hx2+… (CN*P(i,j+1)+CS*P(i,j-1))/hy2-rhs(i,j)); end end %check for pressure convergence Err=0.0; for i=2:nx+1 for j=2:ny+1 Err=Err+abs(P_chk(i,j)-P(i,j)); end; end; if Err