После того как заданная конструкция представлена в виде конечно-элементной структуры, задача об определении перемещений узлов сводится к решению системы линейных алгебраических уравнений вида
KZ = F, |
(1) |
где K — симметричная матрица размером N×N. Отметим, что матрица K, как правило, содержит значительное число нулевых элементов (разреженная матрица) и положительно определена;
F — матрица правых частей (загружений) размером N×k (k — количество загружений);
Z — искомая матрица перемещений размером k×N.
Среди методов решения систем линейных алгебраических уравнений используются как прямые методы, так и итерационные. Прямые методы являются мощным средством решения систем линейных алгебраических уравнений с разреженными матрицами, если удается найти эффективный способ упорядочения, существенно уменьшающий заполнение при факторизации матрицы. Достоинство этих методов состоит в том, что они менее чувствительны к плохой обусловленности системы уравнений, позволяют выявить ошибки моделирования, приводящие к геометрической изменяемости расчетной модели, и продолжительность решения почти не зависит от количества правых частей, если последних относительно мало.
Итерационные методы решения систем линейных алгебраических уравнений широко применяются при исследовании больших задач механики деформируемого твердого тела. В частности, они оказываются весьма эффективными в тех случаях, когда в структуре уровней графа смежности появляется большое количество заполнений и, как следствие, прямые методы начинают работать очень медленно. Итерационные методы обычно применяются тогда, когда матрица системы уравнений является положительно определенной.
Среди наиболее распространенных прямых методов в МКЭ программах обычно используются профильный метод, основанный на Гауссовом исключении, и фронтальный метод. В первом случае матрица разрешающих уравнений формируется до их решения полностью (см. рис. 1), во втором — в оперативной памяти формируются группы уравнений, обычно включающие неизвестные одного узла. Матрица жесткости системы в явном виде не собирается, а вместо этого последовательно добавляются матрицы жесткости элементов, степени свободы которых входят в данную группу. Как только очередной фронт становится собранным, то есть все примыкающие к нему элементы включены в ансамбль, производится Гауссово исключение неизвестных, номера которых не совпадают с номерами уравнений фронта. В результате Гауссово исключение производится в плотной (фронтальной) матрице относительно небольшой размерности, состоящей из полностью собранной части уравнений и не полностью собранной. В процессе решения задачи фронт движется по узлам МКЭ модели. Эффективность мультифронтального метода в большинстве случаев превосходит модифицированный алгоритм Гаусса на порядок.
Упорядочение очередности исключения уравнений (профильный метод) и очередности подачи конечных элементов на сборку (фронтальный метод), направленное на уменьшение заполнений, производится, как правило, с учетом структуры заполнения матрицы жесткости. Здесь и далее под заполнением понимаются ненулевые элементы, появляющиеся в матрице в процессе факторизации на месте нулевого элемента исходной матрицы (см. рис. 1). Количество заполнений существенно влияет на эффективность обоих методов решения системы линейных алгебраических уравнений.
В комплексе SCAD реализовано несколько методов перенумерации. Например: обратный алгоритм Катхилла-Макки, метод фактор-деревьев, метод вложенныx сечений, алгоритм параллельных сечений, алгоритм METIS, Слоана, минимальной степени и другие. Эти методы и их сравнительные характеристики описаны в специальной литературе. Пользователю предоставлена возможность выбора метода перенумерации, поскольку эффективность того или иного алгоритма значительно зависит от структуры конкретной матрицы К, а задача определения оптимальной перенумерации степеней свободы принадлежит к числу “трудно решаемых задач” (NP-complete) [19], [26], [27].
Для многоядерных компьютеров рекомендуется использовать высокопроизводительный параллельный решатель PARFES, заметно ускоряющий расчет больших задач.
Если при использовании любого из решателей SCAD в процессе треугольного разложения матрицы K один из разрешающих элементов окажется равным нулю, т. е. выяснится, что K вырождена, что свидетельствует о геометрической изменяемости системы, то производится автоматическое наложение дополнительной ненапряженной связи, превращающей систему в неизменяемую. При этом пользователю предоставляется информация о номерах узлов и типах степеней свободы, по которым произведено наложение связей. Заметим, что вырождение идентифицируется не по точному равенству разрешающего элемента нулю, а по появлению на главной диагонали числа, «практически равного нулю», и выбор этого порога (параметр точности решения) является одним из параметров, которым пользователь может распорядиться сам.
|
|
Рис. 1. Профиль матрицы. 1 — ненулевые элементы, 2 — нулевые элементы, заполняемые при разложении матрицы, 3 — нулевые элементы, не заполняемые при разложении матрицы |
|
Когда сообщения об установке дополнительных связей появляются в протоколе решения задачи, мы рекомендуем внимательно проанализировать расчетную схему и выяснить причину происхождения геометрической изменяемости конструкции. Может оказаться, что система формально является неизменяемой, но параметры жесткости ее элементов таковы, что она определяется как «почти изменяемая». Тогда для анализа, возможно, следует решить задачу снова с другим значением параметра точности решения.
Дополнительным сервисным средством является контроль решения системы (1). При появлении сообщения о большой величине ошибки решения, которая, как правило, является следствием плохой обусловленности матрицы K, следует внимательно проанализировать перемещения узлов и убедиться в том, что полученное решение является приемлемым с инженерной точки зрения. Плохая обусловленность чаще всего связана с неудачной конструкцией рассчитываемой системы (например, случаем «почти изменяемой» системы) или ее неудачной идеализацией.