Những điều kiện tiên quyết (và người giải) trong PETSc cho các hệ thống đối xứng không xác định tôi nên sử dụng?


12

Hệ thống của tôi là một vấn đề FE đối xứng với các số nhân trễ (ví dụ như luồng Stokes không thể nén):

(MộtBTBC)

Trong đó là trường hợp điển hình (tôi thậm chí đã chắc chắn rằng các phương trình được đánh số để các số nhân Lagrange xuất hiện sau cùng). Hệ thống khá lớn (+ 100k dòng).C= =0

Đọc xong câu trả lời cho câu hỏi này , tôi đã có ấn tượng rằng có những điều kiện tiên quyết phù hợp có thể được sử dụng cho các vấn đề FE hỗn hợp.

Sử dụng PETSc, tôi đã quản lý để giải quyết hệ thống bằng MINRES ( -ksp_type minres -pc_type none -mat_type sbaij), mặc dù độ chính xác không lớn (gây ra một số lần lặp Newton cho một vấn đề tuyến tính). Không có sự kết hợp nào khác của điều kiện tiên quyết và ksp-solver dường như hoạt động.

Có sự kết hợp nào của các cờ cho PETSc sẽ giải quyết hệ thống này nhanh hơn chỉ với MINRES không?


1
Chào mừng bạn đến với SciComp SE! Câu hỏi của bạn được đặt ra tốt về sự rõ ràng và khái quát. Chỉ có một câu có phần không rõ ràng hoặc không đầy đủ: Ý bạn là gì do các tính toán không chính xác?
Ngày

1
Tôi quên nói hết câu! Tôi hy vọng nó là rõ ràng bây giờ.
Mikael Öhman

Câu trả lời:


13

Cảnh báo

Giải quyết các vấn đề về điểm yên xe bao gồm nhiều sự lựa chọn hơn các vấn đề nhất định, và có rất nhiều điều có thể sai. Sử dụng màn hình cho tất cả các cấp để gỡ lỗi hội tụ, để đảm bảo rằng các khoảng trống null được xử lý chính xác khi các toán tử phụ là số ít (thường chỉ là một không gian null không đổi) và để đảm bảo rằng các điều kiện tiên quyết ổn định. Những kỹ thuật này được thảo luận trong câu hỏi này .

Giải quyết vấn đề điểm yên ngựa

Bạn có thể bắt đầu với phần giải các ma trận khối trong Hướng dẫn sử dụng . Đối với các vấn đề giống như Stokes, bạn có thể xây dựng một điều kiện tiên quyết bổ sung Schur bằng PCFIELDSPLIT .

-pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_detect_saddle_point

Điều này có thể được kết hợp với một điều kiện tiên quyết Least Squares Commutator cho phần bổ sung Schur ( -fieldsplit_1_pc_type lsc). Nó là phổ biến -fieldsplit_1_ksp_type preonlyvà để lặp đi lặp lại bên ngoài làm hầu hết các công việc. Các biến thể khối tam giác là phổ biến khi được sử dụng theo cách này, ví dụ , -pc_fieldsplit_schur_fact_type upper.

Bạn có thể tìm thêm thông tin chi tiết về thành phần bộ giải bằng cách sử dụng các tùy chọn tùy chọn trong bài báo của chúng tôi (bản in trước) , cũng thảo luận về việc chuyển đổi đa luồng với phân tách khối (đặt các trường bên trong multigrid).

Đối với nhiều vấn đề, bạn sẽ muốn tùy chỉnh phân tách trường và các điều kiện tiên quyết bổ sung Schur, nhiều trong số đó liên quan đến các toán tử phụ trợ. Ví dụ, phương pháp "khuếch tán đối lưu áp suất" (PCD) từ Elman et al yêu cầu sự rời rạc của một toán tử phụ trợ trong không gian áp suất. Xem ví dụ về PCSHELL và phần hướng dẫn sử dụng cho mục đích này.


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.