Làm thế nào để kết hợp các điều kiện biên với phương pháp Galerkin?


21

Tôi đã đọc một số tài nguyên trên web về các phương pháp của Galerkin để giải quyết các PDE, nhưng tôi không rõ về điều gì đó. Sau đây là tài khoản của riêng tôi về những gì tôi đã hiểu.

Hãy xem xét vấn đề giá trị biên sau (BVP):

L[u(x,y)]=0on(x,y)Ω,S[u]=0on(x,y)Ω

nơi là một trật tự thứ 2 tuyến tính toán sự khác biệt, Ohm R 2 là tên miền của BVP, Ohm là ranh giới của miền, và S là một thứ tự 1. tuyến tính điều hành khác biệt. Yêu cầu u ( x , y ) là một phép tính gần đúng của biểu mẫu:LΩR2ΩSu(x,y)

u(x,y)i=1Naigi(x,y)

Trong đó là một tập hợp các hàm mà chúng ta sẽ sử dụng để xấp xỉ u . Thay thế trong BVP:giu

iaiL[gi(x,y)]=R(a1,...,aN,x,y)

Vì giá trị gần đúng của chúng tôi không chính xác, còn lại không chính xác bằng không. Trong phương pháp Galerkin-Ritz-Raleigh chúng ta giảm thiểu R liên quan đến các bộ xấp xỉ chức năng bằng cách yêu cầu R , g i= 0 . Vì thếRRR,gi=0

R,gi=j=1NajL[gj],gi=0

Do đó, để tìm hệ số , chúng ta phải giải phương trình ma trận:ai

(L[g1],g1L[gN],g1L[g1],gNL[gN],gN)(a1aN)=0

Câu hỏi của tôi là: Làm thế nào để tôi kết hợp các điều kiện biên vào đây?

EDIT: Ban đầu câu hỏi nói rằng là toán tử vi phân tuyến tính bậc 2. Tôi đã thay đổi nó thành một toán tử vi phân tuyến tính bậc 1.S[u]


1
vẫy gọi, chào mừng đến scicomp! Chính sách của chúng tôi về đăng tải chéo tuân theo các trang web Stack Exchange khác . Được phép đăng bài chéo nếu bạn điều chỉnh cùng một câu hỏi (ít nhiều) cho các đối tượng khác nhau. Bạn có thể yêu cầu câu hỏi của bạn được di chuyển đến một trang web khác sau một thời gian, nếu bạn cảm thấy rằng câu hỏi của bạn không được trả lời thỏa đáng (hoặc hoàn toàn) trên trang web nơi nó được đăng ban đầu.
Geoff Oxberry

Tuy nhiên, nó thường được coi là hành vi lạm dụng để đăng chéo. Nếu bạn nhìn vào danh sách các trang web beta trên Khu vực 51, nhiều trang trong số đó vẫn ở phiên bản beta công khai sau một năm. Chúng tôi vẫn sẽ xuất hiện trong một thời gian (ít nhất là trên thang thời gian dài hơn so với hầu hết các câu hỏi trên trang web này để được trả lời). Hơn nữa, trừ khi mathngười dùng trả lời câu hỏi của bạn cũng là scicompngười dùng, họ sẽ không nhận được tín dụng hoặc quyền sở hữu phù hợp cho câu trả lời của họ ở đây scicompnếu bạn sao chép-dán từ đó mathvà ngược lại.
Geoff Oxberry

1
Bạn có chắc chắn rằng cũng là một toán tử thứ hai? Nói chung, đó không phải là một vấn đề đặt ra. Ví dụ, nếu S = L , sau đó bạn đang yêu cầu L u = 0 trong ˉ Ohm trong đó có các giải pháp khủng khiếp không duy nhất (ví dụ như các giải pháp của PDE trên bất kỳ tên miền lớn hơn với bất kỳ điều kiện biên cũng là một giải pháp). Thông thường chúng tôi yêu cầu S là toán tử đơn hàng đầu tiên (có thể là phi tuyến). SS=LLu=0Ω¯S
Jed Brown

