Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 156 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
156
Dung lượng
1,6 MB
Nội dung
Lời cảm ơn Trước hết xin cảm ơn TS Đặng Văn Vinh nhiệt tình hướng dẫn, tạo điều kiện, đóng góp nhiều ý kiến q báu để tơi hồn thành luận văn Tơi chân thành cảm ơn thầy giáo mơn Tốn Ứng Dụng nhiệt tình giảng dạy truyền đạt lại kiến thức kinh nghiệm chun mơn Tơi xin bày tỏ lịng biết ơn tới gia đình, bạn bè động viên khích lệ tơi hồn thành luận văn Thành phố Hồ Chí Minh, Ngày 11 tháng năm 2011 Học viên Bùi Hồng Giang Tóm tắt luận văn Luận văn gồm phần phụ lục Phần I phần lí thuyết tốn học thuật tốn, bao gồm chương: • Chương I trình bày qui tắc phân tích độ nhạy nghiệm tốn, ảnh hưởng số điều kiện lên độ xác nghiệm hệ, qui tắc phân tích sai số tính tốn nói chung tính tốn máy tính nói riêng Chương I đề cập đến giải thuật LU để giải trực tiếp hệ phương trình tuyến tính hai cải tiến phương pháp LU partial pivoting & complete pivoting • Chương II trình bày cách biểu diễn ma trận thưa cách lưu trữ ma trận thưa máy tính Trong chương trình bày khái niệm thuật toán phương pháp chiếu không gian Krylov làm tảng cho phương pháp lặp hiệu lực Conjugate Gradient, GMRES Lí thuyết thuật toán đề cập • Chương III đề cập đến khái niệm & mơ hình tính tốn song song cluster cách thiết kế chương trình song song dùng MPI OpenMP • Chương IV trình bày lớp thuật toán preconditioning ma trận ILU ứng dụng preconditioning cho phương pháp Conjugate Gradient GMRES Phần Ứng dụng bao gồm chương: • Chương V trình bày sở lí thuyết học mơi trường liên tục phương trình tính tốn biến dạng vật rắn Khung chương trình (framework) phương pháp phần tử hữu hạn dùng để rời rạc hóa phương trình lượng biến dạng mơ tả nhằm cung cấp sở lí thuyết cho chương trình tính • Chương VI mơ tả chương trình tính tốn kết tính tốn với kết cấu thông dụng Phụ lục gồm mã chương trình tính phần tử hữu hạn Phụ lục trình bày mã chương trình Petsc solver Summary This thesis contains two parts and two appendices Part I mention the mathematical theory, including four chapters: • Chapter I mainly discuss about sensitivity analysis of the linear system of equations and the effect of round off errors on to the accuracies of the solution Apart from that, theory of computation error on computer is developed and presented Chapter I also mention the LU decomposition method to solve the linear system of equations directly and two variants which is partial pivoting LU and complete pivoting LU • Chapter II present the sparse matrix compression method and storage format in computer memory In this chapter, concept of projection method and Krylov subspace method is mentioned as backbone for renown iterative method "Conjugate Gradient" or "GMRES" The algorithm of these method were also regarded • Chapter III mention the concept of parallel computing model on cluster system and guideline to design program using MPI or OpenMP • Chapter IV present class of preconditioning technique like ILU and application of preconditioner to Conjugate Gradient method and GMRES method The second part is the application part comprises of two chapters • Chapter V is the theory of continuum mechanics and the governing equation of rigid body deformation The framework of Finite Element Method is developed as the basis to discretize the blance energy equation which serve as the mathematical kernel of the computation program • Chapter VI describe the finite element program to compute deformation of rigid body in linear sense and some results for popular cases Appendix I is core part of finite element program code Appendix is code for solver utilising Petsc framwork Lời cam đoan Tơi, Bùi Hồng Giang, xin cam đoan luận văn viết trình bày kinh nghiệm kiến thức cá nhân mà không chép sửa đổi tài liệu khác mà/hoặc khơng có đồng ý tác giả sử dụng tài liệu không rõ nguồn gốc Luận văn viết nhằm hoàn tất học trình cao học ngành Tốn Ứng dụng Đại học Bách khoa Tp HCM với chủ đích khơng sử dụng đề cập hình thức khác Thành phố Hồ Chí Minh, Ngày 11 tháng năm 2011 Học viên Bùi Hoàng Giang Lời mở đầu Mục tiêu nội dung nghiên cứu Mục tiêu luận văn bao gồm: Tìm hiểu sở lí thuyết tốn học, thuật tốn giải hệ phương trình tuyến tính với ma trận thưa Viết chương trình giải tốn biến dạng đàn hồi kết cấu Áp dụng chương trình viết giải số kết cấu thơng dụng có Dùng Ansys để kiểm tra kết tính tốn Hệ phương trình tuyến tính đề cập luận văn có dạng Ax = b (1) Trong đó, A ∈ Mn [R], x ∈ Rn , b ∈ Rn Như biết, phương trình (1) kết phân tích sau nhiều vấn đề lí thuyết thực tiễn sau phép rời rạc hóa lắp ghép ma trận độ cứng phần tử (VD: FEM, BEM, ) Đặc biệt tốn học tính biến dạng đàn hồi kết cấu Việc tìm cách giải hiệu thời gian nhớ điều cần thiết, nhiên khó để tìm phương pháp chung cho tất kiểu toán thực tế khơng thể tìm phương pháp Sau nhiều nỗ lực nhà toán học, số phương pháp chứng nhận hiệu đề cho kiểu ma trận riêng ma trận thưa, ma trận khối có cấu trúc đặc biệt, Việc tìm phương pháp hiệu cho toán cần khảo sát đặc thù nhiều tính tốn thử nghiệm Trong luận văn này, tác giả khảo sát phương pháp hiệu lực sẵn có dành cho hệ phương trình tuyến tính với ma trận thưa tìm hiểu cách thức giải song song cluster dựa phương pháp Cụ thể hơn, tác giả giải toán đặc thù tốn tính biến dạng đàn hồi tuyến tính kết cấu sử dụng phương pháp lặp (Conjugate Gradient & GMRES) sử dụng phương pháp trực tiếp để so sánh kết Dựa kết thu được, tốn tính lại Ansys để kiểm nghiệm độ xác Ansys chọn phần mềm chứng nhận giới hàn lâm kĩ thuật Tình hình phạm vi nghiên cứu Tính đến thời điểm nay, phương pháp cổ điển nghiên cứu đầy đủ cơng trình tác giả lớn (như Golub & van Loan [6], Ke Chen [4]) Rất nhiều code phát triển để giải hệ phương trình tuyến tính theo phương pháp trực tiếp Lapack, UmfPack có hiệu cao với ma trận có kích cỡ trung bình Các code tinh chỉnh số hệ thống phần cứng cụ thể để đạt hiệu vượt trội Các phương pháp lặp nghiên cứu sâu (chẳng hạn Saad [1]), với phương pháp lặp (CG, BiCG, ) preconditioning ma trận, tạo nhiều công cụ cho kĩ sư nhà khoa học thực tính tốn Hơn nữa, ma trận thưa có cấu trúc đặc biệt (ba đường chéo) có tính chất đặc biệt (đối xứng xác định dương) tồn phương pháp hiệu để giải Mặt khác, có cách chọn phương pháp hiệu thống kê tối ưu hóa ma trận thưa có cấu trúc đặc thù gần suy biến Tuy nhiên chưa có phương pháp thực hiệu cho loại tốn Những đóng góp luận văn Luận văn thực nghiên cứu giải thuật lặp có sẵn cách song song hóa thuật tốn cluster để giải tốn tính biến dạng đàn hồi Một thực tế chưa có nhiều nghiên cứu áp dụng tính tốn song song cho tốn dạng Các phần mềm có sẵn Ansys hỗ trợ tính tốn song song cho hệ thống đặc thù mà khơng có hỗ trợ khả chuyển rộng rãi Điểm mạnh luận văn thiết lập gói phần mềm tính tốn phần tử hữu hạn cho toán học C++ giải song song tốn tương ứng với 310464 phương trình 310464 ẩn Lưu ý với tinh vi phức tạp phương pháp phần tử hữu hạn, khơng có nhiều code mã nguồn mở hỗ trợ Mục đích tác giả viết code nhằm phục vụ nghiên cứu có khả mở rộng cho loại tốn khác Hơn tính khả chuyển dễ hiểu cân nhắc nhằm hướng tới mục tiêu mã nguồn mở tương lai Mục lục Danh sách kí hiệu I Phần lí thuyết Hệ phương trình tuyến tính phương pháp giải trực tiếp 1.1 Phân tích độ nhạy nghiệm 1.2 Phân tích sai số thuật tốn 1.2.1 Phép tính dấu chấm động 1.2.2 Sai số làm trịn phép tính 1.3 Phân tích LU 1.3.1 Phân tích LU có pivot 1.3.2 Sai số thuật toán LU Ma trận thưa phương pháp giải lặp 2.1 Biểu diễn đồ thị ma trận thưa 2.2 Hoán vị lại 2.2.1 Các phép lại điển hình 2.3 Lưu trữ ma trận thưa 2.4 Toán tử chiếu 2.4.1 Biểu diễn ma trận toán tử chiếu 2.4.2 Tốn tử chiếu vng góc 2.4.3 Tính chất tốn tử chiếu 2.5 Trực giao hóa Householder 2.6 Phương pháp chiếu 2.6.1 Một mơ tả hình học phương pháp chiếu 2.6.2 Phương pháp đường dốc (steepest descent) 2.6.3 Phương pháp số dư nhỏ 2.6.4 Phương pháp đường dốc cho số dư 2.7 Phương pháp không gian Krylov 2.7.1 Một số tính chất khơng gian Krylov 2.7.2 Xây dựng sở cho không gian Krylov 2.7.3 Phương pháp GMRES 2.7.4 Phương pháp Conjugate Gradient 9 11 11 11 13 15 17 19 20 20 22 22 24 26 26 27 28 30 34 35 35 36 36 37 38 40 42 Các mơ hình tính toán song song 3.1 Phạm vi ứng dụng 3.2 Các khái niệm 3.2.1 Cấu trúc máy tính von Newman 3.2.2 Mơ hình thực thi chương trình 3.3 Các mơ hình nhớ song song 3.3.1 Bộ nhớ chia sẻ 3.3.2 Bộ nhớ phân tán 3.3.3 Mơ hình nhớ lai 3.4 Các kĩ thuật lập trình song song 3.4.1 Lập trình song song dùng MPI 3.4.2 Lập trình song song dùng OpenMP 3.5 Thiết kế chương trình song song 3.5.1 Phân hoạch vùng chức liệu 3.5.2 Giao tiếp 3.5.3 Cân tải 3.6 Phân tích độ hiệu chương trình song song 46 47 48 48 49 49 49 51 51 52 53 53 54 54 55 56 56 Preconditioning ma trận 58 4.1 Preconditioning cho phương pháp Conjugate Gradient 58 4.2 Preconditioning cho phương pháp GMRES 59 4.3 Các kĩ thuật Preconditioning 60 Bài toán biến dạng đàn hồi tuyến tính 63 5.1 Mơ tả tốn học tốn tính biến dạng 63 5.2 Phương pháp phần tử hữu hạn 68 II Phần ứng dụng 70 Chương trình tính tốn 6.1 Cấu trúc chương trình 6.1.1 Các lớp trừu tượng 6.1.2 Các lớp kế thừa 6.1.3 Mô tả liệu đầu vào 6.1.4 Sơ đồ class 6.1.5 Solver 6.2 Ví dụ tính toán phần tử hữu hạn 6.2.1 Mô tả toán 6.2.2 Bước 1: tính tốn ma trận độ cứng phần tử 6.2.3 Bước 2: lắp ghép ma trận độ cứng toàn cục 6.2.4 Bước 3: Áp điều kiện biên 6.2.5 Bước & 5: giải hệ nội suy kết 6.3 Kết tính tốn 6.3.1 Bài toán - Tính tốn biến dạng cho chi tiết dầm 6.3.2 Bài tốn - Tính tốn biến dạng cho chi tiết hình chữ L 71 71 71 71 72 74 77 82 82 84 84 85 86 86 86 88 Kết luận hướng phát triển đề tài A Mã A.1 A.2 A.3 A.4 A.5 A.6 A.7 chương trình Phần tử hữu hạn FemBrick.h FemBrick.cpp FemBrickLE.h FemBrickLE.cpp FemElementLE.h FemElementLE.cpp FemLEDefine.h B Mã chương trình Petsc Solver 90 93 93 96 107 108 114 119 139 142 Danh sách bảng 1.1 1.2 1.3 1.4 Thuật Thuật Thuật Thuật toán toán toán toán xây dựng dãy ma trận Mi phân tích LU LU có pivot (partial pivoting) LU với pivot đầy đủ (complete 14 14 16 17 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 Giải thuật Cuthill-McKee Thuật tốn khơi phục lại ma trận gốc từ dạng CSR Thuật toán trực giao hóa Householder Thuật toán mẫu cho phương pháp chiếu Thuật toán đường dốc Thuật toán số dư nhỏ Thuật toán đường dốc cho số dư Thuật toán Arnoldi xây dựng sơ sở cho không gian Krylov Thuật toán Arnoldi sửa đổi Thuật toán Householder Thuật toán GMRES Thuật toán GMRES Giải thuật Lanczos Giải thuật CG Giải thuật CG 22 24 30 32 35 36 36 38 39 40 41 42 43 43 45 4.1 4.2 4.3 4.4 Giải thuật CG với Preconditioning Thuật toán GMRES với preconditioning Thuật toán ILU(0) Thuật toán ILU(p) 59 60 61 62 pivoting) 6.1 Kích thước lưới tính tốn 88 6.2 Kết tính tốn máy P4 2.26Ghz 512Mb RAM 89 Phụ lục A 541 FemElementLE.cpp T( ) = N( , ) ; T( ) = N( , ) ; T( ) = N( , ) ; // c o u t