Шабров Н.Н. - Метод конечных элементов в расчётах деталей тепловых двигателей (1061803), страница 18
Текст из файла (страница 18)
Приведенный алгоритм нумерации узлов, вероятно, является простейшей из возможных и требует в отличие от схемы нумерации, приведенной в [191, заведомо лишних операций при проверке совпадения координат узловых точек, так как заранее известно, что внутренние узлы сетки макроэлемснта не дадут этого совпадения. Однако простейшая схема нумерации ведет к простейшей программе, которая без труда оообщается на случай трехмерных областей. УЛ. ОРГАНИЭАЦИЯ ХРАНЕНИЯ ГЛОБАЛЬНОЙ МАТРИЦЫ СИСТЕМЫ УРАВНЕНИЙ МКЭ Как было показано ранес, решение рассматриваемых задач на основе МКЭ сводится к решению системы линейных алгебраических уравнений с симметричной матрицей.
Характерной особенностью матриц таких систем является их редкая заполненность. Квадратная матрица К порядка Л', имеющая т ненулевых элементов, считается редкозаполпеппой нли разреженной, если т (( У' 121]. Например, при решении плоской задачи теплопроводности на сетке четырехугольных конечных элементов первого 116 порядка каждая узловая точка связана не более чем с восемью соседними узловыми точками.
Следовательно, каждое из уравнений теплового баланса будет содержать ие более девяти ненулевых коэффициентов при любом порядке общей системы уравнений. На рис. 7.3 приведен пример симметричной части разреженной матрицы теплопроводпости, где крестами обозначены ненулевые элементы. ХгЧ 1 7 10 19 14 иЯ 0 9 11йт14 Ю 11га 7 2 54 50 78 9 1011171а14 2 5 Ф 0 8 7 Ю 9 10 11 12 У 14 Рг-54 000 Рис. 7.3, Организация профильного хранения глобальной матрицы системы уравнений МКЭ Частным случаем разреженной матрицы являются ленточные матрицы, удовлетворяющие условию К;1 — — О пРи ~т — 1~)~, где величина ~ называется шириной ленты. Если в пределах ленты не имеется нулевых элементов, то матрица называется полной ленточной митричей. В матрицах систем уравнений МКЭ, связанных с решением практических задач, полных ленточных матриц не бывает.
Обычно в пределах !17 ленты матрица также является разреженной. Так, например, если рассматривать матрицу из рис. 7.3 как ленточную, то р = 5. При этом в пределах ленты матрица также является разреженной. Очевидно, разумно будет использовать свойство разреженности матриц при решении систем уравнений. При решении системы уравнений итерационными методами можно полностью воспользоваться свойством разреженности, так как в этом случае в ходе решения не порождаются новые ненулевые элементы матрицы.
При использовании прямых методов в процессе решения систем уравнений МКЭ порождаются новые ненулевые элементы матрицы. Образование новых ненулевых элементов называется заполнением (211. Следуя методу, изложенному в работе [21[, определим для каждого уравнения или для каждой строки разреженной матрицы локальную ширину ленты [з!, для которой при каждом фиксированном ! будет К!~ =- О при ~ ! — ) [) К. Суммой вида Р =УФ+1) !=1 определяется профиль матрицы К, который соответствует количеству элементов симметричной части матрицы, расположенных от первого ненулевого элемента в каждой строке включительно до диагонального элемента.
В примере на рис. 7.3 профиль матрицы окаймлен тонкой линией, В работе [21[ показано, что в случае применения прямых методов решения систем уравнений заполнение ограничивается профилем матрицы. Иначе говоря, в процессе декомпозиции матрицы, например, по методу Холецкого поные ненулевые элементы могут появиться только в пределах профиля матрицы. В связи с этим для хранения элементов матрицы системы уравнений МКЭ можно оставить элементы, принадлежащие только профилю матрицы. Такая схема хранения впервые была предложена А. Дженнингсом [39[ и называется профильной.
Профиль матрицы по смыслу удобно разместить в одномерном массиве. Для поиска нужного элемента матрицы в этом массиве вводится адресная последовательность диагональных элементов, Так, например, если для хранения профиля матрицы ввести массив ЯЙ, а для адресной последовательности одномерный массив МРР ', то элемент профиля матрицы К;; будет находиться ~ Массив г1РЭ (равно как и массив ЯРА) формируется в два этапа. На первом этапе для каждой строки глобальной матрицы и матрицы макроэлемента определяется помер столбца первого ненулевого элемента и засылается на соответствующее место в массиве ЯРА и 1чРА. На втором этапе происходит преобразование массивов НРГ! и 1чРА в адресную последовательность глобальной матрицы и матрицы макроэлемента.
Наиболее трудоемкий первый этап, который для двухмерных задач реализован в подпрограмме РН1чРР, а для трехмерных задач — в подпрограмме ЧММРР (см. приложение). 118 в массиве ЯС1 с адресом, равным ХРР (1) — (1 — 1). Параметры 1 и 1 соответствуют номеру строки и столбца элемента К;;. Очевидно, что условием присутствия элемента К;) в массиве Б(л является выполнение следующего неравенства: МР1) (1) — (1 — 1) > МРВ (1 — 1). Обычно в практических задачах профиль матрицы составляет порядка сотен тысяч чисел и в связи с этим не может быть целиком размещен в оперативной памяти ЭВМ.
Поэтому профиль матрицы разбивается на части или так называемые сегменты, размеры когорых устанавливаются в соответствии с доступным объемом оперативной памяти ЭВМ. Все сегменты хранятся в виде записей некоторого файла в периферийной памяти. Как правило, в сегменте размещаются полные строки матрицы. На рис. 7.3 показано разбиение профиля на память сегментов, для которых максимальный размер составляет 15 чисел, О каждым сегментом связывают три целых числа, два из которых указывают номер первой и номер последней строки в сегменте.
Назначение третьего числа будет рассмотрено в следующей главе. 7.3. ФОРМИРОВАНИЕ ГЛОБАЛЬНОЙ МАТРИЦЫ СИСТЕМЫ УРАВНЕНИЙ МКЭ Концепция макроэлементов, введенных для удобства автоматической генерации глобальных координат и номеров узловых точек базовых конечных элементов, может быть использована при вычислении и формировании глобальной матрицы системы уравнений МКЭ. Рассмотрим какой-либо макроэлемент после генерации сетки узловых точек базовых конечных элементов.
Этим узловым точкам соответствующим образом присвоены номера, которые хранятся в массиве ММО. Ясно, что элементы массива МКО, или глобальные номера узловых точек, вовсе не обязаны совпадать с правильной последовательностью натуральных чисел. Из этого следует, что формирование глобальной матрицы макроэлемента в соответствии с представлением К(е) 1~ а(е) 'К(е) (е) е где е — номер базового конечного элемента, принадлежащего данному макроэлементу Е, приводит к матрице, в которой будут строки и столбцы из нулевых элементов.
Проиллюстрируем сказанное на примере из рис. 7.3, где показана опорная сетка из шести четырехугольных макроэлементов. Для простоты и наглядности изложения допустим, что каждый узел сетки имеет одну степень свободы и каждый макроэлемент является также базовым конечным элементом. Иначе говоря, 119 числа разбиений и; и п„для всех макроэлементов равны единице. Тогда опорная сетка будет совпадать с основной сеткой базовых конечных элементов. Рассмотрим четвертый макроэлемент (рис. 7.3). На основе информации об исходных данных, содержащейся в соответствующем столбце массивов КЧб и МЪМ, генерируется массив МХО глобальных номеров узлов сетки.
Далее, формируя глобальную матрицу К1в1 макроэлемента, можно заметить, что ненулевые элементы матрицы будут расположены в строках и столбцах, номера которых совпадают с номерами узлов в массиве ХМЙ, На%рис. 7.3 ненулевые элементы симметричной части матрицы К1в1 обведены полужирной линией. Очевидно при этом, что следует избегать хранения в оперативной памяти ЭВМ нулевых строк и столбцов матрицы К1е1. Простой путь к этому состоит в перенумерации узлов сетки макро- элемента целыми числами последовательного натурального ряда начиная с единицы.
Перенумерацию можно осуществить многими способами. Нас устроит только такой способ, при котором в процессе формирования нижняя симметричная часть матрицы макроэлемента размещалась также в нижней симметричной части глобальной матрицы системы уравнений МКЭ. Это приводит к простому алгоритму формирования. Перенумерация осуществляется следующим образом.
Разыскивается наименьший элемент массива ХХб и ему ставится в соответствие единица. Затем разыскивается наименьший элемент из оставшихся неперенумерованных в массиве МХО и ему ставится в соответствие двойка. Процесс продолжается до полного перебора элементов массива МХА. Новые номера узлов хранятся в массиве К1'ч 1.. Для хранения элементов симметричной части матрицы К1в1 удобно опять воспользоваться профильной схемой хранения и ввести два одномерных массива 55 и МРА. Массив ЯЯ содержит элементы профиля матрицы К1е1, а массив ЯРА (см. приложение) содержит элементы адресной последовательности для профиля матрицы К1л1.
При соответствующем выборе параметров макро- элемента можно массивы 55 и ЯРА целиком разместить в оперативной памяти ЭВМ. Таким образом, функциональная структура алгоритма формирования глобальной матрицы системы уравнений МКЭ в соответствии с принятой здесь концепцией должна быть представлена циклом по макроэлементам, в пределах которого можно выделить два шага: 1) формирование профиля матрицы К1в1 с учетом принятой схемы перецумерации узлов и размещение его в массиве Ю; 2) пересылка элементов профиля матрицы К1е1 из массива Ю в соответствующие сегменты массива 56, где хранится профиль матрицы системы уравнений МКЭ. 120 Рассмотрим каждый шаг отдельно.