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


9

Я работаю над проектом, в котором у меня есть два связанных с adv-diff домена через соответствующие термины источника (один домен добавляет массу, другой вычитает массу). Для краткости я их моделирую в устойчивом состоянии. Уравнения - это ваше стандартное уравнение переноса адвекции-диффузии с исходным термином, похожим на это:

с1Tзнак равно0знак равноF1+Q1(с1,с2)с2Tзнак равно0знак равноF2+Q2(с1,с2)

куда Fя диффузный и адвективный поток для видов я, а также Qя является исходным термином для вида я,

Я смог написать решатель для моей проблемы, используя метод Ньютона-Рафсона, и полностью связал две области, используя матрицу блочной массы, то есть:

FсоUпLеdзнак равно[A100A2][с1,яс2,я]Икся-[б1(с1,я,с2,я)б2(с1,я,с2,я)]

Семестр FсоUпLеd используется для определения матрицы Якоби и обновления как с1 а также с2:

J(Икся)[Икся+1-Икся]знак равно-FсоUпLеd

или

Икся+1знак равноИкся-(J(Икся))-1FсоUпLеd

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

Проблема в том, что я собираюсь перейти к более крупной системе, в которой оба домена находятся в 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 Aим нужно только вычислить свой продукт AИкс заданный вектор Икс,

Теперь с надлежащим значением ε (обычно о 10-7для операций с плавающей запятой двойной точности) вы можете выполнить цикл Ньютона, не вычисляя и не сохраняя якобиан. Я точно знаю, что эта техника используется для решения некоторых нетривиальных случаев в вычислительной гидродинамике. Обратите внимание, однако, что количество оценок функцииF будет больше, чем в методе хранения матрицы, вместо того, чтобы требовать матрично-векторного произведения.

Еще одна вещь, на которую следует обратить внимание: если ваша система такова, что необходим мощный прекондиционер (т.е. Jacobi или block-Jacobi не хватит), вы можете попробовать использовать вышеупомянутый метод в качестве сглаживающего в многосеточной схеме. Если вы хотите попробовать прекондиционер Якоби с точечной или блок-схемой, вы можете вычислить и сохранить только диагональные элементы или диагональные блоки якобиана, что немного. Я также хотел бы упомянуть, что предварительный кондиционер Гаусса-Зейделя или SSOR можно реализовать без явного сохранения якобиана. В данной статье описывается реализация безматричной GMRES, предварительно обусловленной безматричной симметричной Гаусса-Зейделя, в контексте вычислительной гидродинамики.


1

Исходя из моего опыта с уравнениями Навье-Стокса, можно очень хорошо обходиться без полностью неявных схем.

Если вам просто нужна быстрая числовая схема для решения эволюции времени, взгляните на IMEX (неявно-явные) схемы; см., например, эту статью Ашера, Руута, Неявно-Явные Спитери Методы Рунге-Кутты для зависящих от времени дифференциальных уравнений в частных производных .

Вы можете даже попытаться использовать явную схему интеграции времени высокого порядка с контролем размера шага (как в Matlab ODE45). Тем не менее, вы можете столкнуться с проблемами из-за жесткости вашей системы, которая исходит от диффузионной части. К счастью, диффузионная часть является линейной, так что ее можно трактовать неявно (такова идея схем IMEX).


0

Сначала я решил добавить только замечание, но места было недостаточно, поэтому я добавил краткое описание моего опыта в этой теме.

Во-первых, глядя на вашу запись FсоUпLеd Я не вижу связанную форму, я полагаю, что б1 а также б2 оба должны быть зависимы от с1,я а также с2,я, Более того, еслиA1 а также A2 являются матричными представлениями приближений F1 а также F2 тогда они не должны зависеть только от ся, но также и о соседских ценностях, но это может быть только неправильное понимание вашей записи.

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

Во всех приложениях, в которых я принимал участие (некоторые из них включали крупномасштабные вычисления), у нас никогда не возникало проблем с затратами времени на сборку якобиана, самой трудоемкой проблемой всегда было применение линейного решателя. Аналитический якобиан (если есть) всегда использовался в приложениях, над которыми я работал, из-за квадратичной сходимости. В некоторых случаях такой нелинейный решатель создает матрицу, которая вызывает проблемы сходимости итеративного линейного решателя, поэтому мы попытались использовать более простую линеаризацию, чем аналитический якобиан, чтобы помочь линейному решателю. Такой компромисс между поведением нелинейного и линейного алгебраического решателя в зависимости от линеаризации нелинейной алгебраической системы всегда был хитрым, и я не мог дать общую рекомендацию.

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


Привет @ Питер, ты прав насчет связи, я отредактировал главное уравнение, чтобы показать и б1 а также б2 обе функции с1 а также с2, МатрицыA1 а также A2в этом случае используются матрицы жесткости обеих систем, которые разработаны с использованием метода конечных элементов. Это только функции координат узлов, а не переменных состояния.F1 а также F2являются векторами, поэтому они являются функциями вектора переменных состояния, а не только одной переменной. Я вычисляю якобиана численно, используя конечные различия. Я до сих пор не исследовал аналитический якобиан.
cbcoutinho
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.