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, một bộ tiền điều kiện được kết hợp để giải phương trình tuyến tính. Phương thức 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 dạng xử lý của hệ tuyến tính có chứa 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 dưới đây. Trước hết chọn phương pháp lặp hoặc trực tiếp cho 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 tính 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 ổn định bằng phân rã. |
| Phương thức xử lý MPC | Phương pháp penalty, phương pháp khử bậc tự do tường minh | Phản ánh 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 đổi 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 bổ 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 bằng 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 lời giải ổn định 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 thì 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 | Với quy mô nhỏ và vừa, phương pháp trực tiếp ổn định và dễ xử lý. Với 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 song song 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ợ đa màu. |
| 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. Nếu hội tụ tốt, SSOR có chi phí tính toán thấp; với bài toán phức tạp quy mô lớn, tiền điều kiện AMG phù hợp hơn. AMG có hai triển khai: dựa trên Trilinos-ML và SA-AMG tích hợp trong HEC-MW; lựa chọn theo cấu hình biên dịch. |
| 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 thức xử lý MPC và khử bậc tự do tiếp xúc ảnh hưởng đến hội tụ và độ ổn định. |
| Thư viện bên ngoài | MUMPS, MKL và AMG (Trilinos-ML) được dùng trong bản biên dịch có liên kết các thư viện tương ứng. AMG (SA-AMG) được dùng trong bản biên dịch có bật LAPACK. |
Trong phân tích thông thường, các giá trị mặc định cho 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 đủ tốt. Chỉ khi hội tụ chậm hoặc phân kỳ mới nên lần lượt xem xét lại phương pháp lặp, tiền điều kiện, phương thức 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 lại phép nhân ma trận-vectơ và tiền điều kiện cho các 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 | Hướng á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 liên hợp. |
GMRES | Bài toán không đối xứng | Sử dụng bằng cách chỉ định kích thước không gian con Krylov. |
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 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ả định 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 liên hợp, cân nhắc BiCGSTAB, GMRES, GPBiCG, v.v. Với GMRES, tăng kích thước không gian con Krylov đôi khi cải thiện hội tụ nhưng cũng tăng lượng bộ nhớ sử dụng.
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 bị phá vỡ. Chức năng nà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.
CG, BiCGSTAB, GPBiCG và PipeCG cập nhật vectơ phần dư bằng quan hệ truy hồi, nên khi số lần lặp tăng, sai số làm tròn tích lũy và phần dư có thể lệch khỏi phần dư thực. Để tránh điều này, sau một số lần lặp nhất định, vectơ phần dư được tính lại từ vế phải và tích ma trận-vectơ. Có thể chỉ định chu kỳ này bằng RECOMPUTE_RESIDUAL. Tăng chu kỳ làm giảm số phép nhân ma trận-vectơ, nhưng tăng nguy cơ phần dư từ quan hệ truy hồi lệch khỏi phần dư thực và một nghiệm chưa hội tụ bị đánh giá là đã hội tụ. Ngược lại, nếu chu kỳ quá ngắn, không chỉ số phép nhân ma trận-vectơ tăng mà quan hệ giữa phần dư và các vectơ phụ được duy trì bởi quan hệ truy hồi cũng có thể bị phá vỡ, làm chính khả năng hội tụ xấu đi. Giá trị mặc định cân bằng các yếu tố này cho từng phương pháp giải; nếu thay đổi, hãy kiểm tra lịch sử hội tụ và phần dư tương đối cuối cùng.
Tiền điều kiện¶
Tiền điều kiện là quá trình biến đổi ma trận hệ số để cải thiện hội tụ của phương pháp lặp và chỉ áp dụng khi chọn phương pháp lặp. Phương pháp trực tiếp không sử dụng tiền điều kiện. Ngay với cùng một phương pháp lặp, số lần lặp đến hội tụ và thời gian tính toán có thể thay đổi đáng kể tùy tiền điều kiện.
| Tiền điều kiện | Đặc điểm | Hướng sử dụng |
|---|---|---|
| SSOR | Tiền điều kiện tiêu chuẩn. Hỗ trợ sắp thứ tự đa màu. | 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 (Trilinos-ML) | Đa lưới đại số sử dụng thư viện bên ngoài 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 thành phần sai số phân cấp. |
| AMG (SA-AMG) | Đa lưới đại số kiểu kết tụ làm trơn (Smoothed Aggregation) tích hợp trong HEC-MW. | Như trên; lựa chọn khi dùng AMG mà không bổ sung thư viện bên ngoài. |
| SAINV | Sparse Approximate Inverse. | Lựa chọn tiền điều kiện đặc 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 trong nhóm phân rã không đầy đủ. |
SSOR là lựa chọn tiêu chuẩn; trong song song OpenMP sử dụng phiên bản sắp thứ tự đa màu. 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 mô tả trong tham chiếu từ khóa.
AMG (đa lưới đại số) có hai triển khai: một triển khai sử dụng thư viện bên ngoài Trilinos-ML và SA-AMG tích hợp trong HEC-MW. Đây là hai triển khai độc lập, yêu cầu cấu hình biên dịch và cung cấp các tùy chọn khác nhau.
AMG dùng Trilinos-ML yêu cầu bật ML khi biên dịch. Có thể chỉ định bộ làm trơn, chu trình đa lưới, phương pháp làm thô và các thiết lập khác; xem tham chiếu từ khóa để biết giá trị chi tiết.
SA-AMG là tiền điều kiện đa lưới đại số kiểu kết tụ làm trơn và không cần Trilinos-ML. Tuy nhiên, SA-AMG sử dụng LAPACK ở bên trong, vì vậy cần bản biên dịch có bật LAPACK; nếu được chọn trong bản biên dịch không có LAPACK, quá trình chạy sẽ kết thúc mà không bắt đầu phân tích. Khi giải trên lưới thô, có thể dùng MUMPS trong bản biên dịch có bật MUMPS; nếu không, phương pháp trực tiếp ma trận đặc tích hợp sẽ được sử dụng.
SA-AMG chủ yếu dành cho hệ đối xứng xác định dương (CG), nhưng cũng hỗ trợ hệ rút gọn bất đối xứng phát sinh do tiếp xúc ma sát (BiCGSTAB, GMRES và các phương pháp khác). SA-AMG hỗ trợ 1 (dẫn nhiệt), 2 (phẳng), 3 (khối) và 6 (vỏ) bậc tự do trên mỗi nút, nhưng không hỗ trợ ma trận có số bậc tự do khác nhau giữa các nút. Có thể chỉ định bộ giải lưới thô, chu trình đa lưới, bậc của bộ làm trơn và các tùy chọn khác, nhưng có thể dùng giá trị mặc định cho phân tích tiêu chuẩn. Xem tham chiếu từ khóa để biết giá trị và cú pháp. Trong bản biên dịch có bật GPU (OpenACC), giai đoạn áp dụng tiền điều kiện chạy trên GPU.
Khi dùng SAINV trong phân tích song song có tiếp xúc hoặc ràng buộc MPC, độ sâu chồng lấn dùng trong phân chia 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ố. Vì không phụ thuộc vào số lần lặp nên có độ ổn định cao và là lựa chọn vững chắc cho phân tích tiếp xúc hoặc phân tích có ràng buộc. Mặt khác, lượng bộ nhớ sử dụng 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 trực tiếp ma trận thưa 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 Cluster MKL. DIRECTmkl là bí danh 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 các thư viện tương ứng được liên kết khi biên dịch. Không thể sử dụng trong môi trường thiếu thư viện; xem hướng dẫn biên dịch để biết thư viện phụ thuộc và tùy chọn CMake cần thiết.
FrontISTR cũng có đường 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 với phương pháp trực tiếp. Ngay cả khi chỉ định tiền điều kiện trong !SOLVER, đường phương pháp trực tiếp cũng không tham chiếu thiết lập đó.
Phương thức xử lý MPC¶
Phương thức xử lý MPC là cách phản ánh các bậc tự do được liên kết bằng ràng buộc đa điểm vào phương trình tuyến tính. Dù phương trình ràng buộc đầu vào giống nhau, tính chất ma trận hệ số và hội tụ thay đổi theo phương thức xử lý.
| Phương thức xử lý MPC | Đặc điểm | Mục đích mặc định |
|---|---|---|
| Phương pháp penalty | Thỏa ràng buộc gần đúng bằng cách thêm độ cứng lớn vào phương trình ràng buộc. | Mặc định với phương pháp trực tiếp. |
| Phương pháp 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 đã thu gọn. | Mặc định với phương pháp lặp. |
Với phương pháp trực tiếp, penalty là mặc định; với phương pháp lặp, khử bậc tự do tường minh là mặc định. Phương pháp MPC-CG từng có thể được chọn đã bị loại bỏ; đầu vào chỉ định MPCMETHOD=2 sẽ được xử lý theo các mặc định này sau khi phát cảnh báo.
Trong phương pháp khử bậc tự do tường minh, khối lượng tập trung dùng trong phân tích dao động riêng và phân tích động bằng phương pháp tường minh cũng được thu gọn bằng cùng phép biến đổi như ma trận độ cứng. Do ma trận khối lượng sau khi thu gọn thường không phải là ma trận đường chéo, tổng mỗi hàng của ma trận này được dùng làm khối lượng tập trung. Với các ràng buộc liên kết hoặc nội suy có tổng các hệ số trong phương trình ràng buộc bằng 1, khối lượng của các bậc tự do phụ thuộc được phân bổ cho các bậc tự do chính theo tỷ lệ các hệ số.
Trong !SOLVER, phương thức xử lý MPC có thể được chỉ định rõ bằng MPCMETHOD. Xem tham chiếu từ khóa để biết ý nghĩa giá trị và cú pháp.
Khử bậc tự do tiếp xúc¶
Khử bậc tự do tiếp xúc là chức năng thu 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 cho 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, khử bậc tự do tiếp xúc được thực hiện khi dùng phương pháp lặp và không thực hiện 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ể thực hiện khử bậc tự do tiếp xúc ngay cả khi dùng phương pháp trực tiếp. Về lựa chọn phía đầu vào cho loại tiếp xúc, cặp tiếp xúc và thuật toán tiếp xúc, xem trang Tiếp xúc và nhúng.
Chức năng bổ trợ¶
Có thể 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 trong 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 cho CG và GMRES. | Dùng trong bản biên dịch có bật LAPACK. |
| Dump ma trận | Lưu ma trận và vế phải chuyển cho bộ giải vào tệp. | Hỗ trợ các định dạng Matrix Market, CSR, BSR. |
DUMPEXIT | Kết thúc phân tích sau khi dump ma trận. | Dùng khi chỉ muốn lấy ma trận để kiểm chứng 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 toán của bộ giải. | Với VERBOSE, xuất phân tích chi tiết. |
STEPLOG | Xuất thông tin bước. | Dùng để kiểm tra quy trình phân tích. |
LOGLEVEL | Xuất thông tin chẩn đoán như cấu trúc phân cấp của tiền điều kiện AMG. | Được chỉ định độc lập với ITERLOG và TIMELOG. Giá trị lớn hơn làm tăng lượng đầu ra. |
Dump ma trận là chức năng để kiểm tra bằng công cụ bên ngoài ma trận hệ số được lắp ráp trong phân tích. Khi bật DUMPEXIT, phân tích kết thúc tại thời điểm 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 để chẩn đoán hội tụ.
Chủ đề 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 thời gian — Khung lặp Newton, lặp tiếp xúc và tích phân thời gian gọi bộ giải tuyến tính.
- Phân hoạch lưới — Phân tích song song MPI và chỉ định độ sâu chồng lấn.
- Tiếp xúc và nhúng — 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 và 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.