Применение технологии NURBS для построения геометрии, генерации сеток и расчёта начально-краевых задач
А. С. Минкин Институт математического моделирования РАН, Россия, 125047, Москва, Миусская пл., д. 4А, тел. (+7 495) 2507986, e-mail
amink@mail.ru.
Введение
Развитие компьютерных технологий сделало вычислительный эксперимент мощным и эффективным способом решения проблем прикладной математики. Появление новых математических моделей и численных методик делает необходимым разработку специализированных программных систем, позволяющих сократить полный цикл исследований конкретных фундаментальных и прикладных задач за счёт автоматизации всех необходимых для этого этапов. Программные средства, разрабатываемые для этой цели[1], должны обеспечивать поддержку различных видов вычислительной работы таких, как построение геометрической модели области решения задачи, генерацию расчетной сетки, составление системы сеточных уравнений соответственно принятой математической модели, выполнение расчёта и обработку и визуализацию полученных данных.
Подготовка геометрии и генерация сетки являются вспомогательными этапами по отношению к основной задаче решения уравнений математической физики. Однако, для задач, определенных в пространственных областях с криволинейными границами, вопросы подготовки и анализа геометрических данных настолько усложняются, что превращаются в самостоятельные проблемы.
Возможность задания реальной геометрии изучаемых объектов - важнейшее требование к прикладному программному обеспечению. Данную задачу удобно решать с помощью специализированных CAD систем. От CAD системы зависит модель представления геометрии объекта, набор примитивов, из которых составляется геометрия, и способ описания каждого из примитивов.
Одним из распространенных методов описания пространственных тел является граничное представление, которое в сочетании с параметрическим способом задания поверхностей удобно использовать для подготовки данных при решении начально-
краевых задач математической физики, т.к. сами границы в этом случае определяются функционально. Кроме граничного представления, содержащего полный набор необходимой информации для автоматической генерации нерегулярной сетки, используется каркасная модель в двумерном случае и модель представления тела в виде набора поверхностей, удобная для задания внутренних границ расчётной области. Последнее может применяться на промежуточных стадиях проектирования, а также для описания внутренних границ трехмерного тела.
Параметрический способ описания геометрических элементов модели при условии, что между параметрическим и реальным пространством есть взаимнооднозначное соответствие, может быть успешно применен для построения структурированных^] и блочно-структурированных сеток. В случае, если расчётная область состоит из набора сегментов, содержащих дыры и сложные границы, задача решается построением нерегулярной сетки[3].
Выбор геометрических примитивов, а также вида их параметрического описания производится из соображений универсальности. Такой геометрической моделью является модель Non-Uniform Rational B-Spline (NURBS)[5,6], позволяющая описывать различные формы кривых и поверхностей, к которым можно отнести конические сечения, квадрики, поверхности вращения и, в частности, любые прямолинейные формы. Возможность задания как криволинейных, так и прямолиненых форм позволяет использовать NURBS модель в качестве основного и даже единственного примитива для описания геометрических элементов модели объекта.
Модель NURBS стандартизована в универсальных форматах обмена геометрическими данными, например, в известном формате STEP, что позволяет использовать CAD системы для задания геометрии, а затем производить импорт данных в модуль генерации сетки, использующий параметризацию NURBS для дальнейшей подготовки расчётных данных. В зависимости от характера решаемой задачи, NURBS параметризация применяется для построения как структурированных, так и гибридных сеток. Импорт топологической и геометрической информации из STEP является одной из ключевых функций рассматриваемого программного комплекса.
Полный цикл подготовки данных, включающий определение геометрии, задание граничных условий (каждое из которых сопоставляется определенной геометрической сущности) и генерацию сетки завершается расчётом -основным этапом решения начально-краевой задачи. Алгоритм расчёта в данной методике основан на методе конечных элементов[7]. Для представления криволинейной геометрии и повышения точности вычислений в условиях неоднородности среды применяются элементы высокого порядка. КЭ подход совместно с технологией NURBS[8,9], позволяет повысить качество расчёта, адекватность геометрического описания и управлять порядком аппроксимации.
Модель NURBS
В современных системах автоматизированного проектирования модель NURBS является стандартом de facto описания сложных кривых и поверхностей, что обусловлено следующими свойствами NURBS кривых:
• NURBS модель предоставляет возможность описать достаточно широкий круг кривых, в частности, кривые Безье и конические сечения.
• NURBS - составная параметрическая кривая, что позволяет при аппроксимации объектов сложной формы избежать нежелательных осцилляций, характерных для интерполяционных многочленов высокой степени.
• NURBS задается вершинами определяющего многоугольника, с помощью которого удобно управлять формой кривой (рис. 1).
• При локальном изменении узлов не нужно заново вычислять всю кривую.
• NURBS кривая порядка к лежит внутри объединения выпуклых оболочек к последовательных вершин определяющего многоугольника.
• Аффинные и проективные преобразования NURBS кривой применяются к вершинам определяющего многоугольника.
• Алгоритмы вычисления NURBS работают быстро и эффективно.
Перечисленные особенности NURBS кривых, определяемые свойствами B-
сплайн базиса, также характерны для NURBS поверхностей и объемов. Рассмотрим подробнее B-сплайн базис.
Пусть T = {t0, . . . , tr} - неубывающая последовательность действительных чисел. Назовем T узловым вектором, а числа ti - узлами. Обозначим Ni,k(t) i-ю базисную функцию порядка к и определим её следующим образом [5]:
Nn (t) = |1' есДИ ^ '''^+1'
' [0, в противном случае;
NiJC (t) = (t) + (¿^N+u-i (t).
ti+k-1 ti i+k ti+1
Величины ti - это элементы уздового вектора, удовлетворяющие соотношению t0 < ti < ti+1 < tr. Кроме того, будем считать, что 0/0=0. Таким образом, значения параметра изменяется вдоль узлового вектора от tmin = t0 до tmax = tr. Базисные функции B-сплайн обладают следующими свойствами[6]:
1. Ni,k(t) = 0 для значений t вне интервала [ti, ti+k). Базисные функции B-сплайн имеют ограниченный носитель.
2. Для t s[ti, tt+1) не более k базисных функций принимают ненулевые
значения, а именно Ni-k+lk(t), . . . , Nik(t).
3. Базисные функции неотрицательны, т.е. Nik(t) > 0 V i, k, t.
4 -k+1 nm(t) =1 для tФ,ti+1).
Для вычисления NURBS кривой используется следующая формула, учитывающая локальный характер B-сплайн базиса:
Р (t ) =
У ' B1hiNlk (t)
¿—ij=i-(k-1) J J Jk V /
У J=i-(k-1) hJNJk(t)
где Bj - J-я вершина многоугольника в 3D пространстве для рационального В-сплайна, а
hj - J-й весовой коэффициент, сопоставленный этой вершине Bj.
Таким образом, для того чтобы задать NURBS кривую порядка k необходимо указать определяющий многоугольник (B0, . . . , Bn), вектор весовых коэффициентов (h0, . . . , hn) и узловой вектор (t0, t1, . . . , tk-1, tk, . . . , tr-k-1, tr-k, . . . , tr-1). Узловой вектор задаёт параметры сегментов составной В-сплайн кривой. Длина узлового вектора равна r = n+k+1. Обычно в CAD системах используются открытые узловые вектора, в которых t0 = . . . = tk-1 и tr-k = . . . = tr-1. Важнейшее свойство NURBS с открытыми узловыми векторами состоит в том, что P(t0) = B0 и P(tr-1) = Bn, т.е. граничные точки кривой совпадают с первой и последней точками определяющего многоугольника. Использование кратных узлов локально снижает порядок гладкости
NURBS кривой (рис. 1). В то же время, кратные вершины определяющего многоугольника позволяют моделировать острые углы и изломы при сохранении порядка гладкости кривой.
Рис.1. Модель NURBS кривой с кратными узловыми значениями. Слева изображены базисные функции, справа - соответствующая NURBS кривая
и её определяющий многоугольник
NURBS поверхности можно вычислить по следующей формуле:
Q (u , V )
X 1 = г - ( * - 1) X p = j - (l - 1) hs , pBs , pN s ,* (u ) M p l (V )
X 1 = i - ( * - 1) X P = j - (l - 1) hs , PN s ,* (u ) M p , / (V )
Xi < u < Xi+1, yj < v < yj+1; где Bsp - вершины многогранника в 3D пространстве, а hsp - соответствующие весовые коэффициенты.
Поверхности NURBS широко используются в геометрическом моделировании как для описания изолированных поверхностей, так и для задания границ объемных тел.
Объемы могут быть аналогичным образом заданы с помощью NURBS:
Q (u, v, w) =
X ¿J = i - ( к-1) X i2 = ii - ( p-1) X i3 = iii - ( r-1) B1 i i h1 i i N1, * (u ) Mi2, P (v ) S3 ,r (w )
~X X X hT"^
= i - (к-1)Z—l i2 =ii - (p-1)^—1 i3 = iii - (r-1) i1 ,i2 ,i3 i1, kV / i2, pV / ¿з,г V /
где Xi < u < Xi+1, yu < v < yu+j, zui < w < zm+j. Базисные функции N(u), M(v) и S(w) вычисляются аналогично случаю NURBS кривой.
Программная реализация NURBS модели используется для построения различных её модификаций. В частности, введение весовой функции h(u,v) в зависимости от параметрических координат позволяет варьировать форму объектов, не изменяя исходных координат контрольных точек (рис. 2). Формула для вычисления такой поверхности может быть записана следующим образом:
Q ( u , V )
У
i = i - ( k - 1)
1) У
p = J-(l-1)
1) hs,p (u , V ) Bs,p N s,k (u )M p,1 (v )
У
i = i - ( k - 1)
., У
p = J-(l-1)
1) hs, p ( u , v ) Ni, k (u ) M p ,1 (v )
Рис. 2. NURBS модель кольца (слева) и соответствующая ей модель (справа), реализующая линейное изменения отдельных весов в зависимости от параметрического направления u
Модели представления геометрии, импорт STEP и генерация сеток
Рассмотрим основные типы геометрических моделей объектов, применяемых в системах геометрического моделирования. Топологико-геометрическая модель, используемая CAD системой для представления объектов, во многом определяет последующий этап подготовки геометрических данных, связанный с генерацией сетки. Наиболее распространенными моделями являются твердотельные, каркасные и модели в виде набора связанных поверхностей. Контекст представления геометрического объекта определяет процедуру импорта геометрии из файлов формата STEP для последующей генерации сетки, которая производится на основании данных о NURBS параметризации соответствующих элементов геометрической модели.
В каркасной (wireframe) модели форма объектов задаётся в виде набора характеризующих ее линий и конечных точек. Математичекое описание содержит NURBS параметризацию кривых, координаты вершин и сведения о принадлежности вершин кривым. Каркасная модель не позволяет задавать трехмерные объекты однозначным образом, но эффективно используется для описания двумерных расчётных областей (рис. 3) и для последующей генерации треугольной сетки.
Рис. 3. Двумерная каркасная модель геометрии с внутренним контуром и ограничениями, к которым адаптируется сетка
Модель в виде набора поверхностей содержит не только описание объекта на уровне контурных кривых, но и данные о поверхностях. Набор поверхностей может образовывать или не образовывать замкнутый объем. Поверхностная модель применяется для задания и последующей дискретизации трехмерных областей с внутренними границами (рис. 4).
Рис. 4. Surface Representation: моделирование внутренних границ
трехмерного объекта
Наиболее распространенная твердотельная или граничная модель определяет объект в виде набора поверхностей, образующих замкнутый объем. Если область состоит из набора триммированных NURBS сегментов[4], задача дискретизация решается построением нерегулярной сетки (рис. 5). Данный алгоритм основан на
поиске параметрической подобласти, что обеспечивается алгоритмами нахождения пробразов точек вблизи В-сплайн кривых и поверхностей[3].
Рис. 5. Твердотельная модель и её дискретизация
В случае, если область представима в виде набора блоков, для построения сетки используется объемная NURBS параметризация (рис. 6).
Рис. 6. Построение блочно-структурированной гексагональной сетки на основе объемной NURBS параметризации
Заключение
NURBS - эффективная технология, положенная в основу реализации современного комплекса программ, осуществляющего полный цикл подготовки данных и расчёта начально-краевых задач в геометрически сложных областях. Данный пакет программ включает алгоритмы и средства анализа геометрической и топологической информации при импорте формата STEP, алгоритмы генерации сеток и КЭ расчёта. Программная система делает возможным использование гибридных сеток разнотипных элементов, в том числе и NURBS элементов, а также различных типов граничных условий.
NURBS используется в качестве единственного примитива для задания геометрии расчётной области. Данный подход применяется в реализации геометрических ядер CAD систем, полностью основанных на программной реализации модели NURBS. Использование единой геометрической модели позволяет избежать программирования других примитивов и непосредственно перейти к задачам, связанным с генерацией сеток и расчётом. Модель NURBS была успешно применена для реализации следующих алгоритмов генерации сеток:
1. алгоритм триангуляции поверхностей, состоящих из совокупности сегментов сложной формы;
2. алгоритм генерации гибридных сеток, объединяющего методы параметрических отображений и построения триангуляций;
3. алгоритм генерации трехмерных сеток, объединяющих кинематические методы, методы параметрических отображений и построение тетраэдральных сеток;
Программная реализация NURBS позволяет также вводить в стандартную модель дополнительные возможности и модификации для гибкого управления процессом задания геометрии и генерации сетки.
Таким образом, модель NURBS может быть эффективно использована не только для задания геометрии, но и на последующих этапах решения начально-краевых задач, связанных с генерацией сеток, а также расчётом методом конечных элементов. NURBS технология является дальнейшим развитием суперэлементного подхода.
Технология NURBS успешно применена для расчёта прямых задач фильтрации и для исследования трехмерных нестационарных тепловых процессов в нелинейных средах.
Литература
1. Б. Н. Четверушкин, В. A. Гасилов, С. В. Поляков, E. Л. Карташева, M. В. Якобовский, И.В. Абалакин, В. Г. Бобков, А. C. Болдарев,С. Н. Болдырев, С. В. Дъяченко, П. С. Кринов, А. С. Минкин, И. А. Нестеров, O. Г. Ольховская, И. В. Попов, С. А. Суков. Пакет прикладных программ GIMM для решения задач гидродинамики на многопроцессорных вычислительных системах. -Математическоемоделирование, 2005г., том 17, номер 6, с. 58-74.
2. Флетчер К. Вычислительные методы в динамике жидкостей. В 2-х томах: Т. 2:. Пер. с англ. — М.: Мир, 1991.
3. Е. Л. Карташева, А. С. Минкин, В. А. Гасилов Метод триангуляции составных поверхностей, состоящих из B-сплайн сегментов сложной формы. -Математическое моделирование, 2007 г., том 19, номер 10, с. 44-60.
4. Les A Piegl, Wayne Tiller Geometry-based triangulation of trimmed NURBS surfaces, Computer-Aided Design, Vol.30, No.1, pp 11-18, 1998.
5. Д. Роджерс, Дж.Адамс Математические основы компьютерной графики. - М.: Мир, 2001.
6. Les A Piegl , Wayne Tiller The NURBS book. Second edition. - Springer, 1997.
7. Зенкевич О., Морган К. Конечные элементы и аппроксимация: Пер. с англ. -М.: Мир, 1986.
8. W. Poschl B-Spline Finite Elements and their Efficiency in Solving Relativistic Mean Field Equations. - Comput.Phys.Commun. 109 (1997) pp. 1-25,arXiv:nucl-th/9808066v1.
9. S. Hafner, M. Kessel, C. Konke Multiphase B-Spline finite elements of variable order in the mechanical analysis of heterogeneous solids. - 17th International Conference on the Application of Computer Science and Mathematics in Architecture and Civil Engineering K. Gurlebeck and C. ^nke (eds.) Weimar, Germany, 12-14 July 2006.