Galerkin 방법으로 경계 조건을 통합하는 방법은 무엇입니까?


21

PDE를 해결하기 위해 Galerkin 방법에 대한 웹 리소스를 읽었지만 무언가에 대해서는 명확하지 않습니다. 다음은 내가 이해 한 것에 대한 내 자신의 설명입니다.

다음 경계 값 문제 (BVP)를 고려하십시오.

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

여기서 L 은 2 차 선형 미분 연산자이고, ΩR2 는 BVP의 도메인이고, Ω 은 도메인의 경계이며, S 는 1 차 선형 미분 연산자입니다. Expess u(x,y) 형태의 aproximation 같이

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

여기서 gi 를 근사화하는 데 사용할 함수 세트입니다 u. BVP 대체 :

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

근사값이 정확하지 않기 때문에 잔차 이 정확히 0이 아닙니다. 갤러-리츠 롤리 방법에서는 최소화 R 요구함으로써 근사 함수들의 세트에 대해를 R , g = 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
비콘,에 ​​오신 것을 환영합니다 scicomp! 교차 게시에 대한 우리의 정책은 다른 Stack Exchange 사이트 의 정책을 따릅니다 . 동일한 질문을 다른 청중에게 맞추면 교차 게시하는 것이 허용됩니다. 질문이 처음 게시 된 사이트에서 만족스럽게 (또는 전혀) 답변되지 않았다고 생각되면 잠시 후 다른 사이트로 질문을 마이그레이션하도록 요청할 수 있습니다.
Geoff Oxberry

그러나 일반적으로 교차 게시에 대한 욕설로 간주됩니다. Area 51의 베타 사이트 목록을 보면 1 년이 지난 후에도 많은 사이트가 공개 베타 버전으로 남아 있습니다. 우리는 여전히 한동안 주위에있을 것입니다 (적어도이 사이트의 대부분의 질문에 답하는 것보다 더 긴 시간 규모). 또한 math귀하의 질문에 답변 한 사용자도 scicomp사용자가 아닌 경우을 ( scicomp를)에서 복사하여 붙여 넣으면 그에 대한 답변에 대한 적절한 크레딧이나 기여를 얻지 못합니다 math.
제프 옥스 베리

1
당신은 확실히 것을 또한 2 차 연산자? 일반적으로 이는 잘 제기 된 문제가 아닙니다. 예를 들어 S = L 인 경우 끔찍하게 고유하지 않은 솔루션이 있는 ˉ Ω 에서 L u = 0 을 요청합니다 (예 : 경계 조건이있는 더 큰 도메인의 PDE 솔루션도 솔루션 임). 일반적으로 S 는 (비선형 일 수있는) 1 차 연산자가되도록 요청합니다 . SS=LLu=0Ω¯S
Jed Brown

2
경우에도 , 당신은 여전히 고유하지 않은 솔루션을 찾고 있습니다. L 이 라플라스 연산자이고 S 가 다른 2 차 선형 연산자 인지 고려하십시오 . 그런 모든 U 되도록 = K 일부 상수 벡터에 대한 K를 다른 용액을 제조하는 용액에 첨가 될 수있다. SLLSuu=kk
Dan

1
@GeoffOxberry 마음의 평화를 위해의 중복 질문 math이 삭제되었습니다. 분명히 당신은 여기에 질문을 유지하는 것이 옳았습니다. 매우 유용한 답변을 받았습니다.
becko

답변:


15

수학적 추상화없이 빠르고 일반적인 답변. 경계 조건을 부과하는 몇 가지 옵션이 있습니다.

엄밀히 갤러 방법을 말하는 것은 문제의 BC 만족 기저 함수 (예를 통해 기본 재조합 및 / 또는 분리의 집합을 선택하는 것이 필요 근사 재치 U 0 비균질 솔루션에 대한 책임 U N 기저 함수에 의존하는 부분 합을 만족하는 균일 한 상태)uh=u0+uNu0uN

  • 페널티 방법 / Lagrange는 경계 조건을 포함하는 페널티 항을 본질적으로 추가하는 경우에 곱합니다 (예 : A + 여기서 B 는 불연속 조건을 담당하는 행렬이고 b p 는 불균일 한 항을 담당합니다. 한계 τ 에서 조건은 강하게 부과되고 그렇지 않으면 약하게 부과됩니다. τ의 선택은 시스템의 컨디셔닝에 영향을 미칩니다.τB=b+τbpBbpττ

  • 타우 방법 (Tau method) : 여러 가지 방정식을 갈레 킨 시스템에서 행 수정 (modification)하여 경계 조건의 개별 버전으로 교환 한 다음 명시 적으로 적용합니다. 참고 : 하나의 옵션은 추가 경계 조건으로 시스템을 과도하게 결정하는 것입니다.

  • 이산화 전에 (Ritz Method) 가우스 분기 정리를 통해 Galerkin 공식을 다시 작성하여 부피 적분을 경계 적분으로 변환 한 다음 이산화 전에 공식에 직접 (정확하거나 대략) 경계 조건을 통합합니다.

  • 마지막으로, 노드 / 모달 팽창 사이의 연결을 이용함으로써, 시스템에 대한 솔루션이 모달 기반이 아닌 라그랑주 기반의 계수 인 노드 갈 레르 킨 방법을 도출 할 수있다.


1
나는 λ 라고 생각 하지 않습니까? τλ
shuhalo 2019

네. 수정되었습니다.
Allan P. Engsig-Karup

1
"Galerkin 방법을 사용하려면 문제의 BC를 만족하는 기본 기능 세트를 선택해야합니다."라고 읽어야 합니까?
knl

@ knl : 나도 그렇게 생각하지만 다른 문장은 의미가 없습니다. 편집하겠습니다.
davidhigh

7

하나의 가능성은 임의의 다른 자유 도와 같이 , 시스템 행렬 및 오른쪽 벡터 b 를 미리 결정된 자유도를 알 수없는 것으로 조립하는 것이다 . 그 후, Ab 는 규정 된 dofs와 연관된 행과 열을 0으로 만들고, 하나를 대응하는 대각선 엔트리에 넣고, rhs 벡터 b를 적절히 수정함으로써 수정된다 .AbAbb

행을 0으로 설정하면 대각선에 1을 넣고 rhs를 변경하여 규정 된 값을 적용하면 시스템이 더 이상 대칭이 아닙니다. 그래서 열을 제로로 만들고 rhs 벡터를 수정하십시오. 를하여 규정 된 값을 설명합니다.b

또 다른 가능성은 규정 된 dof의 대각선에 매우 많은 수의 (보통 1e10) 를 추가 한 다음 rhs 항목을 p * ˉ u 로 설정하는 것입니다 . 여기서 ˉ u 는 해당 dof의 규정 된 값입니다.pu¯u¯


6

유한 요소 방법으로 경계 조건을 처리하는 일반적인 문제는 상당히 복잡해질 수 있습니다. 그러나 만약 :

  • 단 부형되도록이고 S는 ( U ) = 0 의 형태를 만든다 u는 그 일부와 동일하다는 것이다 F ( X , Y ) 에 대한 δ Ω .S(u)S(u)=0uf(x,y)δΩ

  • 이 전체적으로 다양한 요소의 경계에 있도록 요소를 피닝 할 수 있습니다.δΩ

실제로 매우 간단합니다. 당신의 방정식 :

(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.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.