Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы решения задач газодинамики на неструктурированных сетках. В 3 частях. Ч. 2. Разностные схемы. Курс лекций

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

Методы решения задач газодинамики…

11

ется узел. Элементами формата являются узлы и ячейки. Для ячейки хранится номер одного из узлов (опорный узел). Для узла хранятся список соседних узлов (соединенных с рассматриваемым узлом ребром) и список ячеек, окружающих узел (ячейки, содержащие этот узел). Эти два списка упорядочены в порядке обхода против часовой стрелки, при этом между ними устанавливается соответствие по правилу «узел догоняет ячейку» в порядке обхода (рис. 2), т. е. в узле V ячейки C j угол V j+1VV j .

Рис. 2. Информация для узла в формате хранения «по узлам»

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

Для угловых узлов в адресе последнего соседнего узла хранится номер самого узла; таким образом, граничные условия хранятся в последних двух элементах списка соседних ячеек.

На трехмерный случай формат напрямую не обобщается.

Как видно из описания, в данном формате хранится одна величина для ячейки и 2k величин для узла, но поскольку для хранения соседства в узле требуется организация списка, то требуется 2k +2 величины на каждый узел. Таким образом, объем памяти, требуемый для формата, выражается следующей формулой:

M =1N +(2k +2)L.

12Глава I. Форматы описания неструктурированных сеток…

1.2.3.Формат хранения «по ребрам»

Формат «по ребрам» близок к формату методики МЕДУЗА [3]. В методике МЕДУЗА используется представление соседства по треугольникам. Для каждого треугольника хранятся три ребра и три узла, а также ряд дополнительных величин. С другой стороны, для ребра не хранятся номера треугольников, которые оно разделяет.

В формате хранения «по ребрам» основным элементом является ребро. Элементами формата являются ячейки, ребра и узлы. Для ячейки хранится номер одного из ребер этой ячейки.

Для ребра E хранятся (рис. 3):

номера двух узлов V1,V2 , которые соединяет это ребро;

номера двух ячеек C1,C2 , которые разделяет это ребро;

номера двух соседних ребер E1, E2 , выходящих из узлов это-

го ребра и являющихся ребрами ячеек C1,C2 , которые разделяет

это ребро.

При этом вводится следующая упорядоченность пар:

– со стороны первой ячейки C1 пара узлов V1,V2 упорядочена против часовой стрелки (со стороны второй ячейки C2 узлы V1,V2 упорядочены по часовой стрелке);

– ребра E и E1 являются ребрами ячейки C1 и имеют общий

узел V1;

– аналогично ребра E и E2 являются ребрами ячейки C2 и имеют общий узел V2 .

Таким образом, ребра E1 и E2 являются соседями ребра E против часовой стрелки в узлах V1 и V2 соответственно.

Для граничного ребра в качестве первой ячейки всегда выступает номер граничного условия. Таким образом, ребро E1 будет

следующим граничным ребром в порядке обхода против часовой стрелки со стороны расчетной области (рис. 3,б).

Методы решения задач газодинамики…

13

а

б

в

Рис. 3. Информация в формате хранения «по ребрам»:

а – внутреннее ребро; б – граничное ребро; в – граничный узел

Для узла хранится номер одного из ребер, сходящихся в данном узле. Для граничного узла в качестве опорного выбирается правое граничное ребро, если смотреть со стороны границы (рис. 3,в).

Особенностью формата является то, что обход ячейки проще построить по часовой стрелке.

Формат не обобщается на трехмерный случай. Его условным трехмерным аналогом можно считать формат «ребро-грани».

Как видно из описания, в данном формате хранится по 6 величин на ребро и по одной величине на узел и ячейку. Отметим, что это единственный из рассматриваемых двумерный формат, не требующий организации списков. Таким образом, объем памяти, требуемый для формата, выражается следующей формулой:

M=1N +6K +1L.

1.2.4.Формат хранения «по ячейкам»

Этот формат получен на основе формата хранения, который использовался в первой версии библиотеки ЕФР [5]. Доработки формата связаны с хранением ячейки для узла, чтобы избежать операции глобального поиска для определения узлового соседства.

В формате хранения «по ячейкам» основным элементом является ячейка. Элементами формата являются ячейки и узлы.

Для ячейки хранится:

списокузлов ячейки впорядке обхода противчасовой стрелки;

