Як саме працює алгоритм * full * multigrid?


12

Тож я розумію (або, принаймні, я вважаю, що це роблю) як V-цикл працює. Я написав у Matlab 1-D, рекурсивну версію V-циклу. Однак, коли я запустив свій код для FMG, моє рішення не збігалося. Я вважаю, що моя проблема полягає в моєму розумінні фактичної частини FMG. Я зараз знаю:

  1. Напередодні інтерполяції FMG я розслабила своє рішення u
  2. Інтерполюйте як помилку, так і (?)u
  3. Виконати 2-сітковий v-цикл, передаючи помилку в v-цикл (?)
  4. Розслабте помилку (на 2-й найбільш грубій сітці)
  5. Інтерполювати та помилкуu
  6. Оновіть , додавши до нього помилку.u
  7. Запустіть v-цикл, після чого повторіть етап 4.

Я не впевнений у порядку, але я також можу помилитися в тому, що саме я інтерполюю та передаю у свій v-цикл. Якщо я щось бракую з алгоритму, будь ласка, повідомте мене про це.

Відповіді:


11

Звідки ви придумали інтерполяцію "помилки"? (А як ви вимірюєте помилку?)

uuh←IHhuHIhH=IhH

rh=Ahuh−bh

u~H←I^hHu~hA

AHuH=IhHbh⏟bH+AHI^hHu~h−IhHAhu~h⏟τhH

bHτhHuh∗AHI^hHuh∗=bH+τhH∗uh←u~h+IHh(uH−I^hHu~h)


Помилка була обчислена, коли я обчислював залишки, переходячи від найкращої до найгрубішої сітки. Початкове наближення по сітці дорівнює нулю, де її потім розслаблюють деяким ітеративним методом.
— АланH

Яким чином помилка (початкова здогадка рішення) відіграє роль у всьому цьому?
— АланH

1
uh←IHhuH

У схемі корекції двох сіток Бріггса конкретно згадується інтерполяційна помилка від грубої до тонкої сітки. Не звучати вперто, але чи це якось відрізняється від того, що ви пояснили?
— АланХ

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