Multigrid trên mạng không phải hình chữ nhật lưới hoàn hảo


9

Giới thiệu đa điểm thường sử dụng lưới hình chữ nhật. Nội suy các giá trị sau đó được chuyển thẳng: Chỉ cần nội suy tuyến tính trên cạnh giữa hai nút liền kề của lưới thô để tìm giá trị của nút lưới mịn trên cạnh đó.

Đối với một ứng dụng FEM, tôi có một lưới là hình chữ nhật "topo" để các kết nối nút giống như trên lưới hình chữ nhật. Tuy nhiên, các nút không được căn chỉnh hoàn hảo trên lưới nhưng có thể di chuyển khoảng cách nhỏ để phù hợp hơn với hình học, trong khi vẫn duy trì các kết nối như trong một lưới hình chữ nhật hoàn hảo.

Lưới trông giống như thế: Ví dụ lưới . Bạn thấy: Các kết nối là "hình chữ nhật thông thường", nhưng vị trí nút thì không.

Tôi có thể hình ảnh một số sơ đồ nội suy hình học "hợp lý" trong bối cảnh như vậy.

Câu hỏi chung là: Liệu multigrid có yêu cầu một lưới hình chữ nhật được căn chỉnh hoàn hảo hay nó cũng sẽ hoạt động với tình huống được mô tả ở trên, miễn là phép nội suy là "tốt"? Hoặc là tốt hơn để sử dụng multigrid đại số trong trường hợp đó? (Điều mà tôi không thích vì nó không trực quan như đa hình học.)


Tôi không chắc tôi hiểu ý của bạn là gì bởi lưới là hình chữ nhật tô pô, nhưng trong đó các nút không được căn chỉnh như trong lưới hình chữ nhật. Là lưới một lưới hình chữ nhật có cấu trúc? Bạn có thể vui lòng làm rõ điều này, có lẽ với một bản vẽ? Có phải vấn đề là bạn đang sử dụng các yếu tố hình chữ nhật không xếp hàng như sẽ xảy ra khi sử dụng lưới cartesian có cấu trúc?
James

@James, tôi đã giải thích câu hỏi của OP giống như: "Điều gì xảy ra nếu tôi có lưới 'cartesian-ish' bên trong hình thang?".
Bill Barth

Câu trả lời:


6

Multigrid không cần lưới Cartesian (hình chữ nhật), lưới đồng nhất. Những gì nó cần là bạn có thể xác định mức phạt và mức thô (có thể là đệ quy, nếu bạn muốn chuyển từ sơ đồ hai cấp sang sơ đồ đa cấp) và bạn có thể xác định toán tử nội suy giữa các cấp này. Cách dễ nhất để giải thích điều này là nếu bạn thực sự có lưới Cartesian, nhưng thực tế bạn có thể bắt đầu với bất kỳ lưới thô nào, tinh chỉnh nó một lần và như thế này: bạn có một lưới mịn hơn.

Nói cách khác, dễ dàng nhất để nghĩ rằng các mắt lưới phù hợp với nhiều lớp không phải là một lưới tốt và làm thế nào để tìm các lưới thô hơn, nhưng để bắt đầu với một lưới thô mà từ đó bạn có được các mức độ mịn hơn bằng cách tinh chỉnh đồng nhất (nghĩa là mọi tứ giác đều chia thành bốn cái nhỏ hơn). Vì sự tinh tế đồng đều luôn luôn có thể, điều này dễ dàng cung cấp cho bạn một hệ thống phân cấp. Điều này trái ngược với thô, điều này không phải lúc nào cũng có thể nếu bạn chỉ được cung cấp một lưới cụ thể, và do đó làm cho việc xác định hệ thống phân cấp lưới phức tạp hơn nhiều. (Đó là lý do tại sao mọi người đã đưa ra các phương pháp đa đại số để xác định các mức độ thô chỉ dựa trên ma trận, mà không nghĩ đến lưới cơ bản mà nó được tạo ra.)


Tôi đã chỉnh sửa một ví dụ hình ảnh vào câu hỏi. Tôi cho rằng việc tạo thô cực kỳ dễ dàng trong trường hợp của tôi bằng cách chỉ lấy mỗi nút thứ 2 (trên mỗi thứ nguyên) và tính toán lại FEM cho lưới đó để có được ma trận / toán tử thô. Vectơ dữ liệu thô có thể thu được bằng cách chỉ lấy mỗi giá trị nút thứ 2.
Michael

1
Điều đó có thể hoặc có thể không hoạt động tốt như bạn muốn (tôi cho rằng nó có thể sẽ, nhưng không hoàn toàn chắc chắn). Vấn đề là trong ví dụ của bạn, các ô lưới thô không bao phủ cùng một khu vực với trẻ em và do đó không có thuộc tính lồng nhau của các không gian phần tử hữu hạn: các hàm mà bạn có thể biểu diễn trên lưới thô không phải là tập con của các chức năng bạn có thể đại diện trên lưới tốt. Joe Pasciak và Jim Bramble đã viết giấy về những trường hợp như vậy và tôi nghĩ tôi nhớ rằng họ có thể được thực hiện để làm việc. Nhưng nó không rõ ràng ngay lập tức với tôi.
Wolfgang Bangerth

4

Hãy nói rằng bạn có lưới sau bao gồm các phần tử hình chữ nhật:

nhập mô tả hình ảnh ở đây