список соседних ячеек в порядке против часовой стрелки.

14 Глава I. Форматы описания неструктурированных сеток…

Список узлов и ячеек упорядочен по правилу «узел догоняет ячейку» (рис. 4,а), т. е. ячейка C j является соседней по ребру V jV j+1.

а

б

Рис. 4. Информация в формате хранения «по ячейкам»: а – информация для ячейки; б – выбор опорной ячейки для граничного узла

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

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

Как видно из описания, в данном формате хранится одна величина для узла и 2i величин для ячейки, но поскольку для хранения соседства в ячейке требуется организация списка, то требуется 2i +2 величины на каждую ячейку. Таким образом, объем памяти, требуемый для формата, выражается следующей формулой:

M =(2i +2)N + L.

Методы решения задач газодинамики…

15

1.2.5. «Реберно-ячеечный» формат хранения

«Реберно-ячеечный» формат хранения является двумерным аналогом формата «по граням», используемым для представления трехмерной сетки в методике ТИМ-3D. Данный формат первоначально применялся для представления двумерной сетки и поверхностной сетки произвольного вида в рамках программы ТИМ-РНД, а затем,

снекоторыми доработками, лег в основу методики ТИМ-2D.

В«реберно-ячеечном» формате хранения основным элементом является ребро, для ячеек хранится полный список ребер (отсюда и название формата). Элементами формата являются ячейки, ребра и узлы.

«Реберно-ячеечный» формат хранения выглядит следующим образом:

– для ячейки хранится список ребер, перечисленных в порядке обхода против часовой стрелки (рис. 5,а);

а

б

в

г

Рис. 5. Структурная информация в «реберно-ячеечном» формате: а – для ячейки; б – для внутреннего ребра; в – для ребра, лежащего на границе; г – опорное ребро для граничного узла

для ребра хранится пара ячеек, разделяющих ребро, и пара узлов, ребро соединяющих. При этом со стороны первой ячейки узлы упорядочены против часовой стрелки (рис. 5,б);

для ребра, лежащего на границе области, первой ячейкой всегда является граничное условие, а в соответствующем элементе

16 Глава I. Форматы описания неструктурированных сеток…

формата содержится номер граничного условия со знаком минус

(рис. 5,в);

– для локализации операций поиска соседства в узле для узла хранится номер одного из сходящихся в нем ребер – так называемое опорное ребро. Если узел лежит на границе области, то в качестве опорного выбирается правое граничное ребро, если смотреть со стороны границы (рис. 5,г).

Формат хорошо подходит для алгоритмов, использующих ячеечное или реберное соседство, однако он достаточно просто расширяется информацией о соседстве в узлах. Это расширение превращает формат в «реберно-ячеечно-узловой», который рассматривается в п. 1.2.6.

Одним из основных преимуществ этого формата является естественное обобщение на трехмерный случай – формат хранения «по граням», используемый для методики ТИМ-3D (см. п. 1.3.4). При обобщениииспользуется аналогияребра– грань втрехмерном случае.

Как видно из описания, в данном формате хранится одна величина для узла, 4 величины для ребра и i величин для ячейки, но поскольку для хранения соседства в ячейке требуется организация списка, то требуется i +2 величины на каждую ячейку. Таким образом, объем памяти, требуемый для формата, выражается следующей формулой:

M=(i +2)N +4K + L.

1.2.6.«Реберно-ячеечно-узловой» формат хранения

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

«Реберно-ячеечно-узловой» формат аналогичен «реберноячеечному» по информации для ячеек и ребер и отличается наличием полного списка ребер в узле.

Методы решения задач газодинамики…

17

Для узла хранится список ребер, сходящихся в узле в порядке против часовой стрелки (рис. 6). Если узел лежит на границе области, то в качестве первого выбирается правое граничное ребро, если смотреть со стороны границы (рис. 6,б). Таким образом, граничные ребра всегда являются первым и последним в списке граничного узла.

а б

Рис. 6. Информация для узла в «реберно-ячеечно-узловом» формате: а – внутренний узел; б – граничный узел

Формат является самым неэкономичным с точки зрения объема требуемой памяти. Однако благодаря высокой избыточности в этом формате оказываются достаточно быстрыми алгоритмы, построенные по любому из трех элементов сетки.

