Зенкевич О.С. - Метод конечных элементов в технике (1050654), страница 66
Текст из файла (страница 66)
Это упрощенные подпрограммы, в которых заданы число циклов и пределы сходимости. Кроме того, в ннх используется взаимно однозначное соответствие между матрицей жесткости в матрицей-указателем. Эти подпрограммы совместимы с остальными подпрограммами, при. веденными в этой главе. Заметив!, что подпрограмма ЕОВМК вычисляет члены, лежащие как выше, так и ниже диагонали компактной матрицы жесткости, и этим она отличается от другой подпрограммы ЕО)(МК (програлтма 20-5), которая используется при применении прямого метода решения, 20,5лй Оекоторые другие прямые методь! Видоизменением метода исключения, используемого в случае ленточных матриц, является так называемый метод реднозанолненныл матриц, часто применяемый в экономических расчетах, В соответствии с этим методом подматрица записывается в компактной форме вместе с матрицей-указателем, назначение которой состоит в указании номера строки и столбца полной матрицы.
При решении задач методом нонечных элементов с одинаковым числом степеней свободы в каждом узле матрица.указатель может быть записана в компактной форме для того, чтобы соответствовать узловым подматрицам. В методе редкозаполненных матриц исключение производится точно так же,.как описано выше, но при этом в качестве индекса используется матрица-указатель.
Преямущество, получаемое за счет избавления от некоторых операций, необходимо. сравнить с дополнительными затратами времени на отыскание элемента в полной матраце с помощью матрицы-указателя. Требуемый объем памяти зависит от числа ненулевых подматриц иа каждом шаге процесса исключения и не зависит от ширины ленты. Следует отметитгь что при исключении иа мес~ах, где раньше стояли нули, появляются ненулевые подматрицы Для максимально эффективного использования памяти и времени 1Ьч Вмлиелителлимв методы и ираераммм Глава Го 20Х6.
Учет граничных условий йС2 йСл й!Н (и! йм ° ° ° йы ° ° ° дам "2 йп йт, йлС йл2 ' ' йлл ' ' йлн (20.11) и„ йш йнз дал" йян им уравнения следует упорядочить так, чтобы в матрице в каждый момент содержалось минимальное число элементов, Определение оптимального порядка является сложной задачей динамического программирования, и для ее решения могут использо. ваться другие приближенные методы [5]. С помощью аналогичного упорядочения уравнений можно минимизировать число операций в ленточных методах. Однако прн этом ширина ленты может сильно увеличиться, что сведет на иет все преимущества метода. В приложении 20Б приведены подпрограмма РОКМК составления матрицы жесткости (верхней треугольной части в форме прямоугольника) вместе с соответствующей матрицей-уназателем и подпрограмма 501Ъ'Е решения систем уравнений методом редкозаполненных матриц. Более существенными отличиями обладает фронтальный метод решенйл.
Как и в методе редкозаполненных матриц, матрица жесткости записывается в компактной форме вместе с матрицей-указателем. Однако здесь исключение производятся по элементам независимо от нумерации узлов. Своим названием метод обязан тому, что в процессе решения создается некоторый фронт, проходящий через систему узлов, Метод применяется главным образом при наличии дополнительных узлов на сторонах элементов, так как он может привести к значительной экономии памяти по сравнению с ленточным методом; Преимущество использующей метод фронтального исключения системы Р)НЕББЕ особенно заметно при использовании элементов высоких порядков и в том случае, когда основное внимание уделяется характеристикам элементов,.Поскольку, например, предпочтительна поэлементная выдача, число расчетных параметров натруженна, которое может быть помещено в оперативной паыяти вычислительной машины, значительно увеличивается.
В каждый момент времени в процессе исключения в оперативной памяти машины находятся только сведения о векторе нагрузки. Фронтальный метод решения наиболее эффективен при решении больших задач с применением трехмерных элементов. 20.5.5. Некоторые специальные приемы Для улучшения более крупных программ могут использоваться некоторые специальные приемы: а) Выделение подконструкций. Вместо того чтобы решать полную систему уравнений, иногда бывает удобно строить -навусо матрицу меньшей размерности. Этот прием позволяет по. строить матрицу жесткости для совокупности элементов, в которой все точки, кроме внешних, исключены, б) Включение дополнительной жесткости. В дополнение к выделению подконструкций используется введение в полную матрицу жесткости специальных дополнительных жесткостей.
Это позволяет непосредственно учитывать, например, граничные условия, описывающие упругое опирание. Эти два приема особенно полезны при решении нелинейных задач, в которых большая часть конструкции остается линейно- упругой. В таких случаях линейно-упругая часть конструкции заменяется некоторой подконструкцией в виде линии или по. верхности, примыкающей к исследуемой области нелинейности, а затем решается нелинейнан задача при упругом граничном условии. Получающаяся нелинейная задача значительно меньше по обьему. При применении метода конечных элементов граничные условия в нвпряжениях автоматически учитываются вектором нагрузки; если граница свободная, элементы вектора нагрузки, соответствующие расположенным на границе узлам, равны нулю.
Прн заданных перемещениях (например, осадка фундамента и др.) матрица жесткости и вектор нагрузки должны быть модифицированы. В общем случае для упрощения индексации размерность матрицы не должна изменяться, т. е, никакие строки или столбцы не должны исключаться. Существуют два способа, с помощью которых, не нарушая указанных требований, можно удовлетворить граничным условиям, не учтенным при формировании элемента. Положим, что имеется некоторая система Н уравнений Р и, скажем, ис = и. В соответствии с первым способом столбец нагрузки видоизменяется так, что Ре = Р, — йсссс (т = 2, йс) и Р, = сс.
Тогда соответствующая строка и столбец становятся нулевыми, а диагональный член — единичным. В частном, но часто встречающемся случае, когда и 0 (т.е. опора неподвижна), необходимо изме- Главе 20 48? Лыгеггптегьеые пггеды и программы нить матрицу описанным выше способом, оставляя матрицу на- грузки неизменной, кроме члена Р! = О. Второй способ состоит в >множении соответствующего диа. гонального элемента матрицы на некоторое большое число, ска- жем 1О', перел молификапией соответствующего коэффициента нагрузки. В рассматриваемом случае мы бы получили йп — — Фп ° 1Ое, Г, = йп 10е а, Й1г=йн (за исключением случая, когда 1=1, ! !), Р, = Р, (1 Ф 1). В полученном решении и, будет почти равно а.
Этот способ пригоден для любых методов решения. Во многих случаях возникает необходимость определять силы реакции в граничных точках, например реакции мостовых опор или контрфорсов плотин. Если требуется определить реакции, то при обратном холе необходимо преобразовать соотиетствующие уравнения так, чтобы вместо опрелеления в точке огюры неизвестного перемещения по известной нагрузке отыскивалась неизвестная нагрузка по известному перемещению. В соответствии с первым из уравнений (20.11) получаем следующее выражение для силм реакции: Д, =Р, — йпа — г' Фни!. 1 е 20.5.7. Пример подпрограммы Ниже приведены блок-схемы и тексты двух подпрограмм. Подпрограмма РОКМК используется для построения ленточной прямоугольной матрицы жесткпсти и учета граничных условий первым способом, описанным в предыдущем разделе (при а 0).
Подпрограмма 801ЧЕ применяетсн лля решения систем алгебраических уравнений методом ленточных матриц'). Блок-схемы привелеиы на стр. 488 и 489. Обозначении переменных е подпрограмме РОКМК МВАМП Максимально возможная в программе ширина ленты Переменные, определяющие положение элемента матрицы же- сткости )ь)РОЕВ, )ь(СОЕВ, )ь(С01 ') В прплпжепее 20В прпеелепы другие пслпрегреыыы, песпеыестпые с еяп степой РРЗВ.
)ь)В, МХ Е 8Т1Р М * (12,12) Обозначения переменнык а подпрограмме 8011)Е )ь)ВАМП Максимально возможная в программе ширина ленты )ь) Счетчик числа уравнений для исключения н обратного хода С Рабочая переменная для процесса исключения В! * (200) Вектор правых частей; в конце работы программы на его место помещается решение Программа 20-5 зовйоот)мп Роймк С С Форыпрееенпе еерхпега треугеаы ппе ыетрепы жесткости С С СОММОМ)СОМтй!Т)ТЬЯ(12),ХР,МЕ,МВ,МОР,ИСМ,%.О,ММАТ, МБТРИ,МТ4 СОММОМ 'СОйо(100,2)гМОР(КЮ,4),!МАТ(20)),Ойт(22,2),МВС(23), МР!Х(25) 1,й1(200),зя(200,40) 2,88Т)РМ(!2,12) С С С С МВАМО 40 С С Зедеппе нулевой ыетрппы жеетппстп С Ввод ыепепыееьпей шарипы лепты и информации е количестве решаеыых уравнений ОО 400 М !гып САЬь Зт(ртз(М) С С Возврат к ВЗТ!РМ, пен н матрице жесткпстп С е Массне, ресцплпжеапый е облестп СОй(МО)( ОО ЗЮ М 1,МЗХР ОО 300 М 1,МВАМО 300 ЯК(УАМ) О.
С С Цпкг пп элементам С Переменные, используемые для записи гранччного условия Матрица жесткости элемента 488 Глава 2О Засылка ЕЗТВ М а массив ЗК Обход по строкам С С С С Затем по столбцаы Блок-схема подпрограммы ГОЙМК РО 380 33 1,МСМ МВОЪ'В (МОР(МлО) — 1) МРР РО 330 1 1,МРР МВ0%В = МЕОСЕ + 1 ! (ЮХ вЂ” 1)-МОР + Я РО 330 КК 1,КСМ МСОСВ = (МОР(М,КК) — 1) МРР РО 320 К 1,МРР Е (КК 1) МРР+К.
МСОС МС01.В + К + 1 — МЕОСЕ Выеаслателаааы летаем а лроаралмм Блок-схема подпрограммы 50(.т(Е С С Если элемент ~иже лепты, то пропуск аасылки С (Р(МСОС) ЗВКЗ2О,З!0 310 ЗК(МЙО)РВМСОС) ЗК(МЕОИВМС0$)+ЕЗТ(РМ(1с) 320 СОМТ1МСЕ 330 СОМТ!МОЕ 330 СОМТ(М()Е М)0 СОМЕ(МОЕ Глппп 20 490 491 Учет граничных условн6 ОО 500 Х 1,ХВ ХХ = 10 (ХОР— 1) 1= ХВС(Х) ХКО)УВ = (1 — П ХОР Вычислительные методы и 'программы 230 5К(Х,Ц=С С С Сокращеиае вектора нагрузки дла каждого уравнения С С П роверка каждой степени свободы ОО 490 М [,ХОР ХКОЮВ= МКОШВ+ 1 [СОХ = ХР[Х(Х)/ХХ [Р([СОХ )460,450,420 420 зк(ХКОФВ,1) = 1. ОО 430 2='2,ХВЛХО зк(ХКО)УВ 2) = о.
Хй ХКО[УВ+ 1 —,1 1Р( Хй)430,430,426 425 5К(МК,Я) О. 430 СОХТ1ХОЕ ХР!Х(Х) =ХЕ!Х(Х) — ХХ.1СОХ 450 хх= ххПО 490 СОХ Т! Х ОЕ ыа сохпхые КЕТОК)ч ЕХО Программа 20-б зй[ВКООТ[ХЕ 5ОЬУЕ Спеыафнкании СОММОХ/СОХТК)Т[ТСЕ(12),ХР,ХьЕ,ХВ,ХОР,ХСХ,ХСО,ХМАТ, СОММОМ СОКО !00,2,ХОР (, ),ХОР(200,4),[МАТ(200),ОКТ(25,2),ХВС(25), [,й[(уинАС(2ОП,а) 1ВЛХО = 40 Счкращевие катрины ОО 300 Х ЕХ52Р [=Х ОО 290 1.= 2,МВЛХО 1=1+! 1Р(5К(Х,1.)) 24ОД90,240 ЯО С = 5К(МД))5К(лч,!) [ 0 ОО 270 К [.,ХВЛХО ,! Я-~- ! [Р(зк(Х,К)) 260,270,260 26О 5К([Д) = 5К(!Д) — С*5К(Х,К) 270 СОХТ[ХОЕ й1(!) = К1(1) — С КЦХ) 290 СОХТ[ХОЕ 300 й!(Х) - й 1(Х)/зк(Х,[) С С Обратный ход С Х Х52Р 350 Х [Р(Х) 500,500,560 зп) !.