Інші вже прокоментували питання про попереднє обумовлення того, що я буду називати "монолітними" матрицями, тобто, наприклад, дискретизовану форму скалярного рівняння, таке як рівняння Лапласа, рівняння Гельмгольца, або, якщо ви хочете узагальнити його, векторне значення рівняння пружності. З цих речей очевидно, що багаторешітка (або алгебраїчна, або геометрична) є переможцем, якщо рівняння еліптичне, а для інших рівнянь - не зовсім зрозуміло - але щось на зразок SSOR часто працює досить добре (для певного значення "розумний").
Для мене великим відкриттям було те, що робити з проблемами, які не є монолітними, наприклад для оператора Стокса
Коли я починав чисельний аналіз десь 15 років тому, я думаю, що люди мали надію, що ті ж методики можуть бути застосовані до таких матриць, як вище, і напрям дослідження полягав у тому, щоб або спробувати мультирешітку безпосередньо, або використовувати узагальнення SSOR (використовуючи " точкові згладжування ", як Ванька) та подібні методи. Але це згасло, оскільки це працює не дуже добре.
( АБТБ0) .
На зміну цьому прийшло те, що спочатку називалося «передумовниками, заснованими на фізиці», а згодом просто (а може бути, точніше) «блокувати попередні кондиціонери», подібні Сільвестру та Ватену. Вони часто ґрунтуються на усуненні блоків або доповненнях Шура. Ідея полягає у створенні попереднього кондиціонера таким чином, щоб можна було повторно використовувати попередні кондиціонери для окремих блоків, які, як відомо, добре працюють. Наприклад, у випадку рівняння Стокса, попередній кондиціонер Silvester / Wathen використовує цю матрицю
(А0ББТА-1Б)- 1
при використанні в якості попереднього кондиціонера з GMRES це призведе до зближення рівно двох ітерацій. Оскільки вона трикутна, інверсія також набагато простіша, але у нас все ще виникає проблема, що робити з діагональними блоками, і там використовується наближення:
де тильда означає замінити точну обернену на апроксимацію. Це часто набагато простіше: оскільки блок
A є еліптичним оператором,
~( А- 1˜0Б( ВТА- 1Б )- 1˜)
АА- 1˜наприклад, апроксимується багатоядерним V-циклом, наприклад, і виходить, що тут
добре наближений ІЛУ матричної маси.
( ВТА- 1Б )- 1˜
Ця ідея роботи з окремими блоками, що містять матрицю та повторне використання попередніх кондиціонерів на окремих, виявилася надзвичайно потужною і повністю змінила те, як ми думаємо сьогодні про умови попереднього кондиціонування рівнянь. Звичайно, це актуально, оскільки більшість актуальних проблем - це, власне, системи рівнянь.