Я погружаюсь в увлекательный мир анализа методом конечных элементов и хотел бы решить большую термомеханическую проблему (только термическая механическая, без обратной связи).
Для механической задачи я уже понял из ответа Джеффа , что мне нужно будет использовать итеративный решатель из-за размера моей сетки. Далее я прочитал в ответе Мэтта , что выбор правильного итерационного алгоритма является непростой задачей.
Я спрашиваю здесь, есть ли опыт работы с большими трехмерными линейно-упругими задачами, который помог бы мне сузить поиск наилучшей производительности? В моем случае это структура с тонкими узорчатыми пленками и нерегулярно расположенными материалами (как с высоким CTE, так и с низким CTE). В этом термомеханическом анализе нет больших деформаций. Я могу использовать HPC моего университета [1.314 узла с 2 процессорами AMD Opteron (каждое по 2,2 ГГц / 8 ядер)].
Я думаю, что он PETSc
может содержать что-то интересное, особенно алгоритмы, которые выполняют некую декомпозицию домена (FETI, multigrid), но я немного перегружен опциями и не имею опыта. Мне также нравится фраза «геометрически информированные предварительные кондиционеры» , но я не уверен, поможет ли это мне. Я еще не нашел что-то, что фокусируется на линейной механике сплошных сред.
Сильное масштабирование (Amdahl) очень важно в моем приложении, потому что мои промышленные партнеры не могут долго ждать результатов моделирования. Я определенно ценю не только ответы, но и рекомендации для дальнейшего чтения в комментариях.
источник
Ответы:
Предполагая, что ваши структуры на самом деле являются трехмерными (а не только тонкими элементами, возможно, дискретизированными с элементами оболочки) и что модель больше нескольких сотен тысяч степеней свободы, прямые решатели становятся непрактичными, особенно если вам нужно решить каждую проблему только один раз. Кроме того, если структура не всегда «близка» к границе Дирихле, вам понадобится многоуровневый метод, чтобы быть эффективным. Сообщество разделено на «многоуровневую» и «многоуровневую декомпозицию домена». Для сравнения математики см. Мой ответ на вопрос: Каково преимущество многосеточных по сравнению с предобусловливателями декомпозиции доменов и наоборот?
Многосеточное сообщество в целом было более успешным в производстве программного обеспечения общего назначения. Для эластичности я предлагаю использовать сглаженную агрегацию, которая требует приблизительного «почти нулевого пространства». В PETSc это делается путем выбора PCGAMG или PCML (настройка с помощью
--download-ml
) и вызоваMatSetNearNullSpace()
режима жестких тел.Методы декомпозиции домена дают возможность укрупнения быстрее, чем сглаженная агрегация, что, возможно, является более устойчивым к задержке, но «слабое место» с точки зрения производительности имеет тенденцию быть уже сглаженной агрегации. Если вы не хотите исследовать методы декомпозиции домена, я предлагаю просто использовать сглаженную агрегацию и, возможно, попробовать метод декомпозиции домена, когда программное обеспечение станет лучше.
источник
Я бы сказал, что каноническим выбором для этой задачи будет решатель сопряженных градиентов плюс алгебраический многосеточный предобусловливатель. Для PETSc, Hypre / Boomeramg или ML будет очевидным выбором предварительных условий.
Все эти компоненты при использовании через PETSc очень хорошо масштабируются до тысяч или десятков тысяч процессоров, если проблема достаточно велика (не менее ~ 100 000 степеней свободы на процесс MPI).
источник
PCFIELDSPLIT
в PETSc), но сглаженная агрегация обычно более устойчива для эластичности.Вы можете легко создать довольно хороший предварительный кондиционер для упругости, если ваш материал не слишком несжимаемый (коэффициент Пуассона ), используя отдельный предварительный кондиционер компонентов смещения . Идея состоит в том, чтобы просто иметь блочную диагональную матрицу с 3 блоками, каждый из которых представляет связи в одном и том же физическом измерении то есть: , , .<0.4 (x,y,z) Kxx Kyy Kzz
В этом случае вы можете использовать менее продвинутые методы AMG, чтобы вычислить аппроксимацию каждого обратного блока и получить довольно хороший предварительный обработчик.
источник
Уолтер Лэндри разработал код для трехмерной упругой деформации с использованием адаптивной мультисетки. Вы можете найти код на
https://bitbucket.org/wlandry/gamra
Вы можете включить эффект теплового воздействия с изотропным собственным напряжением и эквивалентными силами тела. Как только они на месте, решатель будет работать нормально.
источник