Các phương pháp giải quyết các hệ thống khuếch tán phi tuyến tính ngoài Newton-Raphson?


9

Tôi đang làm việc trong một dự án nơi tôi có hai tên miền được ghép khác nhau thông qua các thuật ngữ nguồn tương ứng của chúng (một tên miền thêm khối lượng, khối lượng khác trừ đi khối lượng). Để cho ngắn gọn, tôi đang mô hình hóa chúng ở trạng thái ổn định. Các phương trình là phương trình vận chuyển khuếch tán tiến bộ tiêu chuẩn của bạn với một thuật ngữ nguồn trông như thế này:

c1t= =0= =F1+Q1(c1,c2)c2t= =0= =F2+Q2(c1,c2)

Trong đó là thông lượng khuếch tán và tiến bộ cho loài iQ iFTôiTôiQTôi là thuật ngữ nguồn cho loài .Tôi

Tôi đã có thể viết một bộ giải cho vấn đề của mình bằng phương pháp Newton-Raphson và đã kết hợp hoàn toàn hai miền bằng cách sử dụng ma trận khối khối, nghĩa là:

Fcobạnptôied= =[Một100Một2][c1,Tôic2,Tôi]xTôi-[b1(c1,Tôi,c2,Tôi)b2(c1,Tôi,c2,Tôi)]

Thuật ngữ được sử dụng để xác định ma trận Jacobian và cập nhật cả c 1c 2 :Fcobạnptôiedc1c2

J(xTôi)[xTôi+1-xTôi]= =-Fcobạnptôied

hoặc là

xTôi+1= =xTôi-(J(xTôi))-1Fcobạnptôied

Để tăng tốc mọi thứ, tôi không tính toán Jacobian mỗi lần lặp - ngay bây giờ tôi đang chơi với mỗi năm lần lặp, dường như hoạt động đủ tốt và giữ cho giải pháp ổn định.

Vấn đề là: Tôi sẽ chuyển sang một hệ thống lớn hơn, nơi cả hai miền đều ở dạng 2D / 2.5D và việc tính toán ma trận Jacobian sẽ nhanh chóng làm cạn kiệt tài nguyên máy tính có sẵn của tôi. Tôi đang xây dựng mô hình này để sử dụng trong cài đặt tối ưu hóa sau này, vì vậy tôi cũng không thể ngồi sau tay lái trong mỗi lần lặp điều chỉnh hệ số giảm xóc, v.v.

Tôi có đúng không khi đang tìm kiếm một thuật toán mạnh mẽ và mạnh mẽ hơn cho vấn đề của mình, hay điều này có tốt như nó không? Tôi đã xem xét một chút về tuyến tính hóa gần đúng, nhưng không chắc nó có thể áp dụng như thế nào cho hệ thống của tôi.

Có bất kỳ thuật toán khéo léo nào khác mà tôi có thể đã bỏ lỡ có thể giải một hệ phương trình phi tuyến mà không cần dùng đến tính toán lại Jacobian như đã tắt?


2
Bạn đã xem xét các bộ giải lặp như AMG - phương pháp đa đại số. Bạn có thể cần phải đưa ra các điều kiện tiên quyết tốt là dựa trên vật lý.
NameRakes

1
Bạn có thể truy cập vào một cụm máy tính nơi bạn có thể phân phối đội hình và giải pháp Jacobian bằng cách sử dụng gói đại số tuyến tính song song không?
Bill Barth

Không, tôi chưa xem xét AMG, tôi nghĩ rằng chúng chỉ dành cho các hệ thống đối xứng và không thể được sử dụng trong các vấn đề chi phối đối lưu. Tôi sẽ xem xét lại trong tài liệu cho AMG.
cbcoutinho

