Мы хотим эффективно решать многомерные дифференциальные уравнения с сильноменяющимися коэффициентов в областях сложной формы, например:
$$\mathrm{div}~k~\mathrm{grad}~u = f, \quad u_{\partial \Omega} = 0,$$где $\Omega$ - некоторая область в 2D/3D.
Коэффициенты могут:
Конечно, существует большое количество подходов для решения подобных задач:
hp-методы (адаптивный выбор как шага сетки, так и порядка элементов) имеют оптимальную сложность;
Проблема состоит в том, что их реализация очень сложная, и для каждой конкретной задачи необходимо заново проводить аналитическую работу.
Наш подход основан на принципиально новой идее.
На заданной области вводим логически прямоугольную сетку с $2^d \times K$ узлами, которая позволяет разрешить нужный масштаб задачи
Вектор решения представляем в виде многомерного массива (тензора) $2 \times 2 \times \ldots \times 2 \times K$ и приближаем в виде "тензорного поезда" (tensor train, TT-format)
$A(i_1, \ldots, i_d) \approx G_1(i_1) G_2(i_2) \ldots G_d(i_d), $
где $G_k(i_k)$ имеет размер $r_{k-1} \times r_k$ при фиксированном $i_k$.
В 2015 году В. Казеев и К. Шваб в работе Quantized tensor-structured finite elements for second-order elliptic PDEs in two dimensions получили фундаментальный результат:
Для широкого класса двумерных эллиптических уравнений в полигональных областях можно построить логически-прямоугольную сетку, на которой решение дискретной задачи будет иметь гарантированно небольшой QTT-ранг.
Впервые указан функциональный класс для таких решений
Построение логически прямоугольных сеток - классическая задача вычислительной геометрии и может быть решена стандартными средства на сложных поверхностях и чуть менее стандартными - в трехмерном случае.
Теорема: существует TT-разложение с TT-рангами
$$r_k = \mathrm{rank} A_k$$
Округление решает следующую задачу: пусть дано TT-представление
$$A(i_1, \ldots, i_d) = G_1(i_1) G_2(i_2) \ldots G_d(i_d)$$нужно найти другое с меньшей памятью, которое приближает $A$ с нужной точностью $\epsilon$.
Округление можно точно сделать за $\mathcal{O}(dnr^3)$ операций, используя линейную структуру формата .
На самом деле, у нас есть огромная априорная информация о решении: оно лежит на многообразии малой размерности, поэтому часто предобуславливатели вообще не нужны.
Базовая идея: Пусть $A = A^* > 0.$
$$(Ax, x) - 2 (f, x) \rightarrow \min,$$и минимум считаем по множеству всех тензоров ограниченного ранга (многообразию).
Созданы (и постоянно улучшаются) оптимизационные алгоритмы типа "черный ящик" для минимизации функционалов на TT-многообразии Поэтому, объединяя:
Мы получаем абсолютно простой в реализации подход для создания эффективных солверов, которые имеют логарифмическую сложность по числу "формальных" степеней свободы.
Есть четыре больших направления исследований на ближайший год:
Разработка специальных дискретизаций на сверхмелких сетках: обычные схемы становятся неустойчивыми при $h \sim 10^{-4}$. Простое решение - использовать вейвлет-конечные элементы, так как нет необходимости использовать локальные базисные функции. Для одномерных задач мы успешно решаем задачи на сетках порядка $2^{120}$.
Оптимизация алгоритмов решения задач оптимизации на TT-многообразия (теория сходимости, методы ускорения)
Создание пакета, объединяющего построения логически прямоугольных сеток (вычислительная геометрия, сотрудничество с ETH и NYU Courant)
Создаваемый подходв позволяет решать огромное количество прикладных задач "прямым" моделированием:
Во всех случаях можно обобщить теоретические результаты Казеева-Шваба.
In [1]:
from IPython.core.display import HTML
def css_styling():
styles = open("custom.css", "r").read()
return HTML(styles)
css_styling()
Out[1]: