Метод конечных элементов (1061787), страница 65
Текст из файла (страница 65)
20.1. Однако при этом общее число уравнений, которое может быть решено; ограничивается размерами прямоугольного -массива. Вьиислитальные мегодьс и програилаьа числа. С помощью этого метода можно решизь практически неограниченное число уравнений при условии конечности максимальной ширины ленты. В большинстве случаев при решении задачи методом конечных элементов точность не является проблемой. При необходимости можно решать уравнения с двойной точностью, однако при этом увеличиваются используемый объем памяти и время решения.
В некоторых случаях точность можно повысить, если подставить полученные значения в первоначальную систему уравнений и вычислить невязки, а затем, используя эти невязки в качестве новых правых частей, снова решить систему. Сумма этих двух решений даст уточненное решение. Однако чаще эти невязки используются для оценки ошибок округления. 20Х2.
Зкономное распределение памяти для решения ленточных систем Чтобы уменьшить используемый объем памяти вычислитель. ной машины, в программе решения больших систем ГЕЫ (в настоящей главе не приводится) для хранения. в памяти верхней хх х х -элеменаы, нв ххх араннщшси бппмапц хх Фиг. 20.2. Порядок размещения в памяти уравнений в программе РЫБ. треугольной части матрицы жесткости, необходимой при исключении самого верхнего уравнения, используется одномерный массив.
Пример расположения в памяти элементов матрицы показан на фиг. 20,2. В этом примере элементы матрицы располагаются по столбцам, так как это удобнее, чем построчное расположение. В программе РЕЮ матрицы, необходимые для обратного хода ~уравнение (20.5)~, хранятся в верхней части одномерного массива. Если матрица жесткости и эти матрицы перекрывают друг друга, содержимое остатка переписывается на ленту и процесс повторяется. Такой способ достаточно эффективен, так как позволяет использовать длинные записи на ленту, В некоторых случаях удается решить уравнения без использования внешней памяти. Глййа 2д 20.5.3. Итерационный метод Гаусса — Зейделя В общем случае и-е уравнение системы Ж уравнений может быть записано в виде е-! !Ч ~ й„!б! + й„„б„+,~.
И„<Ь, = Р„. (20.7) Из этого уравнения можно найти Если процесс итераций таков, что в правой части используются последние приближения б;, то для т-й итерации имеем В этом заключается итерационный процесс Гаусса — Зейделя. Часто для уточнения решения используется прием, состоищий в умножении разности между двумя итерациями для б на некоторый коэффициент и представлении уточненной величины 6 в виде + й„'* — б,',, ), (20.10) где о~* — величина, вычисленная в соответствинс (20.9), а р— коэффициент еерхней релаксации, значение которого обычно лежит между 1 и 2.
Установлено, что во многих практических случаях самым подходящим является значение, близкое к 1,8. Итерационный метод Гаусса — Зейделя легко программируется. Матрица жесткости хранится в компактной форме без нулевых членов вместе с матрицей-указателем номеров столбцов, в которых находятся ее элементы. Каждое уравнение ите* рируется в соответствии с (20.9), и найденное значение уточняется в соответствии с (20.10).
Процесс повторяется столько раз, сколько необходимо для получения приемлемого решения, причем сходимость обычно оценивается путем вычисления разности между двумя последовательными приближениями. Итерационные методы удобны для решения нелинейных задач, так как при их использовании обычно требуется решение ряда сходных задач, поэтому для вектора решения всегда есть удачное начальное приближение.
Кроме того, если на промежуточных этапах ограничиться невысокой точностью решения, то число арифметических операций уменьшается. Недостатком использования итерационных методов является необходимость повторения основного цикла для всех уравнений. Вьииелательные методы и программы Поэтому при использовании для хранения уравнений внешней памяти процесс решения занимает много времени.
Однако компактное расположение матрицы жесткости дает. возможность решать большое число уравнений с использованием только оперативной памяти, например 1000 дополнительных уравнений на 32К слов памяти. Главный же недостаток итерационных методов состоит в том, что при решении, как правило, может быть рассмотрен только один вектор нагрузки, так как перемещения занимают почти всю память.
В приложении 20А приведены две подпрограммы: ГОКМК (формирование матрицы жесткости и соответствующей матрицы- указателя) и ЯОИ~Е (решение системы уравнений итерационным методом Гаусса — Зейделя). Это упрощенные подпрограммы, в которых заданы число циклов и пределы сходимости. Кроме того, в них используется взаимно однозначное соответствие между матрицей жесткости и матрицей-указателем. Эти подпрограммы совместимы с остальными подпрограммами, приведенными в этой главе.
Заметим, что подпрограмма ГОКМК вычисляет члены, лежащие как выше, так и ниже диагонали компактной матрицы жесткости, и этим она отличается от другой подпрограммы ГОКМК (программа 20-5), которая используется при применении прямого метода решения, 20.5.4. Некоторые др~гие прямые методы Видоизменением метода исключения, используемого в случае ленточных матриц, является так называемый метод редкозаполненных матрац, часто применяемый в экономических расчетах.
В соответствии с этим методом подматрица записывается в компактной форме вместе с матрицей-указателем, назначение которой состоит в указании номера строки и столбца полной матрицы. При решении задач методом конечных элементов с одинаковым числом степеней свободы в каждом узле матрица-указатель может быть записана в компактной форме для того, чтобы соответствовать узловым подматрицам. В методе редкозаполненных матриц исключение производится точно так же, как описано выше, но при этом в качестве индекса используется матрица-указатель.
Преимущество, получаемое за счет избавления от некоторых операций, необходимо сравнить с дополнительными затратами времени на отыскание элемента в полной матрице с помощью матрицы-указателя. Требуемый объем памяти зависит от числа ненулевых подматриц на каждом шаге процесса исключения и не зависит от ширины ленты.
Следует отметить, что при исключении на местах, где .раньше стояли нули, появляются ненулевые подматрицы. Для максимально эффективного использования памяти и времени Глава 20 уравнения следует упорядочить так, чтобы в матрице в каждый момент содержалось минимальное число элементов. Определение оптимального порядка является сложной задачей динамического программирования, и для ее решения могут использоваться другие приближенные методы Д.
С помощью аналогичного упорядочения уравнений можно минимизировать число операций в ленточных методах. Однако при этом ширина ленты может сильно увеличиться, что сведет на нет все преимущества метода. В приложении 20Б приведены подпрограмма ГОКМК составления матрицы жесткости (верхней треугольной части в форме прямоугольника) вместе с соответствующей матрицей-указателем и подпрограмма БОНЬЕ решения систем уравнений методом редкозаполненных матриц.
Более существенными отличиями обладает фронтальный метод реиения. Как и в методе редкозаполненных матриц, матрица жесткости записывается в компактной форме вместе с матрицей-указателем. Однако здесь исключение производится по элементам независимо от нумерации узлов.
Своим названием метод обязан тому, что в процессе решения создается некоторый фронт, проходящий через систему узлов. Метод применяется главным образом при наличии дополнительных узлов на сторо,нах элементов, так как он может привести к значительной экономии памяти по сравнению с ленточным методом. Преимущество использующей метод фронтального исключения системы Р1КЕЮЕ особенно заметно при использовании элементов высоких порядков и в том случае, когда основное внимание уделяется характеристикам элементов. Поскольку, например, предпочтительна поэлементная выдача, число расчетных параметров нагружения, которое может быть помещено в оперативной памяти вычислительной машины, значительно увеличивается. В каждый момент времени в процессе исключения в оперативной памяти машины находятся только сведения о векторе нагрузки. Фронтальный метод решения наиболее эффективен при ре-.
шении больших задач с применением трехмерных элементов. 20,б.б. Некоторые специальные приемы Для улучшения более крупных программ могут использоваться некоторые специальные приемы: а) Выделение подконструкций. Вместо того чтобы решать полную систему уравнений, иногда бывает удобно строить новую матрицу меньшей размерности. Этот прием позволяет построить матрицу жесткости для совокупности элементов, в которой все точки, кроме внешних, исключены„ Вычислительные методы и программы б) Включение дополнительной жесткости, В дополнение к выделению подконструкций используется введение в полную матрицу жесткости специальных дополнительных жесткостей.
Это позволяет непосредственно учитывать, например, граничные условия, описывающие упругое опирание. Эти два приема особенно полезны при решении нелинейных задач, в которых большая часть конструкции остается линейно- упругой. В таких случаях линейно-упругая часть конструкции заменяется некоторой подконструкцией в виде линии или поверхности, примыкающей к исследуемой области нелинейности, а затем решается нелинейная задача при упругом граничном условии. Получающаяся нелинейная задача значительно меньше по объему.