Моя система представляет собой симметричную задачу КЭ с множителями Лагранжа (например, несжимаемый поток Стокса):
где - типичный случай (я даже удостоверился, что уравнения пронумерованы так, чтобы множители Лагранжа появились последними). Система довольно большая (+ 100 тыс. Строк).
Прочитав ответ на этот вопрос , у меня сложилось впечатление, что существуют подходящие предварительные кондиционеры, которые можно использовать для смешанных задач FE.
Используя PETSc, мне удалось решить систему с помощью MINRES (-ksp_type minres -pc_type none -mat_type sbaij
), хотя точность (вызывая несколько итераций Ньютона для линейной задачи). Никакая другая комбинация preconditioner и ksp-solver не работает.
Есть ли комбинация флагов для PETSc, которая решит эту систему быстрее, чем с помощью MINRES?
источник
Ответы:
Предупреждение
Решение проблем седловой точки включает в себя гораздо больше выбора, чем определенные проблемы, и есть гораздо больше вещей, которые могут пойти не так. Используйте мониторы для всех уровней для отладки сходимости, чтобы убедиться, что пустые пространства обрабатываются правильно, когда вспомогательные операторы единичны (обычно это просто постоянное нулевое пространство), и чтобы обеспечить стабильность предварительные условия. Эти методы обсуждаются в этом вопросе .
Решение проблем седловой точки
Вы можете начать с раздела о решении блочных матриц в Руководстве пользователя . Для задач, подобных задачам Стокса, вы можете создать предварительное условие комплемента Schur, используя PCFIELDSPLIT .
Это может быть объединено с предобусловливателем коммутации наименьших квадратов для дополнения Schur (
-fieldsplit_1_pc_type lsc
). Это обычное явление,-fieldsplit_1_ksp_type preonly
и пусть внешняя итерация выполняет большую часть работы. Блочно-треугольные варианты популярны при использовании таким образом, например,-pc_fieldsplit_schur_fact_type upper
.Вы можете найти более подробную информацию о составе решателя, используя опции параметров в нашей статье (препринт) , в которой также обсуждается коммутация многосетки с разложением блока (размещение поля поля внутри многосетки).
Для многих задач вы захотите настроить декомпозицию поля и предобусловливатели дополнения Шура, многие из которых включают вспомогательные операторы. Например, метод «конвекции-диффузии давления» (PCD) от Elman et al. Требует дискретизации вспомогательного оператора в пространстве давления. С этой целью см. Примеры PCSHELL и раздел руководства пользователя.
источник
Вам нужен предварительный кондиционер, и его конструкция обсуждается здесь: http://www.math.tamu.edu/~bangerth/videos.676.38.html
источник