Как видно из описания, в данном формате хранится 4 величины для ребра, i величин для ячейки и k величин для узла, но поскольку для хранения соседства в ячейке и в узле требуется органи-

зация списков, то требуется i +2 величины на каждую

ячейку

и k +2 величины на узел. Таким образом, объем памяти,

требуе-

мый для формата, выражается следующей формулой:

 

M=(i +2)N +4K +(k +2)L.

1.2.7.Сравнение форматов по объему требуемой памяти

Данные по оценкам затрат памяти в различных форматах сгруппированы в табл. 1.

18 Глава I. Форматы описания неструктурированных сеток…

Таблица 1

Количество величин для описания неструктурированной сетки в расчете на одну ячейку для различных форматов

Название

Треугольная

Четырехугольная

Шестиугольная

формата

сетка

сетка

сетка

«Поузлам»

8

11

17

«Поребрам»

10,5

14

21

«Поячейкам»

8,5

11

16

«Реберно-ячеечный»

11,5

15

22

«Реберно-ячеечно-

15

20

30

узловой»

 

 

 

Из таблицы видно, что по объему требуемой памяти наиболее экономичными оказываются форматы, в которых не вводится элемент «ребро» – это форматы «по узлам» и «по ячейкам». С другой стороны, использование ребер в формате позволяет реализовывать алгоритмы с использованием величин, отнесенных к ребрам. Форматы «по ребрам» и «реберно-ячеечный» близки между собой, хотя немного меньше памяти требуется для формата «по ребрам» (на одну величину на ячейку). Самым неэкономичным оказался «реберно-ячеечно-узловой» формат, требующий почти на треть больше величин на одну ячейку по сравнению с «реберноячеечным» форматом. Между остальными форматами разброс составляет не более 3–6 величин в зависимости от типа сетки.

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

Методы решения задач газодинамики…

19

1.2.8. Базовые алгоритмы поиска соседства

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

Базовые алгоритмы получения соседства:

1.Получение списка узлов ячейки.

2.Получение списка соседних ячеек для ячейки.

3.Получение соседних узлов для узла.

4.Получение списка ячеек, окружающих узел.

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

1.3. Трехмерные форматы хранения

Рассмотрим следующие структуры хранения информации для трехмерной неструктурированной сетки произвольного вида:

1)структура хранения «по углам» (для узла хранится список окружающих ячеек и согласованный с ним список многогранных углов);

2)структура хранения «по граням» (для ячейки хранится список граней, для грани – список номеров узлов);

3)структура «ребро-грани» (в качестве основного элемента выступает «ребро-грань», т. е. грань вместе с одним из ее ребер).

20Глава I. Форматы описания неструктурированных сеток…

1.3.1.Оценка затрат памяти для различных структур

Требование к памяти является одним из основных для структуры, описывающей трехмерные сетки (в отличие от двумерной), так как неэкономичная структура может на порядок превышать объем, требуемый для хранения вещественных данных. Оценки производились в предположении, что сетка заполняет все пространство, т. е. не учитывались граничные элементы сетки, которые в реальных сетках всегда присутствуют. Приведенные замеры хорошо соответствуют реальным сеткам, состоящим из нескольких тысяч ячеек и более (для сеток, состоящих из 1 миллиона ячеек, погрешность <5 %). При подсчете будем учитывать дополнительную память, необходимую индексным массивам для поддержания списков переменной длины.

Оценки выполним для сеток следующих типов (рис. 7).

1. Сетка на основе тел Вороного. Ячейка является 14-гранной (8 шестиугольных граней и 6 четырехугольных) из 24 узлов

и36 ребер. Внутренний узел окружает 4 ячейки, сходятся 4 ребра

и6 граней.

2.Сетка на основе шестиугольных призм (8 граней – 2 грани по 6 узлов и шесть граней по 4 узла, 12 узлов, 18 ребер). Узел окружает 6 ячеек, сходятся 5 ребер и 9 граней.

3.Сетка на основе шестигранников – топологических кубов

(6 четырехугольных граней, 8 узлов, 12 ребер). Узел окружает 8 ячеек, сходятся 6 ребер и 12 граней.

а

б

в

Рис. 7. Примеры ячеек и связей узлов: а – сетка на базе тел Вороного; б – сетка на основе шестиугольных призм; в – шестигранная сетка

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]