Chciałbym zrozumieć więcej szczegółów na temat wdrażania algebraicznych metod wielosiatkowych (AMG). Czytałem „Samouczek wielosiatkowy”, który jest całkiem dobry i wyjaśniam wszystkie szczegóły interpolacji, operatora grubej siatki i wyboru grubej siatki dla AMG. Myślę jednak, że nie ma nic lepszego niż zabawę i czytanie kodu.
Chciałbym więc zapytać, czy ktoś zna jakikolwiek klasyczny „przykładowy kod” AMG, na przykład geometryczny wielosieciowy kod FORTRAN dostępny na końcu „Metod wieloskładnikowych” (SIAM) autorstwa SF McCormicka. Trudno jest uzyskać wysokiej jakości kod produkcyjny, taki jak BoomerAMG, aby dowiedzieć się więcej o tej metodzie.
Odpowiedzi:
BoomerAMG jest częścią pakietu Hypre , który jest bardzo prosty do zdobycia. O wiele mniej skomplikowanym kodem, jeśli zaczynasz patrzeć na te metody, może być PyAMG .
źródło
Bardzo polecam wprowadzenie Alfio Boriziego do algebraicznej metody wielosieciowej. Przykładowy kod fortran 77 znajduje się w załączniku A.
źródło
Istnieje również pakiet ML, który jest częścią Trilinos. Jego reputacja jest równie dobra jak BoomerAMG / hypre.
Wydaje mi się, że nowszy pakiet Trilinos dla AMG nazywa się MueLu i powinien być dostępny w nowszych wydaniach.
Wszystkie są typu open source.
źródło
Od jakiegoś czasu pracuję nad tą implementacją . To jest Python / Numpy / Scipy. To nie jest algebraiczna wielosieciowość - musisz podać własnego operatora ograniczeń. Ale jeśli jest to implementacja edukacyjna, którą jesteś zainteresowany, chętnie przyjmę prośby o dodanie takiej możliwości.
źródło