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

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

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

Содержание

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

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

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

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

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

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

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

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

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

\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}

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

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

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

\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}

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

\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 i \left(\frac{il}{N_x}+\frac{jm}{N_y}+\frac{kn}{N_z}\right)}. \end{equation}

Аналогичное разложение применяется также к правой части уравнения, f_{i,j,k}. Решение \ref{eq:poisdiscr} преобразованием Фурье удобно тем, что базисные функции разложения \ref{eq:fourier} являются собственными функциями дискретного оператора Лапласа. А именно, подставляя разложение Фурье неизвестной функции и правой части в исходное уравнение, получаем:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 Литература