Уравнение Пуассона, решение дискретным преобразованием Фурье
Основные авторы описания: В.М.Степаненко, Е.В.Мортиков
Содержание
- 1 Описание свойств и структуры алгоритма
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание
- 1.3 Вычислительное ядро алгоритма
- 1.4 Макроструктура алгоритма
- 1.5 Описание схемы реализации последовательного алгоритма
- 1.6 Последовательная сложность алгоритма
- 1.7 Информационный граф
- 1.8 Описание ресурса параллелизма алгоритма
- 1.9 Описание входных и выходных данных
- 1.10 Свойства алгоритма
- 2 Программная реализация
- 2.1 Особенности реализации последовательного алгоритма
- 2.2 Описание локальности данных и вычислений
- 2.3 Возможные способы и особенности реализации параллельного алгоритма
- 2.4 Масштабируемость алгоритма и его реализации
- 2.5 Динамические характеристики и эффективность реализации алгоритма
- 2.6 Выводы для классов архитектур
- 2.7 Существующие реализации алгоритма
- 3 Литература
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} \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} \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{jn}{N_y}+\frac{kn}{N_z}\right)} \end{equation}