© Ф.Пинежанинов,
П.Пинежанинов
В начало
Зеркало: http://pinega.da.ru/
В предыдущей статье "Базисные
функции для конечных элементов"
предложена технология построения базисных
функций для конечных элементов на основе
преобразования некоторого исходного
конечномерного семейства линейно независимых
функций. В статье "Свойства
базисных функций" предложена схема анализа
вычислительных свойств систем функций, и
приведено множество конечных элементов.
Построение базисных функций осуществляется
на основе выражения: где
семейство - исходная система функций,
а коэффициенты определяются из обращения
матрицы значений исходной системы в узлах
конечного элемента ( столбец соответствует
узлу). В качестве исходной системы обычно брали
простейший полиномиальный базис
типа:
Эта чисто алгебраическая технология неплохо
работает на большинстве элементов, однако, на
некоторых элементах дает сбои: на треугольном
кубическом с 9 узлами в плоском случае, и на 32
узловом кубическом в трехмерном случае. Есть
проблемы и в некоторых других случаях, например,
некоторых комбинациях линейно –квадратично
-кубичных трехмерных элементов.
В чем проблема? Ведь исходная система функций
линейно независима - это очевидно! Обратим
внимание, что базисные функции мы строим на
основе обращения матрицы, а для этого необходимо,
чтобы определитель этой матрицы был ненулевой,
другими словами - строки и столбцы матрицы
значений исходной системы на узлах элемента
должны быть линейно независимы тоже. Это
свойство системы функций иногда называют
униразрешимостью или унисольвентностью.
Сформулируем это свойство несколько иначе:
Пусть в функциональном пространстве система
функций образует подпространство, тогда для
существования в этом подпространстве конечно
элементного базиса на заданном семействе
узлов необходимо и достаточно линейной
независимости векторов сужения этих функций на
семейство этих узлов. При этом надо иметь в виду,
что вектора сужения можно построить двояко: или в
виде значений конкретной функции на множестве
узлов, или в виде значений семейства функций в
конкретном узле.
Как же справляться с этой проблемой? В
первом случае, описанном выше, еще можно
догадаться и искуственным способом избавиться
от проблемы, как это и сделано в статье "Базисные функции для конечных
элементов", но рекомендовать её как общую
процедуру нельзя. Нужен другой способ
построения исходной системы функций, который
позволял бы более эффективно добиваться ее
униразрешимости . Поиску и проверке такой
технологии и посвящена эта статья.
В работах Зенкевича и Галлагера
для построения базисных функций квадратичного
элемента предлагается следующий подход -
"Сначала, взяв соответствующий многочлен
Лагранжа второй степени по одному направлению и
умножив его на линейную функцию по другому
направлению, непосредственно найдем базисные
функции для узлов в серединах сторон. Это
позволяет получить на сторонах многочлен нужной
степени, и автоматически будет выполнено
условие, что ассоциируемая с конкретным узлом
базисная функция должна принимать значение
единица в этом узле и равняться нулю во всех
других узлах ". Для построения узловых узлов
этими авторами предлагается использовать
линейную комбинацию базисных функций для 4
узлового элемента и построенные функции
деленные пополам, для обнуления значений по
серединам ребер.
Для единичного квадрата исходную систему
функций можно взять в обычном алгебраическом
виде , но возьмем иначе - в виде
произведений линий, окружающих, но не включающих
узел, и так поступим для каждого узла.
-256.
1
Видим, что при выборе исходного семейства
как произведений прямых линий окружающих
узлы, но не включающих их в себя и использования
алгоритма предложенного в статье "Базисные
функции для конечных элементов" дает
результаты совпадающие с результатами статьи
"Свойства базисных функций". В дальнейшем
подобный способ построения исходного семейства
будем называть геометрическим или
,методом окаймления узлов, чтобы подчеркнуть его
логическую основу с одной стороны и отличать его
от обычного полиномиального или алгебраического
с другой стороны.
Аналогичный прием описали Митчелл и
Уэйт для построения базисных функций
треугольника: они проводили обнуляющие прямые,
включающие в себя все узлы, кроме того, для
которого строится базисная функция и назвали эту
процедуру геометрическим методом построения
базисных функций.
Далее попробуем применить этот подход к
построению базисных функций для элементов с
точками на гранях элементов при этом будем
полностью обнулять узлы в окрестности точек на
гранях, а для угловых узлов будем обнулять только
грани не содержащие этот узел. Это можно сделать,
так как базис в нашем алгоритме строится как
линейная комбинация исходного семейства и,
следовательно, автоматически выполнится
предложение Зенкевича и Галлагера. Проверим это
на классическом квадратичном элементе:
4096.
1
-64.
{0,0,0,0,0,0,0,0}
Вычисление последнего выражения Simplify[A-Bn]
показывает, что разные исходные семейства дают
один и тот же базис. Обратим внимание, что
определитель матрицы значений исходного
семейства принимает разные значения, что внушает
некоторый оптимизм, так как возможно удастся
избавиться от его нулевых значений в некоторых
нетривиальных случаях.
Продолжим рассмотрение для кубичных элементов:
1
В дальнейшем нам часто надо будет вычислять
прямую линию проходящую через две точки, поэтому
оформим это в виде функции F(x,y)=0 и проверим это:
1
{0,0,0,0,0,0,0,0,0,0,0,0}
Пространство C0 Число обусловленности =
83.9878 Теряем цифр 1.92422
Пространство C1 Число обусловленности =
293.435 Теряем цифр 2.47339
Видим, что и в этом случае базисные функции
построенные на основе алгебраического подхода и
геометрического совпадают. Отметим, что смежную
точку мы обнуляли линией паралельной осям
координат Fline[ 1/3,-1,1/3,1],
Как показывает следующий пример можно
использовать не обязательно такие линии,а
например перекрестно для сохранения
симметричности исходного базиса Fline[ 1/3,-1,-1/3,1].
Интересно, что оба базиса имеют примерно
одинаковые числа обусловленности, поэтому
сложно предпочесть один другому.
1
Пространство C0 Число обусловленности =
53.7616 Теряем цифр 1.73047
Пространство C1 Число обусловленности =
297.435 Теряем цифр 2.47339
Попробуем эту технологию на сложном кубично -
треугольном элементе, для которого нет
очевидного аналога в алгебраической системе
функций:
-64 / 387420489
1
Пространство C0 Число обусловленности =
18.0674 Теряем цифр 1.25689
Пространство C1 Число обусловленности =
1990.18 Теряем цифр 3.29889
{0,0,0,0,0,0,0,0,1}
Еще один вариант - когда линии, обнуляющие
смежные узлы сходятся в центре треугольника.
Тоже не плохо получается и выбор между двумя
системами базисных функций сделать непросто:
-64 / 282429536481
1
Пространство C0 Число обусловленности =
18.0674 Теряем цифр 1.25689
Пространство C1 Число обусловленности =
2600.38 Теряем цифр 3.41502
Подведем некоторые итоги - для построения
базисных функций, есть две технологии:
алгебраическая и геометрическая. При этом
вычислительные эксперименты показывают, что геометрическая
технология, или окаймление прямыми линиями,
обладает большей наглядностью и легко
справляется с проблемами, которые для
алгебраической технологии сложны и требуют
различных ухищрений.
В двухмерном случае для построения исходного
семейства использовались прямые линии
окружающие, но не включающие в себя узел на
середине стороны. Естественным аналогом линии в
трехмерном пространстве является плоскость,
поэтому исходную систему функций будем
строить как произведение плоскостей окружающих
узел, но не включающих его ни в одну из них.
В дальнейшем нам часто надо будет вычислять
плоскость, проходящую через три точки,
поэтому оформим это в виде функции и проверим
это:
20
-281474976710656
1
Пространство C0 Число обусловленности =
227.721 Теряем цифр 2.3574
Пространство C1 Число обусловленности =
207.733 Теряем цифр 2.31751
Сравнивая с аналогичным элементом, полученным
из алгебраического исходного семейства в статье
"Свойства базисных функций", видим, что
получили такие же базисные функции, то есть метод
окаймления или геометрический метод построения
исходного базиса пространства работает и в
трехмерном случае. В случае линейных и
квадратичных элементов все однозначно. А в
случае кубичных элементов, как и в плоском
случае, есть выбор для проведения плоскости,
обнуляющей соседний на ребре узел.
На трехмерном кубичном элементе при
использовании алгебраического исходного
семейства возникли проблемы. Посмотрим как будет
выглядеть ситуация с методом окаймления:
32
4.6905e27
1
Пространство C0 Число обусловленности =
825.925 Теряем цифр 2.91694
Пространство C1 Число обусловленности =
861.046 Теряем цифр 2.93503
Видим, что метод окаймления узлов плоскостями
дает и в этом случае прекрасные результаты, и
получаются базисные функции с неплохим числом
обусловленности для такого большого числа узлов.
Чтобы не создавалось впечатления что все
проблемы построения базисных функций решены, и
жизнь медом не казалась, предлагаю читателю
попробовать построить базисные функции для
такого элемента и в случае удачи прошу сообщить
мне:
Конечные элементы - важный инструмент
прикладной математики и можно еще много написать
о их различных вариантах. Цель этих трех статей
была описать, что такое конечный элемент с
математической точки зрения - набор точек в
пространстве, набор базисных функций и правило
линейной интерполяции. Предложен способ
построения базисных функций на основе
некоторого исходного семейства функций, способ
анализа вычислительных свойств и что самое
интересное - метод окаймления узлов плоскостями
для построения исходных семейств функций. Еще,
наверное, стоило показать как использовать
окаймление для построения элементов с
производными в качестве степеней свободы, но, по
моему мнению, это почти очевидно - добавить еще
плоскостей некоторым разумным образом. Это же
касается и введения внутренних мод или узлов на
поверхности. В статьях в качестве примеров
использовались элементы сирендипова семейства
как наиболее эффективные, по мнению большинства
авторов с одной стороны, а с другой хотелось
показать, что удачу - которой мы обязаны за это
семейство можно и организовать, если очень
захотеть и не лениться. Как говорил Александр
Васильевич Суворов "везенье, везенье - надо же
и уменье...".
Если понадобится использовать базисные
функции при программировании - вспомните о
чудесных функциях программы Mathematica: CForm и
FortranForm и аналитическом дифференцировании, это
здорово облегчает нелегкую жизнь программиста.
Следующие статьи будут посвящены
параметрическим преобразованиям элементов,
дифференцируемым многообразиям или ансамблям
элементов, учету различных условий на поведение
интерполируемых на многообразиях функций и
другим смежным вопросам.
Если у читателя возникнут какие-то вопросы по
обсуждаемому материалу, то обязательно
постараюсь ответить.
- Галлагер Р. Метод конечных элементов.
Основы: Пер.с англ.-М.: Мир,1984.
- Зенкевич О., Морган К. Конечные
элементы и аппроксимация: Пер.с англ.-М.: Мир,1986.
- Митчелл Э.,Уэйт Р. Метод конечных
элементов для уравнений с частными производными:
Пер.с англ.-М.: Мир,1981.
Санкт-Петербург, март 2000 года
В начало |