Уравнение Пуассона, решение дискретным преобразованием Фурье

Материал из Алговики
Перейти к навигации Перейти к поиску

Основные авторы описания: В.М.Степаненко, Е.В.Мортиков

Описание свойств и структуры алгоритма

Общее описание задачи

Уравнение Пуассона для многомерного пространства имеет вид:

\begin{equation} \label{eq:poisson} \sum_{i=1}^{N}\frac{\partial^2 \phi}{\partial x_i^2}=f,~\mathbf{x}\in D, \end{equation}

где [math]\displaystyle{ D \in \mathbb{R}^N }[/math] - область определения решения [math]\displaystyle{ \phi(\mathbf{x}) }[/math], [math]\displaystyle{ \mathbf{x}=(x_1,...,x_N)^T }[/math] - вектор независимых переменных. Уравнение Пуассона дополняется граничными условиями:

\begin{equation} B(\phi)=F,~ \text{на}~ \mathbf{x}\in \Gamma(D), \end{equation}

где [math]\displaystyle{ \Gamma(D) }[/math] - граница области [math]\displaystyle{ D }[/math], a [math]\displaystyle{ B(\phi) }[/math] - оператор, определяющий граничные условия. [math]\displaystyle{ B(\phi)=\phi }[/math] соответствует граничным условиям Дирихле, [math]\displaystyle{ B(\phi)=\partial\phi/\partial n }[/math] ([math]\displaystyle{ \mathbf{n} }[/math] - внешняя нормаль к границе [math]\displaystyle{ \Gamma(D) }[/math]) - условиям Неймана. Иногда задают также смешанное граничное условие: [math]\displaystyle{ B(\phi)=С\phi+\partial\phi/\partial n }[/math] ([math]\displaystyle{ C }[/math] - константа). Встречаются также так называемые "периодические граничные условия", при которых задача ставится для бесконечной области, но предполагается периодичность решения по подмножеству переменных из [math]\displaystyle{ \mathbf{x} }[/math].

Уравнение Пуассона возникает во многих задачах математической физики, например, в электростатике (в этом случае [math]\displaystyle{ \phi }[/math] - потенциал электрической силы) и гидродинамике ([math]\displaystyle{ \phi }[/math] - давление жидкости или газа); при этом [math]\displaystyle{ N=2,3 }[/math] для плоской и объемной задач, соответственно.

Решение уравнения Пуассона для произвольной правой части и неоднородных граничных условий в аналитическом виде не может быть получено, поэтому в большинстве приложений оно находится численно. Наиболее распространенная дискретизация уравнения имеет вид

\begin{equation} \sum_{i=1}^{N}\frac{\phi_{k_1,...,k_i+1,...,k_N}-2\phi_{k_1,...,k_i,...,k_N}+\phi_{k_1,...,k_i-1,...,k_N}}{\Delta x_i^2}=f_{k_1,...,k_N},~(k_1,...,k_N) \in D_N. \end{equation}

Здесь вторые производные заменены центральными разностями второго порядка точности, а решение ищется на дискретном множестве точек [math]\displaystyle{ N }[/math]-мерного пространства, [math]\displaystyle{ D_N }[/math]. Конечными разностями аппроксимируются при этом также граничные условия.

Математическое описание

В настоящей статье мы рассмотрим конечно-разностную схему для наиболее часто встречающейся задачи решения уравнения Пуассона в трехмерном пространстве:

\begin{equation} \label{eq:poisdiscr} \frac{\phi_{i+1,j,k}-2\phi_{i,j,k}+\phi_{i-1,j,k}}{ \Delta x^2} + \frac{\phi_{i,j+1,k}-2\phi_{i,j,k}+\phi_{i,j-1,k}}{ \Delta y^2} + \frac{\phi_{i,j,k+1}-2\phi_{i,j,k}+\phi_{i,j,k-1}}{ \Delta z^2} = f_{i,j,k},~(i,j,k) \in D_h, \end{equation}

где [math]\displaystyle{ D_h=\{0:N_x-1\}\times\{0:N_y-1\}\times\{0:N_z-1\} }[/math] - параллелепипед в сеточной области. В качестве граничных условий для простоты примем так называемые троякопериодические граничные условия

\begin{align} \phi_{0,j,k}=\phi_{N_x,j,k},\\ \phi_{i,0,k}=\phi_{i,N_y,k},\\ \phi_{i,j,0}=\phi_{i,j,N_z}. \end{align}

Периодические граничные условия удовлетворяются "автоматически", если представить решение в виде стандартного дискретного обратного преобразования Фурье:

\begin{equation} \label{eq:fourier} \phi_{i,j,k}=\frac{1}{N_x N_y N_z}\sum_{l=0}^{N_x-1}\sum_{m=0}^{N_y-1}\sum_{n=0}^{N_z-1}\Phi_{l,m,n}e^{2\pi \overline{i} \left(\frac{il}{N_x}+\frac{jm}{N_y}+\frac{kn}{N_z}\right)}. \end{equation}

Здесь [math]\displaystyle{ \overline{i}=\sqrt{-1} }[/math]. Аналогичное разложение применяется также к правой части уравнения, [math]\displaystyle{ f_{i,j,k} }[/math]. Решение дисретного уравнения Пуассона преобразованием Фурье удобно тем, что базисные функции разложения Фурье являются собственными функциями дискретного оператора Лапласа. А именно, подставляя разложение Фурье неизвестной функции [math]\displaystyle{ \phi_{i,j,k} }[/math] и правой части в исходное уравнение, получаем:

\begin{equation} \Phi_{l,m,n}=-\frac{F_{l,m,n}}{4\left[\sin^2\left(\frac{\pi l}{N_x}\right) + \sin^2\left(\frac{\pi m}{N_y}\right) + \sin^2\left(\frac{\pi n}{N_z}\right) \right]}. \end{equation}

где [math]\displaystyle{ F_{l,m,n} }[/math] - преобразование Фурье правой части. Отсюда очевиден алгоритм решения уравнения: сначала правая часть уравнения разлагается в ряд Фурье, затем по приведенной выше формуле вычисляются коэффициенты Фурье решения и, наконец, решение восстанавливается обратным преобразованием Фурье.

Вычислительное ядро алгоритма

Вычислительным ядром алгоритма является одномерное преобразование Фурье. В самом деле, дискретное обратное преобразование Фурье может быть записано как

Макроструктура алгоритма

Описание схемы реализации последовательного алгоритма

Последовательная сложность алгоритма

Информационный граф

Описание ресурса параллелизма алгоритма

Описание входных и выходных данных

Свойства алгоритма

Программная реализация

Особенности реализации последовательного алгоритма

Описание локальности данных и вычислений

Описание локальности реализации алгоритма

Описание структуры обращений в память и качественная оценка локальности
Количественная оценка локальности

Возможные способы и особенности реализации параллельного алгоритма

Масштабируемость алгоритма и его реализации

Описание масштабируемости алгоритма

Описание масштабируемости реализации алгоритма

Динамические характеристики и эффективность реализации алгоритма

Выводы для классов архитектур

Существующие реализации алгоритма

Литература