2
Thậm chí nếu , bạn vẫn nhìn vào các giải pháp phi độc đáo. Xem xét nếu L là toán tử laplace và S là bất kỳ toán tử tuyến tính bậc hai nào khác. Sau đó, bất kỳ u sao cho u = k cho một số vectơ không đổi k có thể được thêm vào một giải pháp để tạo ra một giải pháp khác. SLLSuu=kk
Dan

1
@GeoffOxberry Để bạn yên tâm, câu hỏi trùng lặp tại mathđã bị xóa. Rõ ràng bạn đã đúng khi giữ câu hỏi ở đây. Tôi đã nhận được phản hồi rất hữu ích.
vẫy gọi

Câu trả lời:


15

A quick and general answers without mathematical abstractions. There are several options to impose boundary conditions, e.g.

Strictly speaking the Galerkin method requires that you choose a set of basis functions which satisfy the BC of the problem (e.g. via basis recombination and/or splitting of the approximation uh=u0+uN wit u0 responsible for inhomogenous solutions and uN a partial sum which relies on basis functions which satisfies the homogenous conditions)

  • Penalty methods/Lagrange multiplies where one essentially add a penalty term which incorporated the boundary condition, e.g. A+τB=b+τbp where B is a matrix responsible for the discrete boundary condition and bp is responsible for inhomogenous terms. In the limit τ the conditions is strongly imposed and otherwise it is weakly imposed. Choice of τ affects conditioning of the system.

  • Phương thức Tau trong đó một số phương trình được trao đổi (sửa đổi các hàng trong hệ thống Galerkin) với các phiên bản riêng biệt của các điều kiện biên sau đó được thi hành rõ ràng. Lưu ý: một tùy chọn cũng là làm cho các hệ thống quá hạn với các điều kiện biên bổ sung.

  • Trước khi phân tách (Phương pháp Ritz) viết lại công thức Galerkin thông qua định lý phân kỳ Gauss để biến đổi các tích phân khối thành tích phân biên và sau đó kết hợp (chính xác hoặc xấp xỉ) các điều kiện biên trực tiếp trong công thức trước khi rời rạc.

  • Cuối cùng, bằng cách khai thác kết nối giữa các mở rộng nút / phương thức, cũng có thể rút ra phương pháp Galerkin trong đó giải pháp cho hệ thống là các hệ số của cơ sở Lagrange thay vì cơ sở phương thức.


1
I guess τ is λ, isn't it?
shuhalo

Yep. corrected.
Allan P. Engsig-Karup

1
Should it read "Galerkin method requires that you choose a set of basis functions which satisfy the BC of the problem"?
knl

@knl: I think so as well, whereas the other sentence makes no sense. I'll do an edit.
davidhigh

7

Một khả năng là lắp ráp ma trận hệ thống và vectơ bên phải b , với các mức độ tự do được quy định là ẩn số, giống như bất kỳ mức độ tự do nào khác. Sau đó, Ab được sửa đổi bằng cách tạo các hàng và cột bằng 0 liên kết với các dofs quy định và đặt một mục vào đường chéo tương ứng và sửa đổi một cách thích hợp vectơ rhs bAbAbb.

Khi bạn không có hàng nào, đặt một hàng vào đường chéo và thay đổi rhs để bạn thực thi giá trị quy định, hệ thống không còn đối xứng nữa. Đó là những lý do tại sao bạn không có cột và sửa đổi vectơ rhs b to account for the prescribed value.

Another possibility is to add a very large number p (usually 1e10) to the diagonal of the prescribed dof and then set the rhs entry to p*u¯, where u¯ is the prescribed value of that dof.


6

The general problem of dealing with boundary conditions with the finite element method can get pretty complicated. But if:

  • S(u) is such that the only imposition S(u)=0 makes on the form of u is that it is equal to some f(x,y) on δΩ.

  • You can finagle your elements so that δΩ is entirely on the boundaries of various elements

it's actually very simple. Your equation:

(L[g1],g1L[gN],g1L[g1],gNL[gN],gN)(a1aN)=0
needs to be replaced with
(L[g1],g1L[gN],g1L[g1],gNL[gN],gN)(a1aN)=b

where the right hand side vector b represents the boundary conditions.

To determine b, set the elements of your basis that determine the value of u on δΩ to whatever values they need to be to satisfy the boundary conditions. In L[gj],gi, you should exclude them from the gj but not the gi (the elements of a that correspond to these functions have already been determined, so they shouldn't be included in the matrix equation) . Then, set up

R,gi=j=1NajL[gj],gi=0
as a matrix equation, and the values of the elements of b should pop right out as the inner products of L operating on your your interior basis with elements of your boundary basis.

Thanks for the answer Dan. I don't understand the paragraph that begins "To determine b ..." (which is the essential part, I think). Could you make it a little more explicit?
becko

On the other hand, the problem I'm trying to solve only satisfies the second condition you set: The boundary is a rectangle. As for the first condition, the boundary conditions do not specify the values of the function at the boundary. The boundary conditions specify the values of linear combinations of the second order derivatives of the function (something like a2u/xy+b2u/x2=0), where a,b are constants. Also the boundary conditions are homogeneous.
becko

@becko: You might want to be more explicit about what L and S are in your question. Different types of boundary conditions can be handled in different ways.
Dan

1
I edited the question a little to make it clearer, I think. I don't want to post the exact problem I'm trying to solve because I want to keep the question as general as I can. I think I can understand the method better that way.
becko

@becko: We might want to move this to chat, as it's getting kind of long.
Dan

2

Here is a method known as basis recombination, which has not been mentioned in the present thread. I'm citing from the book of J.P. Boyd, "Chebyshev and Fourier Spectral Methods", 2nd Ed., Chapter 6.5.:

If the problem

Lu=f
has inhomogeneous boundary conditions, then it may always be replaced by an equivalent problem with homogeneous boundary conditions, so long as the boundary conditions are linear. The first step is to choose a simple function B(x) which satisfies the inhomogeneous boundary conditions. One may then define a new variable v(x) and new forcing function g(x) via
u(x)v(x)+B(x)g(x)f(x)LB(x)
so that the modified problem is
Lv=g
where v(x) satisfies homogeneous boundary conditions. ...

The shift function B(x) is arbitrary except for the constraint that it must satisfy all the inhomogeneous boundary conditions. However, the simplest choice is the best: polynomial interpolation of the lowest order that works.

Next comes my own explanation:

  • "Inhomogeneous boundary condition" means a condition which contains a constant, e.g.

    xu(x,y)|x=x0=1.

    According to the above program, by choosing a convenient function B(x), you get that down to

    xu(x,y)|x=x0=0.
  • Once you made all boundary conditions homogeneous in this way, you can turn to your basis expansion (which I assume is done in terms of a product basis):

    u(x,y) = ijaijϕi(x)φj(y)
    By applying the corresponding BC operator, one obtains
    xu(x,y) = ijaijϕi(x)φj(y)
    and this should be zero for x=x0 according to the above example.
  • Now comes the crucial step: by using a basis ϕi(x) which already satisfies the BC by itself, i.e. ϕi(x)|x=x0=0 for all i, the BC of the (transformed) two-dimensional problem are satisfied automatically! Basis sets of this and similar kind can be found, e.g., by a procedure called "basis recombination" (that is often used in combination with collocation methods).

  • Note that this is the point where homogeneous boundary conditions really matter, because otherwise one would need to impose further constraints. For example, suppose we would be working with the "=1" condition above, and, correspondingly, let's try to use a basis with ϕi(x)|x=x0=1. Then

    xu(x,y)|x=x0 = ijaijφj(y)
    and in order to make this expression equal to 1 for all y, one would have to constrain the expansion coeffcients aij as well. Thus, for inhomogeneous BCs, there is a general way to apply the constraints to the one-dimensional parts but use it for to the full problem.

The nice thing about this whole approach is that it is working on a relatively abstract level. Necessary ingredients are only linearity of the BC operator and an ansatz in terms of product basis functions. As such, it is also applicable to approximate methods.

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.