Galerkin法で境界条件を組み込む方法


21

私はPDEを解くためのGalerkinの方法に関するウェブ上のいくつかのリソースを読んでいますが、何かについて明確ではありません。以下は、私が理解したことに関する私自身の説明です。

次の境界値問題(BVP)を検討してください。

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

ここで、L微分演算子線形2次であり、ΩR2、BVPのドメインであるΩドメインの境界であり、そしてS微分演算子線形1次です。次の形式の近似としてu(x,y)を期待します。

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

ここで、uを近似するために使用する関数のセットです。BVPに置き換える:giu

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

近似は正確ではないため、残差は正確にゼロではありません。ガラーキン-リッツローリー法では、最小R必要とすることによって機能を近似のセットに対してのR G 、I= 0。したがってRRR,gi=0

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

したがって、係数を見つけるには、行列方程式を解く必要があります。ai

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

私の質問は次のとおりです。これに境界条件を組み込むにはどうすればよいですか。

編集:もともと質問は、は2次の線形微分演算子であると言っていました。これを1次線形微分演算子に変更しました。S[u]


1
becko、ようこそscicomp!クロスポストのポリシーは、他のStack Exchangeサイトのポリシーに従います。同じ質問を(多かれ少なかれ)異なる聴衆に合わせて調整する場合、クロスポストすることは許されます。質問が最初に投稿されたサイトで満足のいく(またはまったく)回答が得られないと感じた場合、しばらくしてから質問を別のサイトに移行することを許可します。
ジェフオックスベリー

ただし、クロスポストするのは一般的に虐待行為と見なされます。エリア51のベータサイトのリストを見ると、それらの多くは1年後もパブリックベータのままです。私たちはまだしばらくの間(少なくともこのサイトのほとんどの質問に答えるよりも長い時間スケールで)います。さらに、math質問に回答するユーザーもユーザーでない限り、からコピーアンドペーストscicompしたscicomp場合、 ここで回答に対する適切なクレジットまたは帰属が得られませんmath
ジェフオックスベリー

1
Sは2次演算子でもあると確信しています?一般に、それは適切な問題ではありません。たとえば、Sは= L、そしてあなたが求めているL uが= 0ˉ Ω(いずれかの境界条件を持つ任意の大きなドメイン上のPDEのソリューションはまた、溶液であるなど)恐ろしく非ユニークなソリューションを提供しています。通常、Sが(おそらく非線形の)1次演算子であることを要求します。SS=LLu=0Ω¯S
ジェドブラウン

2
場合でも、あなたはまだ一意でない解を見ています。Lがラプラス演算子であり、Sが他の2次線形演算子であるかどうかを検討してください。その後、任意のuようU = Kいくつかの定数ベクトルのためのkが別の溶液を作製するために溶液に添加することができます。SLLSuu=kk
ダン

1
@GeoffOxberry念のため、重複した質問をmath削除しました。ここで質問を続けることについてあなたは正しかったことは明らかです。私は非常に有益な回答を受け取りました。
-becko

回答:


15

数学的抽象化なしの迅速で一般的な回答。境界条件を課すいくつかのオプションがあります。例えば

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.

  • 多数の方程式を境界条件の離散バージョンと交換する(ガラーキンシステムの行の修正)タウ法。その後、明示的に実施されます。注:1つのオプションは、追加の境界条件でシステムを過剰に決定することです。

  • 離散化(リッツ法)の前に、ガウス発散定理を介してガラーキン定式を書き換えて、体積積分を境界積分に変換し、離散化前の定式化に(厳密または近似)境界条件を直接組み込みます。

  • 最後に、節点/モーダル展開間の接続を活用することにより、システムの解がモード基底ではなくラグランジュ基底の係数である節点ガラーキン法を導出することもできます。


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

One possibility is to assemble the system matrix A and right-hand side vector b, with the prescribed degrees of freedom as unknowns, like any other degree of freedom. Then, A and b are modified by zeroing rows and columns associated with the prescribed dofs, and putting a one into the corresponding diagonal entry, and appropriately modifying the rhs vector b.

When you zero rows, put one into the diagonal and change the rhs so that you enforce the prescribed value, the system is no longer symmetric. That´s why you zero columns and modify the rhs vector 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:何をもっと明確にしたいかもしれません L そして Sあなたの質問にあります。さまざまな種類の境界条件をさまざまな方法で処理できます。
ダン

1
質問を少し編集してわかりやすくしました。できる限り一般的な質問にしたいので、解決しようとしている正確な問題を投稿したくありません。その方法をよりよく理解できると思います。
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.

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.