Многие адаптивные библиотеки FEM используют более сложные структуры данных ячеек для обработки добавления / удаления узлов, ребер, треугольников, тетраэдров и т. Д. Например, библиотека p4est использует структуры данных октодерева для адаптивного уточнения сетки; Вы не часто находите октреи, используемые для вычислений на статической сетке.
Какие изменения на стороне линейной алгебры для адаптивного FEM?
Самый грубый способ, который я могу придумать, - это полностью перестроить все системные матрицы всякий раз, когда сетка очищается или огрубляется. Если адаптация сетки является достаточно редкой операцией, то затраты на это в конечном итоге амортизируются в течение остальной части вычисления. При таком подходе можно легко использовать существующее программное обеспечение разреженной линейной алгебры (PETSc, Trilinos и т. Д.).
Является ли этот тупой метод наиболее распространенным, или есть библиотеки, которым удается повторно использовать или модифицировать старую матрицу во время уточнения? В конце концов, большая часть сетки и соответствующие матрицы остаются неизменными во время адаптации сетки.
источник