Метод конечных элементов (1061787), страница 62
Текст из файла (страница 62)
Быстрые темпы развития. вычислительной техники привели к необходимости создания программы на языке, понятном любой машине. Возможности алгоритмического языка ФОРТРАН обусловили его широкое использование для программирования при решении задач методом конечных элементов. Программа ХАЯА2) представляет собой попытку создания гибкой программы для широких исследований и решения задач Американской аэрокосмической промышленности.
Созданные в Суонси программы РЕЮ (Г1пйе Е1етепт Ьо1п11оп Яъ'апзеа) и НАЕМЕ были больше ориентированы на эффективное решение инженерных задач строительной механики малых и средних размеров, таких, например, как расчет мостов, плотин, ядерных реакторов. При их разработке основное внимание уделено созданию простой системы, которую легко приспособить к любым конкретным задачам. Важно иметь в виду, что затраченные усилия при программировании должны окупаться эффективностью программы. Чем ') Составлена под руководством проф. Аргириса '(Штутгарт).
2) Национальное управление по аэронавтике и исследованию космического пространства. Вычислительные методы и программы меньшую по размеру предстоит создать программу, тем больше внимания следует уделить ее эффективности. При составлении программы решения задач методом конечных элементов важно знать пределы возможностей машины и при необходимости использования специальных приемов переходить к ЗВМ с ббльшим объемом памяти и ббльшим быстродействием.
Программирование в машинных кодах, как правило, происходит более медленно, и разработка такой программы обходится дороже. Программа и приемы программирования, описанные в этой главе, имеют ряд особенностей, присущих программе ГЕ35. Однако многие приемы и тонкости рационального использования памяти, характерные для программы РЕЮ, здесь опущены ради простоты. Тем не менее приведенная программа без каких-либо существенных изменений использовалась для расчета сложных упругопластических задач.
И хотя здесь приведен всего лишь простейший вариант программы, с ее помощью успешно исследовались методом собственных функций также задачи устойчивости и теории колебаний. 20.2. Программы, реализирующие метод конечных элементов Программы, реализующие метод конечных элементов, могут иметь различное назначение. Чаще всего требуется только решение линейных задач в упругой постановке, однако число степеней свободы может быть различным, от нескольких десятков до нескольких тысяч. В задачах динамики и устойчивости может потребоваться отыскание собственных значений, а для решения нелинейных задач может оказаться необходимым применение различных итерационных методов.
При решении конкретных задач методом конечных элементов встретятся непреодолимые трудности, если составлять программу для каждого нового класса задач. Поэтому очень важно использовать созданные ранее программы. Типичная программа, реализующая метод конечных элементов, состоит из ряда общих блоков, которые в различных контекстах могут использоваться по-разному.
Такими блоками являются ввод исходных данных, вычисление жесткости элементов, решение уравнений, построение матрицы масс, нахождение собственных значений, вычисление напряжений и вывод на дисплей. При программировании такие блоки используются как подпрограммы. Для обеспечения - взаимозаменяемости входные параметры этих подпрограмм должны быть стандартизированы. Тогда при составлении новой программы в каждом конкретном случае можно просто комбинировать соответствующие подпрограммы, и вся дополнительная работа программиста сведется лишь к введению каких-либо новшеств или дополнений, связанных со спецификой задачи.
В таких системах управляющая программа обычно представляет собой очень простую программу, которая обращается в соответствующем порядке к различным подпрограммам. Для некоторых классов задач можно создать стандартные управляющие программы и автоматизировать выбор нужных подпрограмм. В больших организациях, имеющих дело с некоторыми определенными типами задач, создание таких стандартных программ может оказаться чрезвычайно полезным. Однако в исследовательских целях, видимо, предпочтительнее более гибкое ручное программирование.
Важно, чтобы сформированные блоки имели достаточное количество документации, позволяющей легко использовать их не только непосредственному составителю, но и другим лицам. Крайне полезным может оказаться включение в соответствующие места комментариев. Пример управляющей программы.
Б этой главе приведен пример программы расчета линейной задачи о плоской деформации, не требующей большого объема памяти машины, что позволяет применять ее в малых ЭВМ. Программа написана на языке ФОРТРАН 1Ч и представляет собой очень простой пример использования отдельных подпрограмм.
Однако она вполне пригодна для решения практических задач и легко может быть использована читателями, знакомыми с ФОРТРАНом. В разд. 20.7 описан пример решения с помощью этой программы задачи о плоском напряженном состоянии (с измененными материальными константами). При использовании подпрограмм в других целях или прн применении элементов других типов необходимо составить соответствующие управляющие программы.
Типичная блок-схема управляющей программы приведена на стр. 467. Заметим, что в этой программе цикл по нагрузкам вводится в целях экономии памяти вычислительной машины, что, однако, приводит к увеличению затрат машинного времени. Тем не менее, когда есть необходимость отдельно исследовать влияние большого числа различных видов нагрузок, как, например, при расчете мостов, его введение обязательно, Для задач с небольшим разнообразием нагрузок часто бывает предпочтительнее рассматривать их одновременно..
Обозначения переменных общего блока (СОХТЕ) Т1ЧЧ.Е (12) Массив для заголовка из 12 символов ХР Число узловых точек Ж Число элементов Вычислительные методы и праграл~мы Число узлов, в которых заданы граничные условия Число степеней свободы узла Максимальное число узлов в элементе Количество случаев нагружения Количество типов материала Число уравнений в системе Счетчик цикла по нагрузкам Порядковый номер запоминающего устрой- ства ХВ Х1)Р ХСХ Х1.0 ХМАТ ХИХОН 1.1 .
ХТ4 ОКТ (25,2) ХЕ'1Х (25) Й! (200) 8К (200,40) Обозначения переменных в программе МА1Х ХРКОВ Количество задач ХРК Счетчик числа задач Программа 20-1 Управляющая программа МА1И СОММОЯСОИТК/Т1Т1,Е(12),ИР,ИЕ,ИВ,ИОР,ИСИ,И1.0,ИМАТ, ИЗХР,1Л,ИТ4 СОММОИ СОКО(100,2),ИОР(200,4),1МЛТ(200),ОКТ(25,2),ИВ С(25), И ИХ(25) 1 К1(200),БК(200,40) Номер исходной ленты и максимальное число узловых точек ИТ4 11 ИСИ =3 КЕА0(5,1) ИРКОВ Начало цикла ио задачам Основные переменные, помещаемые и область СОММОХ СОРЭ(100,2) Массив координат узловых точек ХОР (200„4) Массив, содержащий информацию о связи элементов 1МАТ (200) Массив, содержащий информацию о типе материала элемента Массив, содержащий характеристики материала элемента ХВС (25) Номера узлов, в которых заданы граничные условия Тип граничного условия Вектор нагрузки Прямоугольная матрица для уравнений Глава 20 Оо 400 ЯК вЂ” 1,ЯКОВ 13 КЕЫЯЗ 1ЧТ4 16 Считывание исходных данных по геометрии и свойствам материалов 14 САЬЬ ОЙРАТА 19 1с,~8ур д~р,щ~р 21 ?)О 2001.1 = 1,ЬП.Э 22 С С С Считывание нагрузки САЬЬ ЬОАВ С С Формирование и решение системы алгебраических уравнений С С САЬЬ РО11МК САЬЬ 8ОЬЧЕВычисление наприжений С С С САЬЬ 8ТКЕ88 200 СОХТ1М1Л3 400 СОЫТ1ЬПЗЕ 1 РОЙМАТ(915) 8ТОР ЕИ0 32 ЗЗ 35 Зб ЗУ 20.3.
Ввод исходных данных Для работы программы, реализующей метод конечных элементов, дополнительно требуются четыре основные системы исходных данных: а) координаты и характеристики элементов; б) свойства материала каждого элемента; в) граничные условия; г) нагрузки. Подпрограммы ввода исходных данных могут иметь различную структуру, но в любом случае их основное назначение состоит в формировании массива исходных данных указанных четырех систем, характеризующих задачу, Для работы управляющей программы необходим полный набор исходных данных. 20.8.1.