Багаторешітка на “не ідеально прямокутній” сітці


9

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

Для програми FEM у мене є сітка, яка є "топологічно" прямокутною, так що з'єднання вузлів є як у прямокутній сітці. Однак вузли не ідеально вирівняні на сітці, але можуть проїхати невеликі відстані, щоб краще відповідати геометрії, зберігаючи з'єднання, як у ідеальній прямокутній сітці.

Сітка виглядає приблизно так: Mesh example . Ви бачите: З'єднання "регулярні прямокутні", але положення вузлів - ні.

Я можу зобразити кілька «розумних» геометричних схем інтерполяції для такої установки.

Загальне питання: чи потребує багаторешітка ідеально вирівняної прямокутної сітки, чи вона також буде працювати з описаною вище ситуацією, доки інтерполяція буде "доброю"? Або в цьому випадку краще використовувати алгебраїчну мультисетку? (Що я не віддаю перевагу, оскільки це не так інтуїтивно, як геометрична багаторешітка.)


Я не впевнений, я розумію, що ви маєте на увазі під тим, що сітка є топологічно прямокутною, але де вузли не вирівняні, як у прямокутній сітці. Чи є сітка структурованою прямокутною сіткою? Не могли б ви уточнити це, можливо, з малюнком? Чи є в тому, що ви використовуєте прямокутні елементи, які не вирівнюються, як це було б при використанні структурованої декартової сітки?
Джеймс

@James, я інтерпретував питання ОП так, як: "Що станеться, якщо у мене трапеція має сітку" декартових іш "?".
Білл Барт

Відповіді:


6

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

Іншими словами, прості сітки, які підходять для різних мереж, найпростіше думати не як про дрібну сітку, а про те, як знайти більш грубі сітки, а почати з грубої сітки, з якої ви отримуєте більш тонкі рівні шляхом рівномірного уточнення (тобто кожен чотирикутник є підрозділяються на чотири менші). Оскільки рівномірне вдосконалення завжди можливо, це легко дає вам ієрархію. Це протистоїть грубій обробці, що не завжди можливо, якщо вам просто надають певну сітку, і це робить визначення ієрархії сітки набагато складнішим. (Ось чому люди придумали алгебраїчні багатогранні методи для визначення грубих рівнів, що базуються саме на матриці, не замислюючись про базову сітку, з якої вона створена.)


Я відредагував приклад зображення у питанні. Я вважаю, що в моєму випадку грубе розгортання є надзвичайно простим, просто взявши лише кожен 2-й вузол (за розміром) і перерахуйте FEM для цієї сітки, щоб отримати грубу матрицю / оператора. Грубий вектор даних можна отримати, просто взявши кожне значення 2-го вузла.
Майкл

1
Це може чи не може працювати так добре, як ви хочете (я вважаю, що це, мабуть, буде, але я не зовсім впевнений). Річ у тім, що у вашому прикладі осередки грубої сітки не охоплюють ту саму площу, що й дочірні, і тому немає властивості вкладення простору кінцевих елементів: функції, які ви можете представити на грубій сітці, не є підмножиною функції, які можна представити на дрібній сітці. Джо Пасьяк та Джим Брамбл написали документи про такі справи, і я думаю, що я пам'ятаю, що їх можна змусити працювати. Але це мені не відразу очевидно.
Вольфганг Бангерт

4

Скажімо, у вас є така сітка, що складається з прямокутних елементів:

введіть тут опис зображення

Тепер, якщо ви виконаєте свою інтерполяцію, припускаючи звичайну структуровану прямокутну сітку, ви введете помилки, пов’язані з цією неточною інтерполяцією. Іншими словами, якщо ви обмежуєте свій залишковий вектор і коли ви продовжуєте свій вектор помилок, виникають помилки інтерполяції.

Тепер, якщо ваша сітка "близька" до звичайної структурованої декартової сітки, то це може спрацювати, принаймні спочатку, але я підозрюю, що одна з двох речей відбудеться залежно від того, наскільки далеко ви сітка від прямокутної:

1) Ви можете виявити, що мультисетка спочатку починає сходитися. Зрештою, ваша помилка в будь-якому випадку є великою, і ваша "приблизна" інтерполяція насправді означає лише те, що деякі вузли трохи надмірно представлені, а деякі трохи не представлені. Однак ви можете виявити, що конвергенція застоюється, оскільки рішення стає більш точним, а помилки інтерполяції стають більш важливими.

2) Ще одна можливість полягає в тому, що мультисетка в кінцевому підсумку конвергується, але не так швидко, як слід, якщо ви використовували правильну інтерполяцію.

В основному, відключаючись від інтерполяції, ви неточно оцінюєте важливість певних вузлів. Наприклад, у 2D, якщо ви зважуєте даний вузол як:

[0,250,50,250,51,00,50,250,50,25]

якщо насправді тому, що ваша сітка не є точно декартовою, вона повинна бути:

[0,250,550,250,551,00,490,280,520,30]

то це призведе до деякої помилки. Чи буде ця помилка перешкоджати конвергенції, ймовірно, залежатиме від того, наскільки далеко від вашої сітки від декартової.

У той час як AMG складніше зрозуміти / реалізувати, це здається, що це правильний метод для вашої сітки. Застосування геометричної багаторешітки до "приблизної" прямокутної сітки може спрацювати, але я б здогадався, що це рішення в кращому випадку. Сподіваюсь, це допомагає.

Оновлення : Я думаю, що у моїй відповіді, можливо, була якась плутанина. Я не кажу, що геометрична мультисетка працюватиме лише з декартовими сітками, а навпаки, що визначити інтерполяцію (і, отже, обмеження) на декартових сітках легко, тоді як на неструктурованих сітках це може бути складно. Наприклад, розглянемо випадок навіть простого 2D домену з трикутною сіткою. Уточнити цю сітку легко - хоча б концептуально - але як би ви визначили оператора інтерполяції між грубою та тонкою сіткою? Я віддаю перевагу AMG просто тому, що він більше нагадує вирішувач "чорної скриньки", тобто не потрібна інформація про нижню сітку, проте це лише упередженість / химерність моєї людини. Геометрична мультисетка може працювати до тих пір, поки ви можете забезпечити точні оператори інтерполяції.


Я можу прочитати це як "залежить від того, наскільки хороша ваша інтерполяція", правильно? Тож якщо я можу придумати «ідеальну» схему інтерполяції, то я повинен бути добре?
Майкл

1
Я думаю, що ця відповідь є правдивою, але оманливою - це говорить про те, що якщо ви робите вигляд, що ваша сітка є регулярною декартовою, коли її немає, ви отримаєте неправильну відповідь. Це правда, але ви можете сказати те саме про будь-який числовий метод. Справа в тому, що геометрична багаторешітка є точною на більш загальних сітках, коли вона реалізована правильно .
Девід Кетчесон

Я погоджуюся, що геометричну багаторешітку можна використовувати з некартезіанськими сітками, якщо це зроблено правильно. Я щойно сприйняв питання ОП як запитання, чи буде використовувати "приблизно" декартову сітку, використовуючи при цьому інтерполяцію, розроблену для фактичної декартової сітки.
Джеймс

@Michael В основному вам потрібен спосіб визначення операторів інтерполяції між різними рівнями сітки. З декартовими сітками це легко. З некартезіанськими сітками це може швидко ускладнитися залежно від того, наскільки ваші неструктуровані сітки. Як каже Вольфганг у своїй відповіді, ви завжди можете створити більш досконалу сітку з грубої, але визначити значущих операторів інтерполяції може бути складно. Перевага AMG полягає в тому, що він поводиться більше як вирішувач "чорної скриньки" в тому, що вам не потрібні сітчасті дані для визначення операторів інтерполяції. Все, що вам потрібно, це матриця
Джеймс,

@MIchael Отже, щоб відповісти на ваше запитання. Так, якщо ви можете придумати точні оператори інтерполяції, то геометрична мультисетка спрацює нормально. Сподіваюсь, це допомагає.
Джеймс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.