Bây giờ nếu bạn thực hiện phép nội suy của mình giả sử lưới hình chữ nhật có cấu trúc bình thường thì bạn sẽ đưa ra các lỗi liên quan đến phép nội suy không chính xác này. Nói cách khác, khi bạn hạn chế vectơ dư của bạn và khi bạn kéo dài vectơ lỗi của mình, sẽ có lỗi từ phép nội suy.

Bây giờ nếu lưới của bạn "gần" là lưới cartesian có cấu trúc bình thường thì điều này có thể hoạt động, ít nhất là lúc đầu, nhưng tôi nghi ngờ một trong hai điều sẽ xảy ra tùy thuộc vào cách lưới của bạn cách xa hình chữ nhật:

1) Bạn có thể thấy rằng multigrid bắt đầu hội tụ lúc đầu. Sau tất cả, ban đầu, lỗi của bạn là rất lớn và phép nội suy "gần đúng" của bạn thực sự chỉ có nghĩa là một số nút được trình bày hơi quá trong khi một số nút hơi bị phản hồi. Tuy nhiên, bạn có thể thấy rằng sự hội tụ bị đình trệ khi giải pháp trở nên chính xác hơn và các lỗi nội suy trở nên quan trọng hơn.

2) Một khả năng khác là multigrid cuối cùng sẽ hội tụ, nhưng không nhanh như mong muốn nếu bạn đã sử dụng phép nội suy chính xác.

Về cơ bản bằng cách tắt nội suy của bạn, bạn đang cân nhắc tầm quan trọng của các nút nhất định không chính xác. Ví dụ: trong 2D nếu bạn đang cân một nút đã cho là:

[0.250.50.250.51.00.50.250.50.25]

khi thực tế bởi vì lưới của bạn không chính xác là cartesian nên nó là:

[0.250.550.250.551.00.490.280.520.30]

sau đó điều này sẽ dẫn đến một số lỗi. Việc lỗi này có ngăn được sự lồi lõm hay không sẽ phụ thuộc vào việc lưới của bạn cách xa cartesian bao xa.

Mặc dù AMG khó hiểu / thực hiện hơn nhưng có vẻ như đó là phương pháp chính xác cho lưới của bạn. Áp dụng đa hình học cho lưới hình chữ nhật "gần đúng" có thể hoạt động, nhưng tôi đoán rằng đó là một giải pháp hỗ trợ băng tần tốt nhất. Hi vọng điêu nay co ich.

Cập nhật : Tôi nghĩ rằng có thể có một số nhầm lẫn trong câu trả lời của tôi. Tôi không nói rằng multigrid hình học sẽ chỉ hoạt động với các lưới cartesian, nhưng việc xác định phép nội suy (và do đó hạn chế) trên các lưới cartesian là dễ dàng trong khi trên các lưới không có cấu trúc thì điều này có thể khó khăn. Ví dụ, hãy xem xét trường hợp của một miền 2D đơn giản với lưới hình tam giác. Tinh chỉnh lưới này là dễ dàng - ít nhất là về mặt khái niệm - nhưng làm thế nào bạn sẽ xác định một toán tử nội suy giữa lưới thô và lưới mịn? Tôi thích AMG đơn giản vì nó hoạt động giống như một bộ giải "hộp đen", tức là không cần thông tin về lưới không hoàn hảo, tuy nhiên đây chỉ là sự thiên vị / quirk của người tôi. Multigrid hình học có thể hoạt động miễn là bạn có thể cung cấp các toán tử nội suy chính xác.


Tôi có thể đọc điều này là "phụ thuộc vào mức độ nội suy của bạn tốt như thế nào", đúng không? Vì vậy, nếu tôi có thể đưa ra một sơ đồ nội suy "hoàn hảo", thì tôi có ổn không?
Michael

1
Tôi nghĩ rằng câu trả lời này là đúng nhưng sai lệch - nó nói rằng nếu bạn giả vờ lưới của bạn là cartesian thông thường khi không, bạn sẽ nhận được câu trả lời sai. Điều đó đúng, nhưng bạn có thể nói điều tương tự về bất kỳ phương pháp số nào. Vấn đề là multigrid hình học là chính xác trên các mắt lưới tổng quát hơn khi được thực hiện chính xác .
David Ketcheson

Tôi đồng ý rằng multigrid hình học có thể được sử dụng với các mắt lưới không phải cartesian miễn là được thực hiện chính xác. Tôi chỉ lấy câu hỏi OP khi hỏi liệu sử dụng lưới cartesian "xấp xỉ", trong khi sử dụng phép nội suy được thiết kế cho lưới cartesian thực tế, có hoạt động không.
James

@Michael Về cơ bản, bạn cần một số cách xác định toán tử nội suy giữa các mức lưới khác nhau. Với lưới cartesian điều này là dễ dàng. Với các mắt lưới không phải cartesian, điều này có thể nhanh chóng trở nên khó khăn hơn tùy thuộc vào cách các mắt lưới của bạn không có cấu trúc. Như Wolfgang nói trong câu trả lời của mình, bạn luôn có thể tạo ra một lưới tinh tế hơn từ một lưới thô, nhưng việc xác định các toán tử nội suy có ý nghĩa có thể khó khăn. Ưu điểm của AMG là nó hoạt động giống như một bộ giải "hộp đen" ở chỗ bạn không cần dữ liệu lưới để xác định toán tử nội suy. Tất cả những gì bạn cần là ma trận
James

@MIchael Vì vậy, để trả lời câu hỏi của bạn. Có, nếu bạn có thể đưa ra các toán tử nội suy chính xác thì multigrid hình học sẽ hoạt động tốt. Hi vọng điêu nay co ich.
James
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.