Bộ giải và tiền điều kiện¶
Bộ giải tuyến tính của FrontISTR cho phép chọn phương pháp trực tiếp hoặc phương pháp lặp; với phương pháp lặp, tiền điều kiện được kết hợp để giải phương trình tuyến tính. Phương pháp xử lý MPC và khử bậc tự do tiếp xúc là các lựa chọn bổ trợ quyết định cách biểu diễn hệ tuyến tính có ràng buộc đa điểm hoặc ràng buộc tiếp xúc.
Tổng quan chức năng¶
Bộ giải và tiền điều kiện gồm các lựa chọn sau. Trước hết chọn phương pháp lặp hoặc phương pháp trực tiếp làm bộ giải tuyến tính; chỉ khi chọn phương pháp lặp mới kết hợp tiền điều kiện.
| Phân loại | Lựa chọn chính | Vai trò |
|---|---|---|
| Phương pháp lặp | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN |
Giải ma trận thưa quy mô lớn với hiệu quả bộ nhớ cao. |
| Tiền điều kiện cho phương pháp lặp | SSOR, scaling đường chéo, BILU, AMG, SAINV, RIF | Cải thiện hội tụ của phương pháp lặp. Không dùng với phương pháp trực tiếp. |
| Phương pháp trực tiếp | MUMPS, MKL |
Giải phương trình tuyến tính một cách robust bằng phân rã. |
| Phương pháp xử lý MPC | Phương pháp penalty, MPC-CG, khử bậc tự do tường minh | Đưa ràng buộc đa điểm vào hệ tuyến tính. |
| Khử bậc tự do tiếp xúc | Tự động, luôn bật | Chuyển cách xử lý các bậc tự do tiếp xúc được thêm bởi tiếp xúc SLAGRANGE. |
| Chức năng phụ trợ | Ước lượng số điều kiện, dump ma trận, xuất log | Hỗ trợ gỡ lỗi, kiểm tra hội tụ và đánh giá hiệu năng. |
Khi chạy song song, có thể kết hợp song song MPI dựa trên phân hoạch miền với song song luồng OpenMP. Phương pháp lặp là lựa chọn tiêu chuẩn cho phân tích song song quy mô lớn; phương pháp trực tiếp được dùng trong môi trường đã liên kết thư viện khi cần quá trình giải robust hơn.
Cách chọn bộ giải và tiền điều kiện¶
Trước hết quyết định dùng phương pháp lặp hay trực tiếp; nếu chọn phương pháp lặp, tiếp tục chọn tiền điều kiện.
| Tiêu chí | Cách lựa chọn khuyến nghị |
|---|---|
| Quy mô bài toán | Ở quy mô nhỏ và trung bình, phương pháp trực tiếp ổn định và dễ sử dụng. Ở quy mô lớn, phương pháp lặp có hiệu quả bộ nhớ tốt hơn. |
| Tính đối xứng của ma trận | Với bài toán đối xứng xác định dương, cân nhắc CG. Với bài toán không đối xứng, cân nhắc BiCGSTAB, GMRES, GPBiCG, v.v. |
| Môi trường song song | Với MPI, kết hợp phương pháp lặp và phân hoạch miền. Với tiền điều kiện dưới OpenMP, cân nhắc SSOR hỗ trợ multi-color. |
| Tiền điều kiện (khi chọn phương pháp lặp) | Trước hết thử SSOR mặc định, sau đó cân nhắc AMG. Khi hội tụ tốt, SSOR có chi phí tính thấp; với bài toán phức tạp và quy mô lớn, tiền điều kiện AMG là lựa chọn phù hợp. |
| Tiếp xúc và MPC | Trong phân tích có tiếp xúc hoặc ràng buộc đa điểm, lựa chọn phương pháp xử lý MPC và khử bậc tự do tiếp xúc ảnh hưởng đến hội tụ và độ robust. |
| Thư viện bên ngoài | MUMPS, MKL và AMG được dùng trong các bản build đã liên kết thư viện tương ứng. |
Trong phân tích tiêu chuẩn, các giá trị mặc định của tiêu chí hội tụ, số lần lặp tối đa, hệ số hiệu chỉnh đường chéo của tiền điều kiện, v.v. thường đủ để hoạt động. Chỉ khi hội tụ chậm hoặc phân kỳ mới xem xét lần lượt phương pháp lặp, tiền điều kiện, phương pháp xử lý MPC và khử bậc tự do tiếp xúc. Về giá trị và cú pháp tham số, xem !SOLVER trong tham chiếu từ khóa.
Phương pháp lặp¶
Phương pháp lặp cập nhật nghiệm bằng cách lặp các phép nhân ma trận-vectơ và tiền điều kiện cho ma trận thưa quy mô lớn. FrontISTR cho phép chọn các phương pháp lặp sau.
| Phương pháp lặp | Phạm vi áp dụng | Ghi chú |
|---|---|---|
CG |
Bài toán đối xứng xác định dương | Lựa chọn tiêu chuẩn cho phân tích kết cấu và dẫn nhiệt. |
BiCGSTAB |
Bài toán không đối xứng | Lựa chọn khi tính không đối xứng mạnh do tiếp xúc hoặc ghép. |
GMRES |
Bài toán không đối xứng | Sử dụng với kích thước không gian con Krylov được chỉ định. |
GPBiCG |
Bài toán không đối xứng | Dùng như một phương pháp cải tiến thuộc họ BiCGSTAB. |
GMRESR |
Bài toán không đối xứng, ứng dụng nâng cao | Lựa chọn sử dụng GMRES theo dạng lồng nhau. |
GMRESREN |
Bài toán không đối xứng, ứng dụng nâng cao | Phiên bản đệ quy thuộc họ GMRESR. |
CG giả thiết ma trận đối xứng xác định dương. Khi tính không đối xứng mạnh do tiếp xúc ma sát, xử lý ràng buộc không đối xứng hoặc hiệu ứng ghép, cân nhắc BiCGSTAB, GMRES, GPBiCG, v.v. Với GMRES, tăng kích thước không gian con Krylov có thể cải thiện hội tụ nhưng đồng thời tăng sử dụng bộ nhớ.
Khi chỉ định METHOD2, có thể chuyển sang phương pháp lặp thay thế nếu CG phân kỳ hoặc thất bại. Đây là cơ chế dự phòng khi dùng CG làm bộ giải chính; các giá trị thiết lập và dòng dữ liệu khác dùng chung với bộ giải chính.
Tiền điều kiện¶
Tiền điều kiện là quá trình biến đổi ma trận hệ số nhằm cải thiện hội tụ của phương pháp lặp và chỉ được áp dụng khi chọn phương pháp lặp. Phương pháp trực tiếp không dùng tiền điều kiện. Ngay với cùng một phương pháp lặp, lựa chọn tiền điều kiện có thể làm thay đổi lớn số lần lặp đến hội tụ và thời gian tính.
| Tiền điều kiện | Đặc điểm | Phạm vi sử dụng |
|---|---|---|
| SSOR | Tiền điều kiện tiêu chuẩn. Hỗ trợ sắp thứ tự multi-color. | Lựa chọn nên thử đầu tiên; được dùng rộng rãi trong phân tích kết cấu. |
| Scaling đường chéo | Tiền điều kiện nhẹ sử dụng các phần tử đường chéo. | Khi muốn giảm chi phí tính toán. |
| BILU | Phân rã LU không đầy đủ theo khối. | Lựa chọn cho bài toán khó hội tụ với SSOR. |
| AMG | Đa lưới đại số bằng Trilinos-ML. | Lựa chọn cho bài toán quy mô lớn hoặc bài toán bị chi phối bởi các thành phần sai số phân cấp. |
| SAINV | Sparse Approximate Inverse. | Lựa chọn tiền điều kiện chuyên biệt cho bài toán tiếp xúc hoặc môi trường phân tán. |
| RIF | Robust Incomplete Factorization. | Một lựa chọn khác thuộc nhóm phân rã không đầy đủ. |
SSOR là lựa chọn tiêu chuẩn; khi chạy song song OpenMP, sử dụng phiên bản sắp thứ tự multi-color. Scaling đường chéo nhẹ nhưng hiệu quả cải thiện hội tụ phụ thuộc bài toán. BILU được triển khai dưới dạng phân rã LU không đầy đủ theo khối và hỗ trợ cả ma trận với số DOF tổng quát. Với họ BILU, có đường xử lý tự động tăng hệ số hiệu chỉnh đường chéo SIGMA_DIAG và thử lại khi phương pháp lặp phân kỳ; việc chỉ định giá trị được trình bày trong tham chiếu từ khóa.
AMG sử dụng Trilinos-ML nên ML phải được bật khi build. Có thể chỉ định smoother, chu trình multigrid, phương pháp coarsening, v.v.; các giá trị chi tiết được trình bày trong tham chiếu từ khóa. Khi dùng SAINV trong phân tích song song có tiếp xúc hoặc MPC, độ sâu overlap khi phân hoạch miền có thể ảnh hưởng đến hội tụ.
Phương pháp trực tiếp¶
Phương pháp trực tiếp giải phương trình tuyến tính bằng cách phân rã ma trận hệ số. Do không phụ thuộc số lần lặp, phương pháp này robust và là lựa chọn ổn định cho phân tích có tiếp xúc hoặc điều kiện ràng buộc. Mặt khác, mức sử dụng bộ nhớ tăng khi quy mô bài toán lớn.
| Phương pháp trực tiếp | Môi trường song song | Mục đích |
|---|---|---|
MUMPS |
Song song MPI | Giải ma trận thưa bằng phương pháp trực tiếp trong môi trường bộ nhớ phân tán. |
MKL |
Intel MKL / OpenMP | Phương pháp trực tiếp của Intel MKL. Bên trong sử dụng Intel PARDISO. Với nhiều tiến trình MPI, dùng đường xử lý Cluster MKL. DIRECTmkl là alias của MKL. |
Phương pháp trực tiếp có thể dùng cho cả ma trận đối xứng và không đối xứng. MUMPS và MKL yêu cầu thư viện tương ứng được liên kết khi build. Vì không thể sử dụng trong môi trường thiếu các thư viện này, xem hướng dẫn build về thư viện phụ thuộc cần thiết và tùy chọn CMake.
FrontISTR cũng có đường xử lý phương pháp trực tiếp tích hợp không dùng thư viện bên ngoài, nhưng khi chọn phương pháp trực tiếp cho phân tích thông thường nên cân nhắc MUMPS hoặc MKL.
Tiền điều kiện không được áp dụng cho phương pháp trực tiếp. Ngay cả khi tiền điều kiện được chỉ định bằng !SOLVER, đường xử lý phương pháp trực tiếp cũng không tham chiếu đến nó.
Phương pháp xử lý MPC¶
Phương pháp xử lý MPC là cách đưa các bậc tự do được liên kết bởi ràng buộc đa điểm vào phương trình tuyến tính. Ngay cả khi phương trình ràng buộc đầu vào giống nhau, tính chất của ma trận hệ số và hội tụ thay đổi theo phương pháp xử lý.
| Phương pháp xử lý MPC | Vai trò | Sử dụng mặc định |
|---|---|---|
| Phương pháp penalty | Thêm độ cứng lớn vào phương trình ràng buộc để thỏa xấp xỉ. | Mặc định cho phương pháp trực tiếp. |
| Phương pháp MPC-CG | Phương pháp cũ xử lý phép nhân ma trận-vectơ có ràng buộc bên trong phương pháp lặp. | Không khuyến nghị. |
| Khử bậc tự do tường minh | Khử bậc tự do bị ràng buộc và giải hệ tuyến tính đã rút gọn. | Mặc định cho phương pháp lặp. |
Phương pháp penalty là mặc định cho phương pháp trực tiếp, còn khử bậc tự do tường minh là mặc định cho phương pháp lặp. MPC-CG là lựa chọn cũ nhằm duy trì tương thích; với phân tích mới thông thường, dùng khử bậc tự do tường minh hoặc mặc định của phương pháp trực tiếp.
Có thể chỉ định rõ phương pháp xử lý MPC trong !SOLVER bằng MPCMETHOD. Về ý nghĩa giá trị và cú pháp, xem tham chiếu từ khóa.
Khử bậc tự do tiếp xúc¶
Khử bậc tự do tiếp xúc là chức năng rút gọn các bậc tự do tiếp xúc được thêm bởi tiếp xúc SLAGRANGE trước khi chuyển hệ sang bộ giải tuyến tính. Việc khử các bậc tự do tiếp xúc có thể cải thiện tính chất của hệ tuyến tính được xử lý bằng phương pháp lặp.
Trong chế độ tự động mặc định, bậc tự do tiếp xúc được khử khi dùng phương pháp lặp và không được khử khi dùng phương pháp trực tiếp. Với phương pháp trực tiếp có đường xử lý trực tiếp hệ mở rộng chứa các bậc tự do tiếp xúc.
Khi chỉ định rõ CONTACT_ELIM, có thể khử bậc tự do tiếp xúc cả khi dùng phương pháp trực tiếp. Về lựa chọn loại tiếp xúc, cặp tiếp xúc và thuật toán tiếp xúc ở phía đầu vào, xem trang tiếp xúc và embedding.
Chức năng phụ trợ¶
Có thể sử dụng ước lượng số điều kiện, dump ma trận và xuất log để khảo sát hội tụ và hiệu năng của bộ giải. Các chức năng này không cần thiết cho phân tích thông thường và được bật để gỡ lỗi hoặc đánh giá hiệu năng.
| Chức năng | Mục đích | Ghi chú |
|---|---|---|
| Ước lượng số điều kiện | Xuất chỉ số số điều kiện với CG và GMRES. |
Dùng trong bản build có bật LAPACK. |
| Dump ma trận | Lưu ma trận và vế phải đưa vào bộ giải ra tệp. | Hỗ trợ định dạng Matrix Market, CSR và BSR. |
DUMPEXIT |
Kết thúc phân tích sau khi dump ma trận. | Dùng khi chỉ cần lấy ma trận để kiểm tra bằng công cụ bên ngoài. |
ITERLOG |
Xuất lịch sử hội tụ của phương pháp lặp. | Kiểm tra diễn biến phần dư. |
TIMELOG |
Xuất thời gian tính của bộ giải. | Với VERBOSE, xuất phân rã thời gian chi tiết. |
STEPLOG |
Xuất thông tin bước. | Dùng để kiểm tra trình tự phân tích. |
Dump ma trận là chức năng để kiểm tra ma trận hệ số được lắp ráp trong phân tích bằng công cụ bên ngoài. Khi bật DUMPEXIT, phân tích kết thúc ngay sau khi lưu ma trận và vế phải. Ước lượng số điều kiện là chức năng thử nghiệm dùng với CG và GMRES, phục vụ chẩn đoán hội tụ.
Các mục liên quan¶
- Bộ giải tuyến tính (lý thuyết) — Nguyên lý toán học của phương pháp lặp và tiền điều kiện.
- Lặp phi tuyến và tích phân theo thời gian — Khuôn khổ lặp Newton, lặp tiếp xúc và tích phân theo thời gian gọi bộ giải tuyến tính.
- Phân hoạch miền — Phân tích song song MPI và chỉ định độ sâu overlap.
- Tiếp xúc và embedding — Lựa chọn loại tiếp xúc và thuật toán tiếp xúc.
- !SOLVER — Giá trị và cú pháp tham số bộ giải/tiền điều kiện.
- Thư viện phụ thuộc bắt buộc và tùy chọn — Các thư viện phụ thuộc như
MUMPS,MKL(Intel PARDISO), Trilinos-ML và LAPACK.