Wie werden die Randbedingungen mit der Galerkin-Methode berücksichtigt?


21

Ich habe im Internet einige Ressourcen über Galerkin-Methoden zur Lösung von PDEs gelesen, bin mir jedoch nicht sicher, was ich tun soll. Das Folgende ist meine eigene Darstellung dessen, was ich verstanden habe.

Betrachten Sie das folgende Randwertproblem (BVP):

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

wobei L ein linearer Differenzierungsoperator 2. Ordnung ist, ΩR2 die Domäne des BVP ist, die Grenze der Domäne ist und ein linearer Differenzierungsoperator 1. Ordnung ist. Expessiere als eine Annäherung der Form:S u ( x , y )ΩSu(x,y)

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

Dabei ist eine Menge von Funktionen, mit denen wir uns u annähern . Vertretung im BVP:giu

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

Da unsere Näherung nicht genau ist, ist der Rest nicht genau Null. Im Galerkin--Ritz-Raleigh - Verfahren minimieren wir R in bezug auf den eingestellten Funktionen der Annäherung durch die Forderung R , g i= 0 . DaherRRR,gi=0

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

Um die Koeffizienten zu finden , müssen wir daher die Matrixgleichung lösen:ai

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

Meine Frage ist: Wie binde ich die Randbedingungen ein?

EDIT: Ursprünglich lautete die Frage, dass ein linearer Differentialoperator 2. Ordnung war. Ich habe es in einen linearen Differentialoperator 1. Ordnung geändert.S[u]


1
becko, willkommen bei scicomp! Unsere Richtlinie zum Cross-Posting folgt der anderer Stack Exchange-Sites . Ein Cross-Posting ist zulässig, wenn Sie dieselbe Frage (mehr oder weniger) auf unterschiedliche Zielgruppen zuschneiden. Es ist zulässig, Ihre Frage nach einiger Zeit auf eine andere Site zu migrieren, wenn Sie der Meinung sind, dass Ihre Frage auf der Site, auf der sie ursprünglich veröffentlicht wurde, nicht zufriedenstellend (oder überhaupt nicht) beantwortet wird.
Geoff Oxberry

Es wird jedoch allgemein als missbräuchliches Verhalten beim Cross-Posting angesehen. Wenn Sie sich die Liste der Beta-Sites in Area 51 ansehen, befinden sich viele von ihnen nach einem Jahr noch in der öffentlichen Beta. Wir werden noch eine Weile da sein (zumindest in einem längeren Zeitraum, als es die meisten Fragen auf dieser Website erfordert, um beantwortet zu werden). Sofern die mathBenutzer, die Ihre Frage beantworten , nicht auch scicompBenutzer sind, erhalten sie für ihre Antwort hier am nicht die erforderliche Anerkennung oder Zuschreibung, scicompwenn Sie sie kopieren und einfügen mathund umgekehrt.
Geoff Oxberry

1
Sind Sie sicher, dass auch ein Betreiber zweiter Ordnung ist? Im Allgemeinen ist das kein gutes Problem. Zum Beispiel, wenn S = L , dann fragen Sie nach L u = 0 in ˉ Ω, was fürchterlich nicht eindeutige Lösungen hat (zB ist die Lösung der PDE auf jeder größeren Domäne mit irgendwelchen Randbedingungen auch eine Lösung). Normalerweise verlangen wir, dass S ein (möglicherweise nichtlinearer) Operator erster Ordnung ist. SS=LLu=0Ω¯S
Jed Brown

2
Auch wenn , suchen Sie immer noch nach nicht eindeutigen Lösungen. Überlegen Sie, ob L der Laplace-Operator und S jeder andere lineare Operator zweiter Ordnung ist. Dann kann jede u so dass u = k für eine Konstante Vektor k kann zu einer Lösung hinzugefügt werden , um eine andere Lösung zu machen. SLLSuu=kk
Dan

1
@GeoffOxberry Zur Beruhigung wurde die doppelte Frage mathunter gelöscht. Offensichtlich haben Sie Recht gehabt, die Frage hier zu behalten. Ich habe sehr hilfreiche Antworten erhalten.
Becko

Antworten:


15

Eine schnelle und allgemeine Antwort ohne mathematische Abstraktionen. Es gibt verschiedene Möglichkeiten, Randbedingungen festzulegen, z

Streng genommen die Galerkin- Methode erfordert , dass man einen Satz von Basisfunktionen wählen , die die BC des Problems (zB über Basis - Rekombination und / oder Spaltung des erfüllen Näherung wit u 0 für inhomogene Lösungen und u N eine Teilsumme, die auf Basisfunktionen beruht, die die homogenen Bedingungen erfüllen)uh=u0+uNu0uN

  • Strafverfahren / Lagrange multipliziert, wobei man im Wesentlichen einen Strafausdruck addiert, der die Randbedingung enthält, zB A + wobei B eine Matrix ist, die für die diskrete Randbedingung verantwortlich ist, und b p für inhomogene Ausdrücke verantwortlich ist. In der Grenze τ ∞ sind die Bedingungen stark und ansonsten schwach vorgegeben. Die Wahl von τ beeinflusst die Konditionierung des Systems.τB=b+τbpBbpττ

  • Tau-Methode, bei der eine Reihe von Gleichungen (Änderung von Zeilen im Galerkin-System) mit diskreten Versionen von Randbedingungen ausgetauscht werden, die dann explizit erzwungen werden. Hinweis: Eine Möglichkeit besteht auch darin, die Systeme mit zusätzlichen Randbedingungen überbestimmt zu machen.

  • Vor der Diskretisierung (Ritz-Methode) schreiben Sie die Galerkin-Formulierung über das Gauß-Divergenz-Theorem um, um Volumenintegrale in Grenzintegrale umzuwandeln, und integrieren Sie dann (genaue oder ungefähre) Randbedingungen direkt in die Formulierung vor der Diskretisierung.

  • Schließlich ist es durch Ausnutzung der Verbindung zwischen Knoten- / Modalerweiterungen auch möglich, eine Knoten-Galerkin-Methode abzuleiten, bei der die Lösung des Systems die Koeffizienten einer Lagrange-Basis und nicht einer Modalbasis sind.


1
Ich denke ist λ , nicht wahr? τλ
Shuhalo

Ja. korrigiert.
Allan P. Engsig-Karup

1
Sollte es lauten "Galerkin-Methode erfordert, dass Sie eine Reihe von Basisfunktionen auswählen , die den BC des Problems erfüllen"?
Knl

@knl: Ich denke auch, während der andere Satz keinen Sinn ergibt. Ich werde einen Schnitt machen.
Davidhigh

7

Eine Möglichkeit besteht darin, die Systemmatrix und den Vektor b auf der rechten Seite mit den vorgeschriebenen Freiheitsgraden als Unbekannte zusammenzusetzen, wie bei jedem anderen Freiheitsgrad. Dann werden A und b modifiziert, indem den vorgeschriebenen dofs zugeordnete Zeilen und Spalten auf Null gesetzt werden, eine Eins in den entsprechenden diagonalen Eintrag gesetzt wird und der rhs-Vektor b geeignet modifiziert wird .AbAbb

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.