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


9

Мені хотілося б зрозуміти детальніше про реалізацію алгебраїчних багатогранних методів (AMG). Я читав "Підручник з кількома сітками", який є досить хорошим і пояснює всі деталі інтерполяції, оператора грубої сітки та вибору грубої сітки для AMG. Однак, я думаю, немає нічого подібного, як грати і читати код.

Отже, я хотів би запитати, чи знає хто-небудь класичний "приклад код" AMG, як, наприклад, геометричний багатомісний код FORTRAN, доступний наприкінці "Багатогрішних методів" (SIAM) від SF McCormick. Досить важко отримати якісний і виробничий код, як BoomerAMG, щоб дізнатися більше про метод.


Вас конкретно цікавить класичний AMG (на відміну від * згладженої агрегації)? Якщо так, просимо зазначити це у запитанні.
Джед Браун

Відповіді:


10

BoomerAMG є частиною пакету Hypre , який неможливо придбати. Набагато менш складний код, якщо ви починаєте дивитися на ці методи, може бути PyAMG .


Так, я подивився на PyAMG, який є дуже приємним кодом, але в ньому є все те, що стосується загортання коду C / C ++ у Python, він реалізує різні методи AMG, окрім «класичного» тощо. Я шукав щось простіше, яке люди використовують для навчання.
Бернардо MR

4
На жаль, загальний досвід використання та спроби внести внесок у AMG-коди полягає в тому, що якщо у вас немає безлічі варіантів, ви не зможете вирішити нічого, що наближається до цікавої проблеми. Тому ваш типовий пакет AMG буде включати ряд варіантів наближення підключення, побудови інтерполятора та згладжування, що, безумовно, важко проаналізувати при зчитуванні коду. Зазначаючи, що класичний AMG мертвий простий, і реалізувати його самостійно або змусити своїх учнів спробувати це зробити самостійно (залежно від рівня їх кваліфікації) може бути дорогою.
Пітер Брун

2

Я настійно рекомендую введення Альфіо Борізі в алгебраїчний багатомісний метод. У додатку А. є зразок коду fortran 77.


Я думаю, що він запитує про реалізації, не більше літератури.
Джек Поульсон

1
@JackPoulson: У додатку є реалізація.
Павло

2
Вибачте, мабуть, я не можу прочитати цей ранок. Отримано.
Джек Поульсон

1
@Paul: Можливо, я помиляюся, але я вважаю, що це геометричний мультисеточний код для проблеми Пуассона (який працює і для нелінійного випадку).
Бернардо MR

@ BernardoM.R .: Я щойно знайшов цей файл післяскрипту ... У ньому є багато конкретних прикладів пролонгації та обмеження операторів для модельних проблем. Насправді він не має повного коду, але він все ще може бути корисним для вас.
Пол

1

Також є пакет ML, який є частиною Trilinos. Його репутація так само хороша, як і у BoomerAMG / hypre.

Новий пакет Trilinos для AMG називається MueLu, я вважаю, і він також повинен бути доступний в останніх випусках.

Все це є відкритим кодом.


1
MueLu не звільняли, і востаннє, коли я говорив з ним, Рей не очікував публічного звільнення ще близько року. Зауважте, що ML та MueLu (наскільки я чув, що є в ньому) засновані на згладженій агрегації, що є зовсім іншим алгоритмом, ніж класичний AMG (на якому базується BoomerAMG).
Джед Браун

1

Я трохи працював над цією реалізацією . Це Python / Numpy / Scipy. Це не алгебраїчна багаторешітка - ви повинні поставити власного оператора обмеження. Але якщо це реалізація освіти, в якій ви зацікавлені, я б вітаю кілька запитів на додавання такої можливості.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.