Своєрідна помилка при розв'язанні рівняння Пуассона методом кінцевих обсягів нерівномірної сітки (лише 1D)


9

Останні кілька днів я намагався налагодити цю помилку, і мені було цікаво, чи хтось має поради щодо того, як діяти.

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

0=(ϕx)x+ρ(x)

профіль заряду (вихідний термін) задається,

ρ(x)={1,if 1x01,if 0x10,otherwise

і граничними умовами є,

ϕ(xL)=0ϕx|xR=0

і домен є [10,10].

Я використовую код, розроблений для вирішення рівняння адвекційно-дифузійної реакції (я написав, що бачу свої примітки тут, http://danieljfarrell.github.io/FVM ). Рівняння реакції адвекція-дифузія є більш загальним випадком рівняння Пуассона. Дійсно, рівняння Пуассона можна відновити, встановивши швидкість адвекції до нуля і видаливши перехідний додаток.

Код був протестований у ряді ситуацій для рівномірних, неоднорідних та випадкових сіток і завжди дає розумні рішення ( http://danieljfarrell.github.io/FVM/examples.html ) для рівняння реакції адвекція-дифузія-реакція.

Щоб показати, де розбивається код, я зробив наступний приклад. Я встановлюю однорідну сітку з 20 комірок, а потім роблю її неоднорідною , видаляючи одну клітинку. На лівій фігурі я зняв клітинкуΩ8 і в правій Ω9було видалено. 9-я комірка охоплює область, де вихідний термін (тобто заряд) змінюється знаком. Помилка з’являється, коли сітка є неоднорідною в області, де термін реакції змінюється знаком . Як видно нижче.

Будь-які ідеї, що могло б викликати це питання? Повідомте мене, чи буде корисна додаткова інформація про дискретизацію (я не хотів містити занадто багато деталей у цьому питанні).

Своєрідна помилка при розв’язуванні рівняння Пуассона


Чи можете ви вказати, як вам нав'язують умову Діріхле x=0і що ви маєте на увазі під ρ=1як початкова умова (чи не рівняння, яке ви вказали в стаціонарному стані)?
Джессі Чан

Як виглядає термін реакції?
січня

Яку схему ви використовуєте для наближення інтегралів вихідного терміна? Така поведінка також може бути викликана недостатньою вибіркою джерела. (Мабуть, той же механізм, про який йдеться у відповіді @JLC.)
січня

Я оновив питання щодо використання стандартної термінології. У мене є початковий термін (ρ) не є реакційним терміном, оскільки, як ви вказали, нам просто потрібно стійке значення. Правильна просторова залежністьρтепер задано (початкове значення було неправильним).
boyfarrell

@JLC дирихлетські БЦ накладаються за допомогою підходу в клітинах-привидів (мої нотатки в Інтернеті застаріли щодо цієї деталі реалізації), дивіться тут, як я це роблю, scicomp.stackexchange.com/questions/8538/…
boyfarrell

Відповіді:


9

Як і вбік, ваша документація про github є фантастичною.

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

Я спробую висміяти приклад для FV, який показує, як це вступає в гру.

Редагувати: ось ось невеликий приклад того, що відбувається. Розгляньте клітини 1-9 та 11-20, в якихρ(x)=0. З правого боку (11-20) маємоf(x20)=0 через умову Неймана, яка говорить нам про збереження для цієї клітини про те f(x19)==f(x11)=0. Оскільки потік є середнім значенням клітин, це говорить нам про цеϕ(x) є постійним для всіх цих клітин.

З лівого боку (1-9) маємо f(xi+1)f(xi)=0. Якщоf(10)=0 і тоді ми використовуємо клітини привидів f(10)=ϕ9.5ϕghost=ϕ9.5. Збереження протягом кількох наступних осередків дає цеf(xi)=f(10)=ϕ9.5(тобто постійний нахил). Однак зауважте, що це може бути будь-який нахил, просто постійний.

Проблема виникає в середній осередку. Як згадував Ян, ти підкреслюєш форсування у другій сітці. Це викидає рівняння балансу в цей момент, дає помилку вf(10), який потім поширюється назад і змінює вгору як нахил у лівій половині домену, так і значення ϕ(9.5).

Ця чутливість до помилок примусової роботи є проблематичною - на відміну від методів FEM або FD, які явно виконують умову Дірхле при x=10, FV слабко застосовує це за допомогою привидних вузлів. Інтуїтивно, слабке накладення вузла привидів схоже на встановлення умови Неймана і на лівій кордоні. Якщо у вас є дві умови Неймана для проблеми з дифузією, ваша проблема погано поставлена ​​і має неоднозначне рішення (ви можете додати будь-яку константу до цієї проблеми і все ще мати рішення). Ви не дуже розумієте це на дискретному рівні, але ви отримуєте дуже чутливу і сітчасту поведінку, як ви бачите в своїх експериментах.


Експериментуючи, я можу продемонструвати, що метод FVM стабільний лише тоді, коли клітини з обох сторін розриву (зміни знаку) вихідної функції мають рівні обсяги. Чи погодився б ваш аналіз з цим? Це означає, що я повинен приділяти більше уваги створенню розумної сітки моїх проблем, які я раніше робив. Можливо, я повинен розглянути можливість вивчення методу FEM далі?
boyfarrell

Відповідна стаття, хоча я не дуже дотримуюся всіх подробиць, jstor.org/discover/10.2307/2157873
boyfarrell

Метод FVM стабільний у цьому випадку лише тоді, коли сітка якось вирівняна з функцією джерела. Якщо ваша функція джерела зміниться, вам доведеться знову налаштувати сітку. Я не думаю, що створення розумної сітки - це правильний підхід до цієї проблеми - у вас нестабільний метод.
Джессі Чан

Це гарна знахідка. Сулі - надійний аналітик. Я б сказав, що вивчення FEM може бути цікавим, але FD також повинен працювати для будь-яких еліптичних 1D проблем. Ви також можете побачити, що роблять FV люди (можливо, збільшують свої потоки штрафом), щоб отримати конвергенцію для еліптичних проблем другого порядку на загальних сітках. Математична народна мудрість, як правило, говорить про те, що FV / FD / перемотка FD чудово підходить для гіперболічних проблем, тоді як FEM / central diff FD чудово підходить для еліптичних.
Джессі Чан

Я переглядаю цю проблему. Перечитавши свою відповідь, я мушу сказати, що це фантастично! Я бачу вашу думку про те, що метод повинен змінитися, тому що це корінь проблеми (а не сітка). Чи є у вас якісь пропозиції чи речі, які я міг би дотримуватися (які можуть бути доступні не експерту) щодо того, як краще наблизити потік у цьому випадку. Тобто таким чином, що може зробити його більш стійким. Якщо можливо, я хотів би знайти кращий FVM для цього рівняння.
boyfarrell

0

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

Тоді кожна пряма - це рішення, де права частина дорівнює нулю. Ви отримали цю частину.

Можливо, ваші потоки залежать від h. Чи правильно ви користуєтесьh де ви ліквідуєте клітинку?


1
Ні, це не правильно. Проблема добре поставлена. Для справиρ0 тільки ϕ0є рішенням, немає іншої лінійної функції, яка дорівнює нулю в одній точці і має нульовий нахил у другій точці.
січня
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.