Việc tính toán song song rất khó khăn vì dự án này đang được phát triển như một ứng dụng độc lập cho các đồng nghiệp không có quyền truy cập vào các loại tài nguyên đó. Tôi đã cân nhắc việc phát triển mpi vào dự án vì lợi ích của riêng tôi, nhưng điều đó sẽ làm tăng rào cản gia nhập cho những người khác, đó là toàn bộ vấn đề ở nơi đầu tiên ..
cbcoutinho

3
Tại sao điện toán Jacobian lại có vấn đề như vậy? Nếu bạn đang sử dụng sự khác biệt / khối lượng / phần tử hữu hạn, Nó nên có một phần thưa thớt luôn luôn giống nhau và một phần đường chéo thay đổi nhưng không quan trọng để tính toán.
David Ketcheson

Câu trả lời:


4

Tôi giả sử giới hạn trong 2D và 3D là lưu trữ Jacobian.

Một tùy chọn là giữ lại các đạo hàm thời gian và sử dụng bước thời gian "giả" rõ ràng để lặp lại ở trạng thái ổn định. Thông thường, số CFL bạn cần cho các hệ thống khuếch tán và phản ứng có thể rất nhỏ. Bạn có thể thử multigrid phi tuyến (nó còn được gọi là multigrid lưu trữ xấp xỉ đầy đủ) và bước thời gian cục bộ để tăng tốc độ hội tụ.

Tùy chọn khác là sử dụng sơ đồ hoàn toàn ẩn như bạn đang làm, nhưng không lưu trữ Jacobian toàn cầu. Bạn có thể sử dụng sơ đồ ẩn không ma trận. (trong đó D F là Jacobian) có thể được giải bằng bộ giải không gian con Krylov như GMRES và BiCGStab bằng cách sử dụng thực tế là D F ( u n )

DF(bạnn)δbạnn= =-F(bạnn)
DF Điều này là do GMRES và BiCGStab không yêu cầu ma trận LHSA, họ chỉ cần có thể tính toán sản phẩm của mìnhAxvới một vectơx.
DF(bạnn)δbạnF(bạnn+εδbạnδbạn)-F(bạnn)ε.
MộtMộtxx

Bây giờ với một giá trị thích hợp của (thường là khoảng 10 - 7 cho nổi đúp chính xác), bạn có thể thực hiện một vòng lặp Newton mà không bao giờ tính toán hay lưu trữ một Jacobian. Tôi biết một thực tế rằng kỹ thuật này được sử dụng để giải quyết một số trường hợp không tầm thường trong động lực học chất lỏng tính toán. Tuy nhiên, lưu ý rằng số lượng đánh giá của hàm F sẽ nhiều hơn trong kỹ thuật lưu trữ ma trận, thay vì yêu cầu một sản phẩm vector ma trận.ε10-7F

Một điều cần lưu ý là nếu hệ thống của bạn cần có một điều kiện tiên quyết mạnh mẽ (ví dụ: Jacobi hoặc block-Jacobi sẽ không đủ), bạn có thể muốn thử sử dụng phương pháp được đề cập ở trên như một cách mượt mà hơn trong sơ đồ đa điểm. Nếu bạn muốn dùng thử một điều kiện tiên quyết điểm hoặc khối Jacobi, bạn có thể tính toán và chỉ lưu trữ các phần tử đường chéo hoặc khối đường chéo của Jacobian, không nhiều. Tôi cũng sẽ đề cập rằng một điều kiện tiên quyết Gauss-Seidel hoặc SSOR có thể được thực hiện mà không lưu trữ rõ ràng một Jacobian. Bài viết này mô tả việc thực hiện một GMRES không có ma trận tiền điều kiện với Gauss-Seidel đối xứng không có ma trận trong bối cảnh động lực học chất lỏng tính toán.


1

Từ kinh nghiệm của tôi với các phương trình Navier-Stokes, người ta có thể làm rất tốt mà không cần các sơ đồ hoàn toàn ẩn.

