Słyszałem, że do rozwiązania problemu Poissona można zastosować szybką transformatę Fouriera, gdy wszystkie warunki brzegowe są jednym typem ... Szereg sinusoidalny dla dirichleta, cosinus dla neumanna i oba dla okresowego. Biorąc pod uwagę prostokątną domenę 2D, załóżmy, że dwie przeciwne strony mają okresowe warunki brzegowe, a pozostałe dwa mają warunki dirichleta. Czy można zastosować szybką transformatę Fouriera, aby skutecznie rozwiązać ten problem? Jeśli tak, to czy forma wykładnicza nie byłaby wystarczająca? Jeśli nie, jaki solver poleciłbyś w tej sytuacji?
9
Odpowiedzi:
Możesz oddzielić problem wzdłuż kierunku z warunkami Dirichleta, a następnie rozwiązać okresowe problemy 2D. Dokładnie twoja kombinacja warunków brzegowych jest ujęta w Wilhelmson, Ericksen, JCP 1976 i jest łatwa do wdrożenia. Możesz także użyć FISHPACK, ale jest stary i zawiera błędy. (Pracuję nad małym solwerem dla podobnych przypadków, ale nie jest on jeszcze gotowy do wydania i nie będzie to duża sprawa MPI, tylko dla urządzeń z pamięcią współdzieloną).
Właściwie mój kod jest teraz kwestią MPI i rozwiązuje ten problem: https://github.com/LadaF/PoisFFT
źródło