Методи вирішення нелінійних адвекційно-дифузійних систем за межами Ньютона-Рафсона?


9

Я працюю над проектом, у якому я маю два домени, пов'язані з adv-diff через їхні відповідні умови (один домен додає масу, інший віднімає масу). Для стислості я моделюю їх у стаціонарному стані. Рівняння є вашим стандартним рівнянням транспорту адвекційно-дифузійного транспорту із вихідним терміном виглядати так:

c1t=0=F1+Q1(c1,c2)c2t=0=F2+Q2(c1,c2)

Де - дифузійний та адвективний потік для видів , а - вихідний термін для виду .FiiQii

Мені вдалося написати вирішувач для моєї проблеми за допомогою методу Ньютона-Рафсона і повністю з'єднав два домени за допомогою матриці блокової маси, тобто:

Fcoupled=[A100A2][c1,ic2,i]xi[b1(c1,i,c2,i)b2(c1,i,c2,i)]

Термін використовується для визначення матриці якобіан та оновлення як і :Fcoupledc1c2

J(xi)[xi+1xi]=Fcoupled

або

xi+1=xi(J(xi))1Fcoupled

Щоб прискорити роботу, я не обчислюю якобіанську кожну ітерацію - зараз я граю з кожніми п’ятьма ітераціями, які, здається, працюють досить добре і підтримують рішення стабільним.

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

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

Чи є які-небудь інші алгоритми гладкості, які я, можливо, пропустив, які можуть вирішити систему нелінійних рівнянь, не вдаючись до повторного обчислення якобіян як відстороненого?


2
Чи розглядали ви ітеративні розв'язувачі, такі як AMG - алгебраїчні багаторешітні методи. Можливо, вам доведеться придумати хороші передумови, що базуються на фізиці.
NameRakes

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

Ні, я не вважав AMG, я вважав, що вони призначені лише для симетричних систем і не можуть бути використані при проблемах, що переважають конвекцією. Я ще раз перегляну літературу для AMG.
cbcoutinho

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

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

Відповіді:


4

Я припускаю, що обмеження в 2D і 3D зберігає якобіанство.

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

Інший варіант - використовувати повністю неявну схему, як ви робите зараз, але не зберігати глобальний якобійський. Ви можете використовувати неявну схему без матриць.

DF(un)δun=F(un)
(де DF Якобій) можна вирішити за допомогою вирішувача підпростори Крилова, наприклад GMRES та BiCGStab, використовуючи той факт, що
DF(un)δuF(un+ϵδuδu)F(un)ϵ.
Це тому, що GMRES та BiCGStab не потребують LHS-матриці , вони повинні лише мати можливість обчислити її добуток за допомогою вектора .AAxx

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

Ще слід зазначити, що якщо ваша система така, що потрібен потужний попередній кондиціонер (тобто Якобі або блок-Якобі не вистачить), ви можете спробувати використати вищезгаданий метод як плавніший у багатосхемовій схемі. Якщо ви хочете спробувати попередній кондиціонер Jacobi з точкою або блоком, ви можете обчислити і зберігати тільки діагональні елементи або діагональні блоки якобіан, що не так багато. Я також хотів би зазначити, що попередній кондиціонер Гаусса-Сейделя або SSOR може бути реалізований без явного зберігання якобійців. У цій роботі описано реалізацію безматричного GMRES, обумовленого безматричним симетричним Гауссом-Зейделем у контексті обчислювальної динаміки рідини.


1

З мого досвіду з рівняннями Нав'є-Стокса, можна зробити дуже добре без повністю неявних схем.

Якщо ви просто хочете отримати швидку числову схему для вирішення еволюції часу, погляньте на схеми IMEX (неявні-явні); див., наприклад, цю статтю методів Ашера, Руута, Шпітерів, Явних Явних Рунге-Кутти, для часткових диференціальних рівнянь, залежних від часу .

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


0

Спочатку я думав додати лише зауваження, але місця не вистачало, тому я додаю короткий опис свого досвіду з цією темою.

По-перше, дивлячись на ваше позначення Я не бачу зв'язаної форми, я вважаю, що і будуть обидва залежні від і . Більше того, якщо і є матричними поданнями наближень та то вони не повинні залежати лише від , але і від сусідніх значень, але це може бути лише неправильним розумінням вашої нотації .Fcoupledb1b2c1,ic2,iA1A2F1F2ci

Як загальний коментар я хотів би додати, що використання аналітичного якобіанського здається єдиним способом отримати квадратичну конвергенцію нелінійного ітеративного розв'язувача (тобто у вашому випадку вирішувач Ньютона-Рафсона). Ви спостерігали це у вашому випадку? Це досить важливо, тому що в іншому випадку може виникнути певне непорозуміння у ваших наближеннях (лінеаризація).

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

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


Howdy @ Peeter, ви праві щодо з’єднання, я відредагував головне рівняння, щоб показати, і і це обидві функції і . Матриці і в цьому випадку є матрицями жорсткості обох систем, які розроблені методом кінцевих елементів. Це лише функції координат вузлів, а не змінних стану. і це вектори, тому вони є функціями вектора змінних стану, а не однієї змінної. Я обчислюю якобійське число, використовуючи кінцеві різниці. Я поки що не досліджував аналітичний якобійський. b1b2c1c2A1A2F1F2
cbcoutinho
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.