Як включити граничні умови методом Галеркіна?


21

Я читав деякі ресурси в Інтернеті про методи Галеркіна для вирішення PDE, але мені щось не зрозуміло. Далі - власний виклад того, що я зрозумів.

Розглянемо наступну граничну задачу (BVP):

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

де L - оператор лінійної диференціації 2-го порядку, ΩR2 - область домену BVP, Ω - межа домену, а S - лінійний диференціальний оператор першого порядку. Розрахунок u(x,y) як апроксимація форми:

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

де gi - це набір функцій, які ми використаємо для наближення u . Заміна в БВП:

iаiL[гi(х,у)]=R(а1,...,аN,х,у)

Оскільки наше наближення не є точним, залишковий не точно дорівнює нулю. У методі Гальоркіна-Рітца-Raleigh ми зменшуємо R по відношенню до безлічі аппроксимирующих функцій, вимагаючи R , г я= 0 . ЗвідсиRRR,gi=0

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

Тому, щоб знайти коефіцієнти , ми повинні розв’язати матричне рівняння:ai

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

Моє запитання: як я включаю граничні умови до цього?

EDIT: Спочатку питання говорило, що був лінійним диференціальним оператором 2-го порядку. Я змінив його на лінійний диференціальний оператор першого порядку.S[u]


1
беско, ласкаво просимо scicomp! Наша політика щодо перехресного опублікування слідує політиці інших сайтів обміну стеками . Допускати перехресне повідомлення, якщо ви адаптуєте одне й те саме питання (більш-менш) до різних аудиторій. Допустимо попросити через деякий час перенести ваше запитання на інший сайт, якщо ви вважаєте, що на ваше запитання не отримується відповідь задовільно (або взагалі) на сайті, де воно спочатку розміщено.
Джефф Оксберрі

Однак взагалі вважається образливою поведінкою, щоб перехресне повідомлення. Якщо ви подивитеся на список бета-сайтів на Площі 51, багато з них все ще залишаються відкритими бета-версіями через рік. Ми все ще будемо деякий час (хоча б на більш тривалий термін, ніж це вимагає відповіді на більшість питань на цьому сайті). Крім того, якщо mathкористувачі, які відповідають на ваше запитання, також не є scicompкористувачами, вони не отримають належного кредиту чи атрибуції на свою відповідь тут, scicompякщо ви скопіюєте його та вставте math, і навпаки.
Джефф Оксберрі

1
Ви впевнені, що також є оператором другого замовлення? Взагалі, це не добре поставлена ​​проблема. Наприклад, якщо S = L , то ви запитуєте L u = 0 в ˉ Ω, який має жахливо не унікальні рішення (наприклад, рішення PDE для будь-якого більшого домену з будь-якими граничними умовами також є рішенням). Зазвичай ми просимо S бути (можливо, нелінійним) оператором першого замовлення. SS=LLu=0Ω¯S
Джед Браун

2
Навіть якщо , ви все ще шукаєте не унікальні рішення. Поміркуйте, якщо L - оператор лапласа, а S - будь-який інший лінійний оператор другого порядку. Тоді будь-який u такий, що u = k для деякого постійного вектора k, може бути доданий до рішення, щоб зробити інший рішення. SLLSuu=kk
День

1
@GeoffOxberry Для вашого спокою дублікат запитання на адресу mathвидалено. Очевидно, ви мали рацію щодо збереження питання тут. Я отримав дуже корисні відповіді.
бекко

Відповіді:


15

Швидкий і загальний відповідь без математичних абстракцій. Існує кілька варіантів накладення граничних умов, наприклад

Власне кажучи, метод Галеркіна вимагає вибору набору базових функцій, які задовольняють BC проблеми (наприклад, за допомогою рекомбінації бази та / або розщеплення апроксимації уд уuh=u0+uNu0 responsible for inhomogenous solutions and uN a partial sum which relies on basis functions which satisfies the homogenous conditions)

  • Методи покарання / Лагранж помножуються там, де по суті додається штрафний термін, який включає граничну умову, наприклад, A + де B - матриця, відповідальна за дискретні граничні умови, а b p відповідає за неоднорідні умови. У межі τ умови сильно накладаються, інакше вона накладається слабо. Вибір τ впливає на кондиціонування системи.τB=b+τbpBbpττ

  • Метод Тау, при якому обмінюється ряд рівнянь (модифікація рядків у системі Галеркіна) дискретними версіями граничних умов, які потім чітко виконуються. Примітка. Одним із варіантів є також зробити системи переопределеними додатковими граничними умовами.

  • Перед тим, як дискретизувати (метод Рітца), перепишіть формулювання Галеркіна через теорему дивергенції Гаусса для перетворення об'ємних інтегралів в граничні інтеграли, а потім включити (точні або приблизно) граничні умови безпосередньо у формулювання перед дискретизацією.

  • Нарешті, використовуючи зв’язок між вузловими / модальними розширеннями, також можна отримати вузловий метод Галеркина, де рішенням системи є коефіцієнти основи Лагранжа, а не модальна основа.


1
Я думаю, є λ , чи не так? τλ
шухало

Так. виправлено.
Аллан П. Енгсіг-Каруп

1
Чи слід читати "Метод Галеркина вимагає, щоб ви вибрали набір базових функцій, які задовольняють БК проблеми"?
кнл

@knl: Я так само думаю, тоді як інше речення не має сенсу. Я зроблю редагування.
Девідхіг

7

Одна з можливостей полягає в тому, щоб зібрати системну матрицю і правий бічний вектор b з встановленими ступенями свободи як невідомі, як і будь-який інший ступінь свободи. Потім A і b змінюються за допомогою нульових рядків і стовпців, пов'язаних із встановленими параметрами dofs, та введенням їх у відповідний діагональний запис та відповідно модифікуючи rhs вектор bAbAbb .

Коли ви нульові рядки ставите в діагональ і змінюєте резус, щоб ви застосували встановлене значення, система більше не є симетричною. Ось чому ви нульові стовпці і змінюєте вектор резус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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.