ПОИСК Статьи Чертежи Таблицы Организация данных при решении задач МКЭ из "Метод Конечных элементов в расчетах деталей тепловых двигателей " Затрата физических и творческих усилий для разработки большой мощной программы со сложной структурой логических связей разнообразных программных модулей оправдана в том случае, если эта программа предназначена для многократного использования в серийных расчетах какого-либо класса задач. Решение прикладных задач теории теплопроводности и термоупругости на основе МКЭ, имеющих практическое значение, требует рассмотрения систем с большим числом конечных элементов. Это обстоятельство вызывает необходимость формирования и обработки огромных числовых массивов данных, которые, разумеется, невозможно одновременно разместить в оперативной памяти ЭВМ. В связи с этим наряду с точностью и высокой скоростью счета программа при ее использовании в серийных расчетах должна удовлетворять некоторым сервисным функциям, среди которых важное 1Лесто отводится автоматической генерации массивов глобальных координат и номеров узловых точек конечных элементов. [c.110] В современной литературе рассматриваются различные подходы к решению проблемы автоматической генерации сетки конечных элементов. Один из них заключается в использовании техники изопараметрических элементов и обсуждается в работе [19]. Проиллюстрируем процесс автоматической генерации сетки конечных элементов на примере плоской двухмерной задачи. [c.111] Для генерации сетки базовых конечных элементов первого порядка требуется организовать два цикла по строкам и столбцам локальной сетки макроэлемента. Число строк локальной сетки на единицу больше числа разбиений т) ,, а число столбцов локальной сетки на единицу больше числа разбиений Шаг сетки по координате I определяется как 21щ, а шаг сетки по координате 11 определяется как 2/п . Далее, зная шаги сетки по каждой из локальных координат внутри циклов по строкам и столбцам, определяются локальные координаты точки сетки, по которым в соответствии с (4.34) и (4.35) вычисляются глобальные координаты той же точки. Одновременно определяется порядковый номер узловой точки в сетке макроэлемента. [c.112] Для генерации сетки базовых конечных элементов второго порядка также требуется организовать два цикла по строкам и столбцам локальной сетки макроэлемента. Поскольку конечный элемент второго порядка содержит узловые точки на серединах строк, то локальную сетку удобно организовать при помощи удвоения чисел разбиений. Таким образом, число строк локальной сетки будет равно числу + 1, а число столбцов будет равно числу 2п + 1. Шаги сетки по координатам я ц определяются соответственно как Мщ и 1/п,,. Далее можно поступить так же, как и при построении сетки базовых элементов первого порядка с тем лишь отличием, что точки локальной сетки, которые соответствуют четным номерам строк и столбцов, должны быть пропущены при вычислении глобальных координат и определении порядкового номера. Нумерация узловых точек в пределах макроэлемента осуществляется так, как это показано на рис. 7.1. [c.112] Очевидно, что процедуре генерации сетки базовых конечных элементов должно предшествовать ручное построение так называемой опорной сетки макроэлементов с необходимым набором исходных данных. В качестве такого набора данных выступают массивы глобальных координат и номеров узловых точек макроэлементов, на основе которых уже формируются одномерные массивы XL и YL. [c.113] Макроэлементы опорной сетки (рис. 7.2) имеют пять прямолинейных и две криволинейные границы, поэтому опорная сетка может быть определена восемью вместо тринадцати узловыми точками. Недостающие координаты пяти узловых точек на серединах прямолинейных участков определяются путем вычисления. [c.114] Исходные данные опорной сетки можно представить в виде следующих числовых массивов. Одномерные массивы ХВ и YB содержат глобальные координаты х я у узловых точек опорной сетки. Одномерные массивы NXS и NYS содержат числа разбиений соответственно по осям и t) локальной сетки всех макроэлементов. В целях компактности программного модуля, формирующего массивы XL и YL глобальных координат узловых точек макроэлемента, удобно ввести два двухмерных массива номеров узловых точек опорной сетки. Массив NVG в каждом из своих столбцов содержит глобальные номера основных узлов, расположенных в вершинах макроэлемента. Массив NVM в каждом из своих столбцов содержит глобальные номера узлов, расположенных на серединах сторон макроэлемента. В том случае, если сторона макроэлемента представляет прямую линию, на соответствующее место массива NVM заносится нуль. На рис. 7.2 приводятся значения массивов NVG и NVM для рассматриваемого примера. [c.114] Генерация глобальных номеров узловых точек сетки базовых конечных элементов не представляет труда, если опорная сетка представлена одним макроэлементом. Однако при решении прикладных задач таких экзотических случаев не бывает и нужно иметь в виду, что глобальные номера узловых точек, расположенных на общей стороне двух смежных макроэлементов, должны совпадать. Следовательно, при генерации глобальных номеров как минимум необходимо осуществлять проверку на совпадение глобальных координат узлов сетки текущего макроэлемента с глобальными координатами узлов сетки всех предшествующих макроэлементов. [c.115] Для хранения глобальных номеров узлов сетки текущего макроэлемента вводится одномерный массив NN0, который предварительно зануляется. Для временного хранения значений глобальных координат узлов сетки базовых конечных элементов всех макроэлементов вводится два одномерных массива ХО и 0, которые соответственно содержат компоненты координат по осям хну. [c.115] Глобальная нумерация осуществляется следующим образом. [c.115] Этот фрагмент программного модуля приведен для генерации глобальных номеров узловых точек. Набор исходных данных о глобальных координатах и номерах узловых точек сводится к серии записей в файлах периферийной памяти ЭВМ, в которых хранится содержимое массивов XS, YS и NNG для каждого макроэлемента. Может показаться удивительным, что не формируются массивы номеров узловых точек базовых конечных элементов в то время как хранится всего лишь информация о номерах узлов сетки макроэлемента. Дело в том, что в дальнейшем в алгоритме решения задачи МКЭ обработка данных происходит на уровне макроэлементов. При этом выборка номеров узловых точек базового конечного элемента из массива NNG осуществляется весьма просто. [c.116] Приведенный алгоритм нумерации узлов, вероятно, является простейшей из возможных и требует в отличие от схемы нумерации, приведенной в [19], заведомо лишних операций при проверке совпадения координат узловых точек, так как заранее известно, что внутренние узлы сетки макроэлемента не дадут этого совпадения. Однако простейшая схема нумерации ведет к простейшей программе, которая без труда обобщается на случай трехмерных областей. [c.116] Вернуться к основной статье