Численное решение двумерного уравнения Пуассона с помощью БПФ, правильные единицы измерения

Двумерное уравнение Пуассона:

(1)

г 2 ф ( Икс , у ) г Икс 2 + г 2 ф ( Икс , у ) г у 2 "=" ϱ ( Икс , у ) ϵ 0 ϵ

И в к -пространство в форме:

(2)

( к Икс 2 + к у 2 ) ф ( к Икс , к у ) "=" р ( к Икс , к у ) ϵ 0 ϵ .

Для численного решения я использую сложное БПФ (библиотека FFTW на C). Для области физического размера L и сетки размера N (постоянная сетки h=L/N), дискретных координат и периодических границ у меня есть:

(3)

р [ к Икс , к у ] "=" 1 Н 2 Икс "=" 0 Н 1 у "=" 0 Н 1 ϱ [ Икс , у ] е Дж 2 π ( Икс к Икс + у к у ) / Н

Я могу умножить обе части на 1 ϵ ϵ 0 , затем разделить р [ к Икс , к у ] к ( к Икс 2 + к у 2 ) в каждой точке (учитывая, что выход БПФ симметричен относительно к Икс = N/2 и к у = N/2) я получаю ф [ к Икс , к у ] . По обратному БПФ:

(4)

ф [ Икс , у ] "=" к Икс "=" 0 Н 1 к у "=" 0 Н 1 ф [ к Икс , к у ] е Дж 2 π ( Икс к Икс + у к у ) / Н
Я получаю 2D-потенциал, исходя из плотности заряда ϱ . Но мне не хватает коэффициента масштабирования в приведенных выше определениях, и я не могу этого понять. Короче говоря, что сделать, чтобы единицы СИ соответствовали приведенным выше определениям, чтобы они подходили как с точки зрения преобразования Фурье, так и с точки зрения реального результата ф . Меня больше всего беспокоит то, что если я введу тестовый заряд плотности ϱ ( Икс , у ) "=" е час 2 дельта [ Икс , у ] в единицах С / м 2 посреди площади с л "=" 10 6 м Я ожидаю выход, аналогичный кулоновскому потенциалу 1 р е 4 π ϵ ϵ 0 , но решение отличается на много порядков. Почему?

Поэтому я думаю, что это может быть проблема с делением на k. Каким должно быть k для этого определения дискретного преобразования? Например к "=" 2 π час / л или к "=" 2 π Икс / Н

Как вы получили уравнение k-пространства? Если я не ошибаюсь, когда вы преобразуете Фурье первое уравнение, ϵ s не должны опускаться, а левая часть должна получить знак минус.
Моя ошибка, я изменил его и добавил несколько дополнительных комментариев.
Я все еще думаю, что знак экв. (2) может быть неправильно. Также обратите внимание, что FFTW не нормализует обратное преобразование (большинство БПФ делают это, но FFTW действительно оптимизирован для производительности, поэтому это нужно делать вручную).
Да, я нормализую вручную в (3), насчет знака, наверное, вы правы, но изменит ли это порядок решения? Я думаю, только знак. Знак должен быть связан с полярностью положительного и отрицательного заряда, который я предполагал в начале расчета.
Однажды я разобрался с FFTW, и, черт возьми, это было утомительно. Обратите внимание, что здесь используются r2c и c2r. gitlab.com/askhl/libvdwxc/blob/master/src/vdw_include.c#L85 ^ Строки 85–101 определяют, что такое k в конкретной точке БПФ. Обратная ячейка рассчитывается здесь: gitlab.com/askhl/libvdwxc/blob/master/src/vdw_core.c#L182

Ответы (2)

Хорошо, я думаю, что решил проблему. Таким образом, чтобы разделить плотность БПФ на к 2 Мне нужны фактические значения к в к -пространство для моей системы. FFTW упорядочивает результат преобразования в так называемом «упорядоченном» выводе, что означает, что в первом квадранте БПФ первый пиксель соответствует частоте постоянного тока, а следующий к / л частота ( к из 0 к Н 1 ) где л длина всей системы. Наименьшая длина волны системы час "=" л / Н , затем 1 / час это самая высокая частота. Так к Икс в приведенных выше уравнениях следует изменить на 2 π * к / л . Координата к также должно зависеть от того, в каком квадранте выходного fft мы находимся, для симметричного квадранта мы должны использовать Н к вместо к . Наверное, это оно.

Заменять

ф ( Икс , у ) "=" г Икс г у ф ( к Икс , к у ) е я к Икс Икс + я к у у ,     ϱ ( Икс , у ) "=" г Икс г у р ( к Икс , к у ) е я к Икс Икс + я к у у
в первом уравнении, и это должно немедленно дать желаемое уравнение. Кроме того, только для возможных будущих целей, обратите внимание
г Икс е я к Икс "=" 2 π дельта ( к )
(См. здесь для обсуждения.)

Я думал, что это приводит к моим уравнениям, не так ли?
Я понял, что v1 вашего вопроса означает, как вы получаете второе уравнение и если вы получили все факторы 2 π а что не правильно. Если это не то, что вы хотели, то игнорируйте этот ответ.
Возможно, я был недостаточно точен в 1-й версии вопроса, я добавлю в уравнение коэффициент 4pi ^ 2. Но мою проблему этим не решить. Спасибо за ответ в любом случае.