Nếu bạn chỉ muốn một sơ đồ số nhanh cho giải pháp tiến hóa thời gian, hãy xem sơ đồ IMEX (ẩn-tường); xem ví dụ bài viết này của Ascher, Ruuth, Spiteri Implicit-Explicit Runge-Kutta Phương thức cho các phương trình vi phân từng phần phụ thuộc thời gian .

Bạn thậm chí có thể cố gắng chỉ sử dụng sơ đồ tích hợp thời gian theo thứ tự cao rõ ràng với kiểm soát kích thước bước (như Matlab ODE45). Tuy nhiên, bạn có thể gặp rắc rối vì độ cứng của hệ thống của bạn, xuất phát từ phần khuếch tán. May mắn thay, phần khuếch tán là tuyến tính để nó có thể được xử lý ngầm (đó là ý tưởng của các sơ đồ IMEX).


0

Lúc đầu tôi chỉ xem xét thêm một nhận xét, nhưng không gian không đủ, vì vậy tôi thêm một số mô tả ngắn gọn về kinh nghiệm của tôi với chủ đề này.

Fcobạnptôiedb1b2c1,Tôic2,TôiMột1Một2F1F2cTôi, mà còn về các giá trị lân cận, nhưng điều này có thể chỉ là một sự hiểu sai về ký hiệu của bạn.

Như một nhận xét chung, tôi muốn nói thêm rằng sử dụng Jacobian phân tích dường như là cách duy nhất để có được sự hội tụ bậc hai của bộ giải lặp không tuyến tính (tức là bộ giải Newton-Raphson trong trường hợp của bạn). Bạn đã quan sát nó trong trường hợp của bạn? Nó là khá quan trọng, bởi vì nếu không có thể có một số hiểu lầm trong xấp xỉ của bạn (tuyến tính hóa).

Trong tất cả các ứng dụng tôi đã tham gia (một số trong số chúng bao gồm các tính toán quy mô lớn) chúng tôi chưa bao giờ gặp phải vấn đề tiêu tốn thời gian lắp ráp Jacobian, vấn đề tốn thời gian nhất là luôn áp dụng bộ giải tuyến tính. Jacobian phân tích (nếu có) luôn có trong các ứng dụng tôi đang làm việc trên sự lựa chọn ưu tiên vì sự hội tụ bậc hai. Trong một số trường hợp, bộ giải phi tuyến như vậy tạo ra một ma trận gây ra các vấn đề về sự hội tụ của bộ giải tuyến tính lặp, vì vậy chúng tôi đã thử sử dụng một tuyến tính đơn giản hơn Jacobian phân tích để giúp bộ giải tuyến tính. Sự đánh đổi giữa hành vi của người giải đại số phi tuyến và tuyến tính phụ thuộc vào sự tuyến tính hóa của hệ đại số phi tuyến luôn luôn khó khăn và tôi không thể đưa ra khuyến nghị chung.

Nhưng bạn đã đúng rằng nhược điểm (hoặc tính chất) của Jacobian phân tích cho hệ thống PDE là nó tạo ra hệ thống đại số kết hợp, vì vậy, nếu bạn tách rời hệ thống đó theo bất kỳ cách nào, ví dụ như giải quyết riêng rẽ từng PDE bằng cách chia tách phương pháp, sau đó một lần nữa bạn mất đi sự hội tụ bậc hai của bộ giải toàn cầu. Nhưng sau đó, ít nhất nếu bạn giải quyết riêng từng PDE rời rạc (tách rời), bạn có thể một lần nữa tăng tốc giải pháp cho vấn đề cụ thể này bằng cách sử dụng phương pháp Newton-Raphson.


b1b2c1c2Một1Một2F1F2là các vectơ, vì vậy chúng là các hàm của vectơ các biến trạng thái, không chỉ là một biến. Tôi tính toán một Jacobian bằng cách sử dụng các khác biệt hữu hạn. Tôi đã không điều tra một Jacobian phân tích.
cbcoutinho
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.