уравнения следует упорядочить так, чтобы в матрице в каждый момент содержалось минимальное число элементов. Определение оптимального порядка является сложной задачей динамического программирования, и для ее решения могут использоваться другие приближенные методы [5]. С помощью аналогичного упорядочения уравнений можно минимизировать число операций в ленточных методах. Однако при этом ширина ленты может сильно увеличиться, что сведет на нет все преимущества метода.
В приложении 20Б приведены подпрограмма FORMK составления матрицы жесткости (верхней треугольной части в форме прямоугольника) вместе с соответствующей матрицей-указателем и подпрограмма SOLVE решения систем уравнений методом редкозаполненных матриц.
Более существенными отличиями обладает фронтальный метод решения. Как и в методе редкозаполненных матриц, матрица жесткости записывается в компактной форме вместе с матрицей-указателем. Однако здесь исключение производится по элементам независимо от нумерации узлов. Своим названием метод обязан тому, что в процессе решения создается некоторый фронт, проходящий через систему узлов. Метод применяется главным образом при наличии дополнительных узлов на сторонах элементов, так как он может привести к значительной экономии памяти по сравнению с ленточным методом.-
Преимущество использующей метод фронтального исключения системы FINESSE особенно заметно при использовании элементов высоких порядков и в том случае, когда основное внимание уделяется характеристикам элементов. .Поскольку, например, предпочтительна поэлементная выдача, число расчетных параметров нагружения, которое может быть помещено в оперативной памяти вычислительной машины, значительно увеличивается. В каждый момент времени в процессе исключения в оперативной памяти машины находятся только сведения о векторе нагрузки.
Фронтальный метод решения наиболее эффективен при решении больших задач с применением трехмерных элементов.
20.5.5. Некоторые специальные приемы
Для улучшения более крупных программ могут использоваться некоторые специальные приемы:
а) Выделение подконструкций. Вместо того чтобы решать полную систему уравнений, иногда бывает удобно строить -новую матрицу меньшей размерности. Этот прием позволяет построить матрицу жесткости для совокупности элементов, в которой все точки, кроме внешних, исключены.
б) Включение дополнительной жесткости. В дополнение к выделению подконструкций используется введение в полную матрицу жесткости специальных дополнительных жесткостей. Это позволяет непосредственно учитывать, например, граничные условия, описывающие упругое опирание.
Эти два приема особенно полезны при решении нелинейных задач, в которых большая часть конструкции остается линейно-упругой. В таких случаях линейно-упругая часть конструкции заменяется некоторой подконструкцией в виде линии или поверхности, примыкающей к исследуемой области нелинейности, а затем решается нелинейная задача при упругом, граничном условии. Получающаяся нелинейная задача значительно меньше по объему.
20.5.6. Учет граничных условий
При применении метода конечных элементов граничные условия в напряжениях автоматически учитываются вектором нагрузки; если граница свободная, элементы вектора нагрузки, соответствующие расположенным на границе узлам, равны нулю.
При заданных перемещениях (например, осадка фундамента и др.) матрица жесткости и вектор нагрузки должны быть модифицированы. В общем случае для упрощения- индексации размерность матрицы не должна изменяться, т. е. никакие строки или столбцы не должны исключаться. Существуют два способа, с помощью которых, не нарушая указанных требований, можно удовлетворить граничным условиям, не учтенным при формировании элемента. Положим, что имеется некоторая система N уравнений
12 22
п2 пл • • • nN
(20.П)
и, скажем, щ = а.
В соответствии с первым способом столбец нагрузки видоизменяется так, что F{ = Fi - kna {i = 2, N) и = a. Тогда соответствующая строка и столбец становятся нулевыми, а диагональный член - единичным. В частном, но часто встречающемся случае, когда а = О (т.е. опора неподвижна), необходимо изме-
НИТЬ матрицу описанным выше способом, оставляя матрицу нагрузки неизменной, кроме члена Fi= 0.
Второй способ состоит в умножении соответствующего диагонального элемента матрицы на некоторое большое число, скажем 10*, перед модификацией соответствующего коэффициента нагрузки. В рассматриваемом случае мы бы получили
fe„ = fell-108, f = fe„-108-a,
kij - kij (за исключением случая, когда г = 1, / = 1),
В полученном решении «i будет почти равно а. Этот способ пригоден для любых методов решения.
Во многих случаях возникает необходимость определять силы реакции в граничных точках, например реакции мостовых опор или контрфорсов плотин.
Если требуется определить реакции, то при обратном ходе необходимо преобразовать соответствующие уравнения так, чтобы вместо определения в точке опоры неизвестного перемещения по известной нагрузке отыскивалась неизвестная нагрузка по известному перемещению. В соответствии с первым из уравнений (20.11) получаем следующее выражение для силы реакции:
20.5.7. Пример подпрограммы
Ниже приведены блок-схемы и тексты двух подпрограмм. Подпрограмма FORMK используется для построения ленточной прямоугольной матрицы жесткости и учета граничных условий первым способом, описанным в предыдущем разделе (при а=0). Подпрограмма SOLVE применяется для решения систем алгебраических уравнений методом ленточных матриц )• Блок-схемы приведены на стр. 488 и 489.
Обозначения переменных в подпрограмме FORMK
NBAND Максимально возможная в про-
грамме ширина ленты
NROWB, NCOLB, NCOL Переменные, определяющие поло-
жение элемента матрицы жесткости
) В приложении 20В приведены другие подпрограммы, несовместные с си-, стемой FFSS.
NR, NX
ESTIFM* (12,12)
Переменные, используемые для
записи граничного условия Матрица жесткости элемента
Обозначения переменных в подпрограмме SOLVE NBAND Максимально возможная в про
R1 * (200)
грамме ширина ленты Счетчик числа уравнений для исключения и обратного хода Рабочая переменная для процесса
исключения Вектор правых частей; в конце работы программы на его место помещается решение
Программа 20-5 SUBROUTINE FORMK
С формирование верхнего треугольника матрицы жесткости