Tuynhiên, trong nghiên cứu này, thuật toán sinh lưới khá phức tạp và khôngcó tính ứng dụng cao trong một vài miền tính toán.Trong luận văn này, chúng tôi nghiên cứu một thuật toán để sin
Định nghĩa
Xét miền Ω được bao phủ bởi lưới tam giác, chúng tôi ký hiệu lưới này là lưới P, các phần tử lưới là P j , j ∈ [j, J], trong đó J là số phần tử của lưới ban đầu Từ lưới này chúng tôi sẽ sinh lưới đa giác D, các phần tử của lưới này là Di, i ∈ [1, I] Trong lưới đa giác này, chúng ta có các cạnh
Ak, k ∈ [1, K], K là số cạnh trong lưới, ứng với mỗi cạnh chúng ta sẽ có vector pháp tuyến n k , và vecto tiếp tuyến là τ k
Phương pháp thể tích hữu hạn trên một lưới bất kì
Vì miền Ω được rời rạc thành những phần tử D i , nên chúng tôi sẽ xét bài toán trên những phần tử Di này.
Trên mỗi phần tử Di, chúng ta xét phương trình Laplace như sau:
Lấy tích phân 2 vế ta được:
Xét vế trái biểu thức (1.2):
• k ∈ ∂D i :k là chỉ số của những phần tử kế bên của phần tử thứ i.
• A k chính là cạnh chung giữa phần tử thứ i và phần tử thứ k.
• d(x k ,x i ) là khoảng cách giữa 2 điểm điều khiển thứ k và thứ i.
• Trong trường hợp i là phần tử nằm trên biên, giá trị của k là không xác định, thì vị trí của điểm điều khiển x k được xác định bằng cách lấy trung điểm của của cạnh Ak, nghĩa là: x k = x m +x n
Với x m và x n là 2 điểm nằm trên cạnh A k
Tiếp theo, chúng ta xét vế phải biểu thức (1.2):
Với công thức rời rạc (1.4) và (1.6) ta được:
Tiếp theo chúng tôi xin nhắc lại về cách xử lý điều kiện biên trong phương pháp thể tích hữu hạn.
Với bài toán Laplace như trên, tùy theo điều kiện biên Diriclet hay Neumann, chúng ta sẽ có những cách xấp xỉ trên biên khác nhau.
• Với điều kiện Dirichlet, giả sử bài toán có điều kiện biên nhau: u(x) =g(x) trên ∂Ω (1.10) giá trị u k được tính như sau: uk = g(x k ) (1.11)
• Với điều kiện Neumann, giả sử bài toán có điều kiện biên nhau:
∇u(x) = h(x) trên ∂Ω (1.12) thì ta có xấp xỉ như sau:
−(u i −u k ) d(x k ,x i ) = h k (1.13)Với h k là giá trị trung bình của h trên cạnh A k : h k = 1
Một số khái niệm mở rộng
Trong thể tích hữu hạn, chúng ta thường sử dụng một số định nghĩa như sau:
• Định nghĩa toán tử divergence:
• Định nghĩa toán tử curl:
|A k |u k ãτki (1.16)Trong đó τ ki chính là vector tiếp tuyến của cạnh A k
TÍNH CHẤT CỦA LƯỚI VÀ CẤU TRÚC DỮ LIỆU CHO THUẬT TOÁN 9
Các đối tượng hình học trong lưới
Thông tin về cấu trúc lưới cho chúng ta về cái nhìn tổng quát về lưới cũng như về miền hình học tính toán đang xét Thông tin này nói về mối quan hệ giữa các đối tượng trong lưới Trong tính toán một chiều các đối tượng sẽ chỉ là nút và cạnh Trong tính toán hai chiều, chúng ta sẽ quan tâm đến ba đối tượng đó là: nút, cạnh và phần tử (face hoặc facets) Đặc biệt, trong tính toán ba chiều, chúng ta cần phải quản lý dữ liệu cho 4 đối tượng: nút, cạnh, mặt (face hoặc facets), và phần tử (cell, volumes, regions hoặc solids), thuật ngữ "phần tử" cho lưới 2D khác với lưới 3D,
"phần tử" trong 2 chiều là đối tượng được tạo ra bởi các cạnh, ngược lại
"phần tử" trong 3 chiều là đối tượng được tạo ra bởi các mặt, các mặt này được tạo ra bởi các cạnh Trong luận văn này, chúng tôi hướng đến việc sinh lưới đa giác trong miền tính toán hai chiều, do đó cơ sở dữ liệu được thiết kế cho ba giá trị là nút, cạnh và phần tử.
Thành lập cơ sở dữ liệu
Mỗi đối tượng hình học được cấu thành từ đối tượng có cấp thấp hơn một bậc Phần tử được tạo thành bởi các cạnh, cạnh được tạo thành bởi 2 nút, và thông tin về 1 nút là tọa độ của nút này Mối quan hệ này chính là nền tảng để chúng tôi thiết kế cấu trúc dữ liệu cho lưới Như
Hình 2.1: Mối liên hệ giữa các đối tượng vậy, nhìn vào hình 2.1, chúng tôi thấy được rằng, trong lưới tính toán 2 chiều, chúng ta có bốn mối quan hệ, ứng với mỗi mối quan hệ chúng tôi sẽ tạo ra một mảng hai chiều (cấu trúc mảng hai chiều trong ngôn ngữ lập trình C++,) để xử lý Mối quan hệ (1), (2) là mối quan hệ từ phần tử cấp cao đến phần tử cấp thấp, và mối quan hệ (3),(4) là mối quan hệ từ phần tử cấp thấp đến phần tử cấp cao.
Lưu ý rằng, chúng tôi không sử dụng mối quan hệ giữa các đối tượng cùng cấp với nhau nhằm làm giảm khối lượng lưu trữ tính toán Dựa vào hình 2.1, chúng tôi sẽ mô tả cách truy vấn dữ liệu như sau:
• Từ chỉ số của một cạnh, chúng tôi có thể biết được thông tin của hai nút tạo ra cạnh này (quan hệ (1)).
• Từ thông tin về một nút, chúng tôi có thể truy vấn thông tin của một cạnh được tạo thành bởi nút này (quan hệ (4)).
• Bên cạnh đó, thông qua chỉ số của phần tử chúng tôi biết được chỉ số của các cạnh tạo ra phần tử này.
• Tương tự như vậy, từ chỉ số của một cạnh, chúng tôi cũng sẽ truy vấn được thông tin về chỉ số của hai phần tử có chung cạnh này.
Trong mục tiếp theo, chúng tôi sẽ mô tả chi tiết về các đối tượng dữ liệu(mảng 2 chiều) sẽ được sử dụng trong thuật toán.
THUẬT TOÁN SINH LƯỚI ĐA GIÁC 15
Phương pháp luận
Như đã đề cập từ trước, thuật toán này sinh lưới này được sinh ra từ lưới tam giác có sẵn, do đó hình dạng của phần tử tam giác đóng vai trò quan trọng trong việc hình thành hình dạng của phần tử đa giác Mỗi phần tử đa giác trong lưới mới sẽ ứng với phần tử tam giác lúc đầu Cho trước một lưới 2D như hình 3.1, chúng ta thấy được sự tương quan giữa lưới tam giác và lưới đa giác Đối với những phần tử nằm bên trong miền tính toán ta thấy được sự tương quan giữa các đối tượng trong lưới một cách rõ rệt: ứng với mổi điểm của lưới ban đầu ta sẽ sinh ra được một phần tử mới cho lưới mới, ứng với mỗi cạnh của lưới ban đầu chúng ta sẽ có được một cạnh cho lưới lúc sau, và ứng với một phần tử của lưới
Hình 3.1: Lưới tam giác và sự tương ứng giữa lưới tam giác và lưới tứ giác [4] đầu vào ban đầu sẽ sinh ra được một nút cho lưới đầu ra lúc sau Tuy nhiên, sự sinh lưới trên những phần tử thuộc lớp biên của miền tính toán thì khác biệt so với các phần tử còn lại Chúng tôi xin phép mô tả thuật toán sinh lưới đa giác từ lưới tam giác một cách tổng quát như sau [4]:
1 Các nút của lưới D được sinh ra bởi các nút điều khiển của lưới T.
2 Phần sinh nút điều khiển cho lưới đa giác lúc sau trên biên có phần khác biệt so với những nơi khác trên miền tính toán Trên các cạnh thuộc lớp biên của miền tính toán, các nút của lưới D chính là trung điểm của các cạnh này.
3 Giao điểm của các biên thuộc miền tính toánΩ được xem như là một nút của lưới tam giác T và đồng thời cũng được gọi là nút của lưới đa giác D.
4 Với một cạnh bất kì không nằm trên biên của lưới của miền tính toán
Ω, ta có hai phần tử có chung cạnh này, nối hai điểm điều khiển của hai phần tử này ta sẽ được một cạnh cho lưới D.
5 Đối với cạnh nằm trên biên của miền tính toán Ω, ta nối trung điểm của cạnh này và nút điều khiển trên phần tử chứa cạnh này để được thêm một cạnh mới cho lưới đa giác D.
6 Đồng thời, cạnh của lưới đa giác D cũng được tạo ra bằng cách nối trung điểm của cạnh biên và nút điều khiển trên biên thuộc cạnh này.
7 Các phần tử nằm bên trong của lưới đa giácD được tạo ra bằng cách kết hợp những cạnh những cạnh đối ngẫu (được tạo ra từ bước 4).
8 Bên cạnh đó, với những nút đối ngẫu trên cạnh biên đối ngẫu kết hợp lại cũng sinh ra một phần tử đối ngẫu.
Như vậy, hình 3.1 cho ta thấy rằng, các nút đỗi ngẫu mới được tạo ra hầu như đều bao quanh các nút ban đầu, mỗi cạnh ban đầu sẽ sinh ra một cạnh đối ngẫu và cạnh thuộc lớp biên của miền thì sẽ sinh ra ba cạnh đối ngẫu, một nút ban đầu sẽ sinh ra được một phần tử đối ngẫu.
Chúng tôi có các kết luận như sau: n f d = n vp , (3.1) n ed = n ep + 2.n bEp , (3.2) n vd = n f p + 2.n bEp (3.3)
• n ed : Số cạnh trong lưới đối ngẫu
• nedp: Số cạnh trong lưới ban đầu.
• n bEp : Số cạnh trên lớp biên trong lưới ban đầu.
• n f d : Số phần tử trong lưới đối ngẫu
• n vp : Số nút trong lưới ban đầu.
• n f p : Số phần tử tam giác trong lưới ban đầu.
Trong trường hợp lưới ban đầu bao gồm cả lưới lớp biên, thì chúng tôi có kết luận như sau: n f d = n vp + n qf p , (3.4) n ed = n ep + 2.n interEp +n qEp , (3.5) n vd = n f p + 2.n interEp +n qV p , (3.6) Trong đó:
• n interEp : số cạnh là cạnh chung giữa phần tử tam giác và tứ giác.
• n qEp : số cạnh thuộc phần tử tứ giác mà không phải là cạnh chung giữa phần tử tam giác và tứ giác.
• n qV p : số nút trên thuộc phần tử tứ giác mà không nằm trên phần tử tam giác.
Bài [4] cho chúng ta biết rằng còn có một cách tạo ra lưới đa giác bằng cách sử dụng thêm trung điểm của cạnh ban đầu xem như là nút đối ngẫu, tuy nhiên cách lấy này không cho được kết quả tốt khi làm xuất hiện một số hình dạnh của phần tử đa giác là hình lõm hình 3.2 Phần tử có dạng hình lõm thì không được ưa chuộng trong các phương pháp tính, bởi vì nó cho sự xấp xỉ không tốt Hơn nữa, chúng gây khó khăn trong việc lập trình sinh lưới Tuy nhiên cách chọn này lại rất hữu ích trong việc tạo lưới lớp biên trong mô hình tính toán 3 chiều - nơi mà đòi hỏi ròi rạc mô hình tính toán tốt [4].
Sinh lưới tam giác
Như đã đề cập từ trước, chất lượng lưới ban đầu đóng vai trò quan trọng trong việc quyết định chất lượng lưới lúc sau Trong luận văn này,
Hình 3.2: Sự sinh lưới bằng cách lấy thêm trung điểm của cạnh ban đầu xem như là nút đối ngẫu chúng tôi sử dụng lưới tam giác ban đầu là lưới được sinh ra từ phần mềm ANSYS Workbench Chất lượng lưới sinh ra từ phần mềm này khá tốt và được hầu hết các kĩ sư sử dụng chúng trong mô phỏng tính toán cơ học chất lưu
Sau khi sử dụng phần mềm ANSYS Workbench, thông tin về lưới được lưu trong file.msh.
Cấu trúc file tử Ansys cho chúng tôi là mối quan hệ (1), (3), và thông tin về tọa độ của các nút Việc sinh lưới đa giác từ lưới tam giác đòi hỏi phải có cấu trúc cơ sở dữ liệu như đã trình bày ở mục 2.3, do đó chúng tôi phải đi qua bước tiền xử lý để có được đầy đủ các thông tin cần thiết cho việc sinh lưới đối ngẫu.
Sinh lưới đối ngẫu
Trong mục này chúng tôi xin trình bày cách tạo ra các nút, cạnh và phần tử cho lưới đối ngẫu Trong luận văn này, chúng tôi xin đi thẳng vào vấn đề liên quan cách tạo lưới đa giác với lưới ban đầu bao gồm phần tử tam giác và phần tử tứ giác Phần tử tứ giác được tạo ra nằm trên biên của miền tính toán, mục đích của việc tạo ra một lớp lưới bao gồm các phần tử có hình dạng tứ giác như thế này nhằm mục đích tính chính xác các giá trị như vận tốc hay áp suất (các đối tượng nghiên cứu chủ yếu trong lĩnh vực tính toán mô phỏng) vì như đã biết việc tính toán trên phần tử tứ giác (cụ thể là hình chữ nhật) thì mang lại hiệu quả tính toán cao hơn so với phần tử tam giác.
Trước tiên, chúng tôi cần phải xem xét phần tử nào trong lưới ban đầu là phần tử trên biên (tức có một cạnh tạo thành là cạnh nằm trên biên của miền tính toán), phần tử nào là phần tử nằm trong miền tính toán, Bên cạnh đó, chúng tôi cần phải phân biệt các chỉ số của phần tử tam giác và chỉ số của phần tử tứ giác để có những cách xử lý khác nhau. Cuối cùng, chúng tôi sẽ phân các phần tử trong lưới ban đầu thành các lớp như sau: lớp thứ nhất bao gồm các phần tử tam giác nằm bên trong miền tính toán, lớp thứ 2 bao gồm các phần tử tam giác nằm trên biên và phần tử tam giác có chung 1 cạnh với phần tử tứ giác, lớp thứ 3 sẽ là tập hợp các phần tử tứ giác nằm trong miền tính toán, và lớp thứ 4 sẽ chứa các phần tử tứ giác có một nằm trên biên. Đối với phần tử tam giác, nằm bên trong miền tính toán, việc tạo ra các đối tượng cũng tương đối dễ dàng Xét một phần tử bất kì trong lớp thứ nhất, chúng tôi sẽ lấy ngay điểm điều khiển của phần tử này để làm nút đối ngẫu Thông thường, chúng ta thường chọn nút điều khiển của lưới tam giác là vị trí của trọng tâm tam giác hoặc vị trí của tâm đường tròn ngoại tiếp tam giác đó Tuy nhiên hai cách làm này cũng tồn đọng một số vấn đề như sau: nếu điểm điều khiển của phần tử là trọng tâm của tam giác thì không hẳn lưới sẽ thõa điều kiện đã được đề cập ở mục 1.4, cách chọn thứ hai cũng không thật sự mang lại hiệu cả trong trường hợp phần tử có hình dạng là tam giác tù Trong thuật toán này, chúng tôi sẽ chọn điểm điều khiển như đã trình bày ở mục 3.4 Xin nhắc lại, việc chọn nút điều khiển đóng một vai trò quan trọng trong việc quyết định kết quả của lưới đa giác lúc sau. Đối với phần tử tam giác có cạnh chung với phần tử tứ giác thì chúng tôi sẽ lấy đồng thời nút điều khiển của phần tử này, trung điểm của cạnh chung và các nút tạo thành cạnh này là các nút đối ngẫu Tương tự như vậy đối với phần tử có cạnh nằm trên biên, lúc này trung điểm của cạnh biên này, hai nút tạo thành cạnh biên và điểm điều khiển của phần tử được xem như là các nút đổi ngẫu.
Hơn nữa, các nút là giao điểm của các cạnh biên cũng được xem như là các nút đối ngẫu.
Cuối cùng, đối với những phần tử tứ giác, chúng ta sẽ không xử lý các đối tượng thuộc phần tử này, tức là các nút trên phần tử tứ giác sẽ được xem như các nút đối ngẫu trong lưới mới.
3.3.2 Cạnh đối ngẫu Ứng với mỗi cạnh nằm bên trong miền Ω, ta sẽ có một cạnh đối ngẫu.Cạnh đối ngẫu này được tạo ra bằng cách nối hai điểm điều khiển của hai phần tử có chung cạnh đang xét Như vậy, cạnh đối ngẫu được tạo ra bằng cách kết nối 2 điểm điều khiển của hai phần tử tam giác kề nhau.Đối với những phần tử tam giác nằm trên biên tính toán thì cạnh đối ngẫu được tạo ra bằng cách nối điểm điều khiển trên phần tử này với trung điểm của cạnh nằm trên biên thuộc phần tử ấy Bên cạnh đó, trung điểm của cạnh trên biên này cũng tạo ra thêm hai cạnh đối ngẫu mới,bằng cách nối trung điểm và một điểm tạo ra cạnh này thì sẽ được một cạnh đối ngẫu mới Như vậy ứng với cạnh nằm trên biên, chúng tôi sẽ có được thêm 3 cạnh đối ngẫu tương ứng.
Tương tự như vậy đối với phần tử có chứa cạnh chung với phần tử tứ giác, bằng cách sinh cạnh đối ngẫu như đã xử lý với cạnh trên biên, chúng tôi tiếp tục tạo ra ba cạnh đối ngẫu ứng với mỗi cạnh thuộc loại này.
Đối với các cạnh biên chứa nút là giao điểm của các cạnh biên trong miền tính toán, cạnh đối ngẫu được tạo ra bằng cách nối nút giao điểm này với trung điểm của cạnh biên đang xét.
Với những cạnh tạo ra phần tử tứ giác trong lưới T mà không phải là cạnh chung giữa phần tử tam giác và phần tử tứ giác, thì chúng tôi không xử lý và xem đó như là một cạnh của lưới đối ngẫu.
Trong hai mục trước chúng tôi đã trình bày cách thiết lập các nút đối ngẫu và cạnh đối ngẫu, trong mục này chúng tôi sẽ trình bày về cách xây dựng phần tử đối ngẫu Diễn tả theo mối quan hệ như hình 2.1, phần tử đối ngẫu được xác định bởi các cạnh đối ngẫu - những cạnh này đã được xây dựng tốt trong mục 3.3.2, những cạnh được tạo thành bởi hai nút đối ngẫu ( trình bày trong mục 3.3.1 ).
Các phần tử đối ngẫu nằm bên trong miền tính toán được tạo thành bởi các cạnh đối ngẫu nằm trong miền tính toán, các cạnh đối ngẫu được tạo thành hai điểm đối ngẫu nằm trong Nhìn vào hình 3.1, chúng ta có thể thấy rằng, ứng với mỗi nút ban đầu sẽ có một phần tử đối ngẫu, các cạnh đấu ngẫu sẽ bao quanh nút ban đầu để tạo phần tử đối ngẫu Chúng tôi đưa ra nhận xét như sau: số cạnh dùng chung một nút thuộc lưới T sẽ bằng số cạnh của của phần tử đối ngẫu ứng với nút ban đầu này Đồng thời, chúng tôi lấy những nút thuộc lớp T này là nút điều khiển của phần
Hình 3.3: Hình ảnh về lưới không tương thích tử đối ngẫu đang xét.
Phần tử đối ngẫu trên biên bao gồm các cạnh đối ngẫu cùng một nút biên thuộc lớp T Nút này vừa là nút đối ngẫu vừa là nút điều khiển của phần tử đối ngẫu Các phần tử tứ giác trên biên được xem là phần tử đối ngẫu, trừ các phần tử có cạnh chung với phần tử tam giác, dữ liệu của phần tử này sẽ được xử lý đặc biệt.
Vì cạnh chung này sẽ sinh ra 2 cạnh đối ngẫu là nằm trên nó, do đó phần tử tứ giác lúc này sẽ cấu thành bởi năm cạnh đối ngẫu, cấu trúc phần tử đặc biệt này được gọi là phần tử không tương ứng (unconform), hình3.3.
Sự lựa chọn điểm điều khiển
Như đã đề cập ở các mục trước, việc chọn nút điều khiển đóng vai trò hết sức quan trọng trong phương pháp thể tích hữu hạn Trong thuật toán sinh lưới đa giác này, điểm điều khiển của phần tử là nơi sinh ra những nút đối ngẫu cho lưới mới.
Trước đây, điểm trọng tâm được ưu tiên làm điểm điều khiển cho phần tử tam giác vì dễ tính toán và đảm bảo nút điều khiển nằm trong phần tử Tuy nhiên, cách chọn này lại không tối ưu cho các bài toán ứng dụng liên quan đến bước thời gian.
Bên cạnh đó, theo đề tài [4], nếu chọn điểm điều khiển là nằm tại vị trí trọng tâm của tam giác thì khi sinh lưới đa giác sẽ tạo nên những phần tử có hình dạng lõm, và việc chọn điểm điều khiển tại vị trí của tâm đường tròn ngoại tiếp phần tử tam giác sẽ làm mất đi một vài cạnh đối ngẫu Vì vậy, theo đề tài này, khi chúng ta kế thừa và phát huy đồng thời những điểm mạnh của việc chọn điểm điều khiển là trọng tâm hoặc bán kính đường tròn ngoại tiếp. Đề tài [4] đã sử dụng cách sau đây để tìm điểm điều khiển cho phần tử tứ giác:
• C d : là trọng tâm của phần tử tam giác.
• C r : là tâm đường tròn ngoại tiếp phần tử tam giác.
• I: là giao điểm của đường thẳng nối trọng tâm và tâm đường tròn ngoại tiếp.
• C: chính là điểm điều khiển của phần tử.
• ρ s : là hệ số làm giảm , hệ số này phụ thuộc vào chất lượng phần tử Chúng tôi xin phép mô tả chi tiết hơn như sau:
• Nếu phần tử là tam giác nhọn thì điểm điều khiển sẽ là tâm đường tròn ngoại tiếp (hình 3.4 ).
Hình 3.4: Trường hợp: phần tử tam giác nhọn [4]
• Trong trường hợp tâm đường tròn ngoại tiếp C r nằm ngoài phần tử, đường thẳng nối trọng tâm C d và điểm tâm này giao với một cạnh thuộc phần tử tại điểm I sao cho điểm I phải nằm giữa tâm đường tròn và trọng tâm của tam giác, điểm điều khiển sẽ thõa điều kiện (3.7) (hình 3.5 ).
• Trong trường hợp tâm đường tròn ngoại tiếp rất gần với một cạnh nào đó thuộc phần tử thì chúng ta sẽ hiệu chỉnh thông qua việc lựa chọn hệ số ρ s (hình 3.6 ).
Nhìn vào hình 3.4, 3.5, 3.6, chúng ta thấy rằng điểm điều khiển trong lưới tam giác thõa điều kiện chấp nhận được cho lưới với phương pháp thể tích hữu hạn như đã trình bày ở muc 3.4.
Lưới đa giác trên những miền hình học khác nhau
Trong mục này, chúng tôi xin trình bày những hình ảnh về phương pháp chia lưới trên những miền hình học khác nhau.
Hình 3.5: Trường hợp: phần tử tam giác có một góc gần bằng 90 o [4]
Hình 3.6: Trường hợp: phần tử tam giác tù [4]
Hình 3.7: Lưới đa giác kết hợp với lưới lớp biên trên hình tròn
Hình 3.8: Lưới đa giác kết hợp với lưới lớp biên
Hình 3.9: Lưới đa giác kết hợp với lưới lớp biên trên miền hình học là miệng ống phụt.
ỨNG DỤNG LƯỚI ĐA GIÁC GIẢI MỘT SỐ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG 29
Phương trình Laplace cơ bản
Trong mục này chúng tôi sẽ giải phương trình Laplace cơ bản như sau:
Với hàm f(x) = x(x−4)y(y−2), chúng ta có thể dễ dàng suy ra nghiệm chính xác như sau: u(x) =u(x, y) = 2y(y −2) + 2x(x−4) (4.2)
Nhìn chung, với lưới đa giác được sinh ra từ thuật toán thì chúng tôi có thể giải một phương trình đạo hàm riêng cơ bản trên đây, nhìn hình
Hình 4.1: Lưới với 223 phần tử
Hình 4.2: Nghiệm xấp xỉ của bài toán với lưới 4.1
Hình 4.3: Nghiệm chính xác của bài toán với lưới 4.1
Hình 4.4: Lưới với 317 phần tử
Hình 4.5: Nghiệm xấp xỉ của bài toán với lưới 4.4
Hình 4.6: Nghiệm chính xác của bài toán với lưới 4.4
Hình 4.7: Lưới với 1105 phần tử
Hình 4.8: Nghiệm xấp xỉ của bài toán với lưới 4.7
Hình 4.9: Nghiệm chính xác của bài toán với lưới 4.7
Hình 4.10: Lưới với 3851 phần tử
Hình 4.11: Nghiệm xấp xỉ của bài toán
Hình 4.12: Nghiệm chính xác của bài toán
Hình 4.13: Sai số trung bình trên lưới với những không gian hàm khác nhau
4.13, chúng ta có thể thấy rằng, sự hội tụ với lưới đa giác khá tốt.
Ứng dụng của phương trình laplace trong mô phỏng tính toán chất lưu
Trong cơ học chất lưu, ta có định nghĩa dòng không xoáy, nghĩa là tồn tại dòng chảy mà tồn tại hàm thế vận tốc u(x) sao cho :
∇u(x) = v(x), (4.3) trong đó v là vận tốc của dòng.
Mô tả dòng chảy đều của chất lưu không nén được thì chúng ta có công thức như sau:
Thay vận tốc v bằng công thức (4.3), chúng ta được:
Theo [14], hàm thế vận tốc mô phỏng dòng chảy này chỉ làm một hàm số bậc nhất, theo một biến duy nhất Vấn đề chính chúng tôi muốn đề cập trong mục này là sự ứng dụng lưới đa giác này để giải một phương trình với điều kiện biên Dirichlet và điều kiện biên Neumann.
Trong bài toán mô phỏng dòng chảy đều, không xoáy và không nén được trong miền tính toán hình chữ nhật, phương trình dòng chảy có nghiệm dạng u(x) = 5x + 6 Bài toán thỏa mãn điều kiện biên: u(x, y) = 0 khi y = 0 hoặc y = 2.
∂x = 0 nếu x = 0 hoặc x = 4 (4.7)Như vậy, trên biên Neuman, thì lưới giác cũng đồng thời cho kết quả khá tốt, thậm chí còn hội tụ nhanh hơn so với bài toán với điều kiện biênDirichlet.
Hình 4.14: Lưới với 126 phần tử
Hình 4.15: Nghiệm xấp xỉ của bài toán với lưới 4.14
Hình 4.16: Nghiệm chính xác của bài toán với lưới 4.14
Hình 4.17: Lưới với 178 phần tử
Hình 4.18: Nghiệm xấp xỉ của bài toán với lưới 4.17
Hình 4.19: Nghiệm chính xác của bài toán với lưới 4.17
Hình 4.20: Lưới với 351 phần tử
Hình 4.21: Nghiệm xấp xỉ của bài toán với lưới 4.20
Hình 4.22: Nghiệm chính xác của bài toán với lưới 4.20
Hình 4.23: Lưới với 544 phần tử
Hình 4.24: Nghiệm xấp xỉ của bài toán
Hình 4.25: Nghiệm chính xác của bài toán
Hình 4.26: Sai số trung bình trên lưới với những không gian hàm khác nhau
Hình 4.27: Lưới với 377 phần tử
Hình 4.28: Nghiệm xấp xỉ của bài toán với lưới 4.27
Tiếp theo, chúng tôi áp dụng phương trình trên cho miền tính toán là ống phụt. f f g
Hình 4.29: Nghiệm chính xác của bài toán với lưới 4.27
Hình 4.30: Lưới với 527 phần tử
Hình 4.31: Nghiệm xấp xỉ của bài toán với lưới 4.30
Hình 4.32: Nghiệm chính xác của bài toán với lưới 4.30
Hình 4.33: Lưới với 656 phần tử
Hình 4.34: Nghiệm xấp xỉ của bài toán với lưới 4.33
Hình 4.35: Nghiệm chính xác của bài toán với lưới 4.33
Hình 4.36: Lưới với 852 phần tử
Hình 4.37: Nghiệm xấp xỉ của bài toán với lưới 4.36
Hình 4.38: Nghiệm chính xác của bài toán với lưới 4.36 f t h
Trong luận văn này, chúng tôi đã hoàn thành được mục tiêu xây dựng cấu trúc dữ liệu khá tốt và thiết kế thuật toán khá tốt, bên cạnh đó chúng tôi cũng đã đưa ra ví dụ về ứng dụng của lưới đa giác trong việc giải một phương trình đạo hàm riêng đơn giản Về hướng phát triển nghiên cứu này, chúng ta có thể phát triển thuật toán để giải những phương trình đạo hàm riêng phức tạp chẳng hạn như phương trình Navier Stokes Bên cạnh đó, vì lưới của chúng tôi bao gồm cả phần tử tứ giác và phần tử tam giác, nên sẽ sinh ra một số phần tử không tương ứng (unconform mesh) như hình 3.3, việc tính sai số hậu nghiệm ở những phần tử như vậy cũng là một hướng đáng để nghiên cứu Đặc biệt hơn, khi thuật toán sinh lưới đa giác cho mô hình hai chiều được hoàn thiện sẽ tạo tiền đề cho việc phát triển thuật toán sinh lưới đa giác trong mô hình ba chiều.
[1] R Eymard et al., Finite Volume methods Marseille, France: Hand- book of Numerical Analysis, 1997.
[2] R Eymard et al., "Finite volume approximation of elliptic prob- lems and convergence of an approximate gradient," Applied Numer- ical Mathematics, vol 37, pp 31-53, 2001.
[3] H K Versteeg and W Malalasekera (2001) An Introduction to Computational Fluid Dynamics (2 nd edition) [Online] Available: www.pearsoned.co.uk
[4] G Balafas "Polyhedral Mesh Generation for CFD-Analysis of Com- plex Structures," Master Thesis, Technical University of Munich, Germany, 2014.
[5] R V Garimella "Mesh data structure selection for mesh generation and FEA applications," International Journal of Numerical Methods in Engineering, vol 55, Oct 2002.
[6] R V Garimella "MSTK- A flexible infrastructure library for devel- oping mesh-based applications," presented at Proceedings of the 13 th International Meshing, Roundtable, Williamsburg, VA, 2004.
[7] R V Garimella et al., "Polyhedral mesh generation and optimiza- tion for non-manifold domains," presented at Proceedings of the22 nd International Meshing, USA, 2001.
[8] W Oaks and S Paoletti Polyhedral mesh generation Los Alamos,
[9] S Ghosh and S N Mukhopadhyay "A material based finite ele- ment analysis of heterogeneous media involving Dirichlet tessella- tions," Computer Methods Applied Mechanics and Engineering, vol.
[10] J Gregson et al., "All-Hex Mesh Generation via Volumetric Poly- Cube Deformation," Eurographics Symposium on Geometry Process- ing, vol 30, 2011.
[11] F Hoschek et al., Handbook of Computer Aided Geometric Design. Amsterdam, Holland: Elsevier Science, 2002.
[12] H A Le 2015, Topic: "Bài giảng môn học Phương Pháp Thể Tích Hữu Hạn." Khoa Toán - Tin Học, trường Đại Học Khoa Học Tự Nhiên, 2015.
[13] R Eymard et al., Finite Volume Methods France: Handbook of Nu- merical Analysis, 2000, pp 713-1020.
[14] N A Trinh 2015, Topic: "Bài giảng cơ học chất lưu." Khoa Toán -Tin Học, trường Đại Học Khoa Học Tự Nhiên, 2015.