Mã đa đại số


9

Tôi muốn hiểu thêm chi tiết về việc triển khai Phương pháp đa đại số (AMG). Tôi đã đọc "Hướng dẫn đa điểm", khá hay và giải thích tất cả các chi tiết của phép nội suy, toán tử lưới thô và lựa chọn lưới thô cho AMG. Tuy nhiên, tôi nghĩ rằng, không có gì giống như chơi xung quanh và đọc mã.

Vì vậy, tôi muốn hỏi liệu có ai biết bất kỳ "mã ví dụ" cổ điển nào của AMG không, như mã FORTRAN đa hình học có sẵn ở cuối "Phương thức đa biến" (SIAM) của SF McCormick. Khá khó để có được một mã sản xuất và chất lượng cao như BoomerAMG để tìm hiểu thêm về phương pháp.


Bạn có đặc biệt quan tâm đến AMG cổ điển (trái ngược với * tổng hợp được làm mịn) không? Nếu vậy, xin vui lòng nêu điều này trong câu hỏi.
Jed Brown

Câu trả lời:


10

BoomerAMG là một phần của gói Hypre , rất đơn giản để có được. Một mã ít phức tạp hơn nhiều nếu bạn bắt đầu xem xét các phương thức này có thể là PyAMG .


Vâng, tôi đã xem PyAMG, đây là một mã rất hay, nhưng nó có tất cả những thứ này về cách gói mã C / C ++ trong Python, nó thực hiện các phương thức AMG khác với phương pháp "cổ điển", v.v. Tôi đang tìm kiếm một cái gì đó đơn giản hơn, mà mọi người sử dụng để giảng dạy.
Bernardo MR

4
Thật không may, kinh nghiệm chung khi sử dụng và cố gắng đóng góp cho mã AMG là nếu bạn không có vô số tùy chọn, bạn sẽ không thể giải quyết bất cứ điều gì tiếp cận một vấn đề thú vị. Do đó, gói AMG điển hình của bạn sẽ bao gồm một số tùy chọn cho xấp xỉ kết nối, xây dựng nội suy và làm mịn mà chắc chắn khó phân tích bằng cách đọc mã. Điều đó đang được nói, AMG cổ điển đã chết đơn giản, và tự mình thực hiện nó hoặc để học sinh của bạn cố gắng tự làm điều này (tùy thuộc vào mức độ kỹ năng của chúng) có thể là cách để đi.
Peterangu

2

Tôi đánh giá cao sự giới thiệu của Alfio Borizi về phương pháp đa đại số. Có một mã fortran 77 mẫu trong phụ lục A.


Tôi nghĩ rằng anh ấy đang hỏi về việc thực hiện, không phải là văn học nhiều hơn.
Jack Poulson

1
@JackPoulson: Nó có phần triển khai trong phần phụ lục.
Paul

2
Xin lỗi, rõ ràng tôi không thể đọc sáng nay. Nâng cao.
Jack Poulson

1
@Paul: Tôi có thể sai, nhưng tôi nghĩ đây là mã đa biến hình học cho bài toán Poisson (cũng hoạt động cho trường hợp phi tuyến).
Bernardo MR

@ BernardoM.R.: Tôi vừa tìm thấy tệp tin đăng bài này ... Nó có rất nhiều ví dụ cụ thể về các toán tử kéo dài và hạn chế cho các vấn đề mô hình. Nó không thực sự có mã đầy đủ, nhưng nó vẫn có thể được sử dụng cho bạn.
Paul

1

Ngoài ra còn có gói ML là một phần của Trilinos. Danh tiếng của nó cũng tốt không kém gì BoomerAMG / hypre.

Một gói Trilinos mới hơn cho AMG được gọi là MueLu, tôi tin, và cũng sẽ có sẵn trong các bản phát hành gần đây.

Tất cả những thứ này là nguồn mở.


1
MueLu chưa được phát hành và lần trước tôi đã nói chuyện với anh ấy, Ray đã không mong đợi một phiên bản công khai trong một năm nữa. Lưu ý rằng ML và MueLu (trong phạm vi mà tôi đã nghe thấy những gì trong đó) dựa trên tập hợp được làm mịn, đó là một thuật toán hoàn toàn khác với AMG cổ điển (dựa trên BoomerAMG).
Jed Brown

1

Tôi đã làm việc về việc thực hiện này một chút. Đó là Python / Numpy / Scipy. Đó không phải là đa đại số - bạn phải cung cấp toán tử hạn chế của riêng bạn. Nhưng nếu đó là một triển khai giáo dục mà bạn quan tâm, tôi sẽ hoan nghênh một số yêu cầu kéo để thêm khả năng đó.

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.