Алгебраический многосеточный код

9

Я хотел бы понять более подробно о реализации алгебраических многосеточных методов (AMG). Я читал «Учебник по многосетке», который довольно хорош и объясняет все детали интерполяции, оператора грубой сетки и выбора грубой сетки для AMG. Однако, я думаю, нет ничего лучше, чем играть и читать код.

Итак, я хотел бы спросить, знает ли кто-нибудь какой-нибудь классический пример кода AMG, такой как геометрический многосеточный код FORTRAN, доступный в конце «Многосеточных методов» (SIAM) SF McCormick. Довольно сложно получить качественный и производительный код, такой как BoomerAMG, чтобы узнать больше о методе.

Бернардо М.Р.
источник
Вы особенно заинтересованы в классическом AMG (в отличие от * сглаженной агрегации)? Если это так, пожалуйста, укажите это в вопросе.
Джед Браун

Ответы:

10

BoomerAMG является частью пакета Hypre , который очень просто приобрести. Гораздо менее сложный код, если вы начинаете смотреть на эти методы, может быть PyAMG .

Питер Брюн
источник
Да, я взглянул на PyAMG, который является очень хорошим кодом, но в нем есть все, что касается обертывания кода C / C ++ в Python, он реализует другие методы AMG, отличные от «классического», и так далее. Я искал что-то более простое, чтобы люди использовали его для обучения.
Бернардо М.Р.
4
К сожалению, общий опыт использования и попыток внести свой вклад в коды AMG заключается в том, что если у вас нет множества вариантов, вы не сможете решить что-либо, приближающееся к интересной проблеме. Следовательно, ваш типичный пакет AMG будет включать в себя ряд опций для аппроксимации связности, построения интерполятора и сглаживания, которые, безусловно, трудно проанализировать при чтении кода. Тем не менее, классический AMG очень прост, и реализация его самостоятельно или попытка ваших учеников сделать это самостоятельно (в зависимости от уровня их квалификации) может быть подходящим вариантом.
Питер Брюн
2

Я очень рекомендую введение Альфио Боризи в алгебраический многосеточный метод. В приложении А приведен пример кода на Фортране-77.

Пол
источник
Я думаю, что он спрашивает о реализации, а не о литературе.
Джек Полсон
1
@JackPoulson: в приложении есть реализация.
Павел
2
Извините, по-видимому, я не могу читать сегодня утром. Upvoted.
Джек Полсон
1
@ Пол: Я могу ошибаться, но я думаю, что это геометрический многосеточный код для задачи Пуассона (который работает и для нелинейного случая).
Бернардо М.Р.
@ BernardoM.R .: Я только что нашел этот постскриптовый файл ... В нем есть много конкретных примеров операторов продления и ограничения для задач модели. Хотя на самом деле он не имеет полного кода, но он все еще может быть вам полезен.
Павел
1

Существует также пакет ML, который является частью Trilinos. Его репутация так же хороша, как и у BoomerAMG / hypre.

Я полагаю, что новый пакет Trilinos для AMG называется MueLu и должен быть доступен в более поздних выпусках.

Все это с открытым исходным кодом.

Вольфганг Бангерт
источник
1
MueLu не был выпущен, и в последний раз, когда я разговаривал с ним, Рэй не ожидал публичного релиза еще год или около того. Обратите внимание, что ML и MueLu (в той степени, в которой я слышал, что в них есть) основаны на сглаженной агрегации, которая сильно отличается от классического AMG (на котором основан BoomerAMG).
Джед Браун
1

Я немного поработал над этой реализацией . Это Питон / Numpy / Scipy. Это не алгебраическая многосетка - вы должны указать свой собственный оператор ограничения. Но если вы заинтересованы в образовательной реализации, я бы хотел получить несколько запросов на добавление такой возможности.

tsbertalan
источник