Что такое надежный итерационный решатель для больших трехмерных линейно-упругих задач?


9

Я погружаюсь в увлекательный мир анализа методом конечных элементов и хотел бы решить большую термомеханическую проблему (только термическая механическая, без обратной связи).

Для механической задачи я уже понял из ответа Джеффа , что мне нужно будет использовать итеративный решатель из-за размера моей сетки. Далее я прочитал в ответе Мэтта , что выбор правильного итерационного алгоритма является непростой задачей.

Я спрашиваю здесь, есть ли опыт работы с большими трехмерными линейно-упругими задачами, который помог бы мне сузить поиск наилучшей производительности? В моем случае это структура с тонкими узорчатыми пленками и нерегулярно расположенными материалами (как с высоким CTE, так и с низким CTE). В этом термомеханическом анализе нет больших деформаций. Я могу использовать HPC моего университета [1.314 узла с 2 процессорами AMD Opteron (каждое по 2,2 ГГц / 8 ядер)].

Я думаю, что он PETScможет содержать что-то интересное, особенно алгоритмы, которые выполняют некую декомпозицию домена (FETI, multigrid), но я немного перегружен опциями и не имею опыта. Мне также нравится фраза «геометрически информированные предварительные кондиционеры» , но я не уверен, поможет ли это мне. Я еще не нашел что-то, что фокусируется на линейной механике сплошных сред.

Сильное масштабирование (Amdahl) очень важно в моем приложении, потому что мои промышленные партнеры не могут долго ждать результатов моделирования. Я определенно ценю не только ответы, но и рекомендации для дальнейшего чтения в комментариях.


Вы решаете статические проблемы? Кажется, да. Я думаю, что для динамических или гармонических задач ответ будет другим.
Хуэй Чжан

статическое да. Динамический это слишком дорого.
Себастьян

Ответы:


6

Предполагая, что ваши структуры на самом деле являются трехмерными (а не только тонкими элементами, возможно, дискретизированными с элементами оболочки) и что модель больше нескольких сотен тысяч степеней свободы, прямые решатели становятся непрактичными, особенно если вам нужно решить каждую проблему только один раз. Кроме того, если структура не всегда «близка» к границе Дирихле, вам понадобится многоуровневый метод, чтобы быть эффективным. Сообщество разделено на «многоуровневую» и «многоуровневую декомпозицию домена». Для сравнения математики см. Мой ответ на вопрос: Каково преимущество многосеточных по сравнению с предобусловливателями декомпозиции доменов и наоборот?

Многосеточное сообщество в целом было более успешным в производстве программного обеспечения общего назначения. Для эластичности я предлагаю использовать сглаженную агрегацию, которая требует приблизительного «почти нулевого пространства». В PETSc это делается путем выбора PCGAMG или PCML (настройка с помощью --download-ml) и вызова MatSetNearNullSpace()режима жестких тел.

Методы декомпозиции домена дают возможность укрупнения быстрее, чем сглаженная агрегация, что, возможно, является более устойчивым к задержке, но «слабое место» с точки зрения производительности имеет тенденцию быть уже сглаженной агрегации. Если вы не хотите исследовать методы декомпозиции домена, я предлагаю просто использовать сглаженную агрегацию и, возможно, попробовать метод декомпозиции домена, когда программное обеспечение станет лучше.


Большое спасибо за этот очень информативный ответ! Что именно вы подразумеваете под близостью к границе Дирихле ? Закрыть с точки зрения количества элементов?
Себастьян

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

4

Я бы сказал, что каноническим выбором для этой задачи будет решатель сопряженных градиентов плюс алгебраический многосеточный предобусловливатель. Для PETSc, Hypre / Boomeramg или ML будет очевидным выбором предварительных условий.

Все эти компоненты при использовании через PETSc очень хорошо масштабируются до тысяч или десятков тысяч процессоров, если проблема достаточно велика (не менее ~ 100 000 степеней свободы на процесс MPI).


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

1

Вы можете легко создать довольно хороший предварительный кондиционер для упругости, если ваш материал не слишком несжимаемый (коэффициент Пуассона ), используя отдельный предварительный кондиционер компонентов смещения . Идея состоит в том, чтобы просто иметь блочную диагональную матрицу с 3 блоками, каждый из которых представляет связи в одном и том же физическом измерении то есть: , , .<0.4(x,y,z)KxxKyyKzz

В этом случае вы можете использовать менее продвинутые методы AMG, чтобы вычислить аппроксимацию каждого обратного блока и получить довольно хороший предварительный обработчик.


1

Уолтер Лэндри разработал код для трехмерной упругой деформации с использованием адаптивной мультисетки. Вы можете найти код на

https://bitbucket.org/wlandry/gamra

Вы можете включить эффект теплового воздействия с изотропным собственным напряжением и эквивалентными силами тела. Как только они на месте, решатель будет работать нормально.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.