Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Метод окаймления для построения базисных функций

© Ф.Пинежанинов, П.Пинежанинов

В начало
Зеркало: 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 и аналитическом дифференцировании, это здорово облегчает нелегкую жизнь программиста.

Следующие статьи будут посвящены параметрическим преобразованиям элементов, дифференцируемым многообразиям или ансамблям элементов, учету различных условий на поведение интерполируемых на многообразиях функций и другим смежным вопросам.

Если у читателя возникнут какие-то вопросы по обсуждаемому материалу, то обязательно постараюсь ответить.

Литература

  1. Галлагер Р. Метод конечных элементов. Основы: Пер.с англ.-М.: Мир,1984.
  2. Зенкевич О., Морган К. Конечные элементы и аппроксимация: Пер.с англ.-М.: Мир,1986.
  3. Митчелл Э.,Уэйт Р. Метод конечных элементов для уравнений с частными производными: Пер.с англ.-М.: Мир,1981.

Санкт-Петербург,  март 2000 года

В начало

| На первую страницу | Поиск | Купить Matlab

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


Copyright © 1993-2024. Компания Softline. Все права защищены.

Дата последнего обновления информации на сайте: 04.03.17
Сайт начал работу 01.09.00