ГОСТ Р ИСО 10303-52—2015
области стыка и преобразование индексов одной сетки в индексы другой. Задается также смежная
сетка.
EXPRESS-спецификация:
*)
ENTITY matched_mesh_connection
SUBTYPE OF (mesh_connectivity);
SELRmesh_connectivity.current: structured_mesh;
range : indices_range:
donor: structured_mesh;
donor_range: indices_range;
transform : ARRAY [1:index_count] OF INTEGER;
WHERE
WR1 : current :<>; donor;
WR2 ; donor.index_count = index_count;
WR3 : range.nindices = index_count;
WR4 ; donor_range.nindices = index_count;
END_ENTITY;
(*
Определения атрибутов:
current
— (наследуемый) текущая сетка;
index_count
— (наследуемый) число индексов, требуемых для обозначения вершины;
range
— содержит поддиапазон индексов, образующих стыковочный лоскут в блоке;
donor
— смежная сетка,
donor_rango
— содержит поддиапазон индексов стыковочного лоскута донорской сетки;
transform
— содержит сокращенную запись матрицы преобразований, описывающей
отношения между индексами смежных сеток (см. ниже).
Формальные положения:
WR1. Текущая идонорская сетка должны быть разными сетками.
WR2. Значения атрибутов
index_count
для текущей и донорской сеток должны быть одинаковы.
WR3. Задаваемая атрибутом
index_count
размерность индекса текущей сетки должна быть
равна размерности, используемой при задании диапазона индексов.
WR4. Задаваемая атрибутом
lndex_count
размерность индекса донорской сетки должна быть
равна размерности, используемой при задании диапазона индексов донорской сетки.
Используемая в атрибуте
transform
сокращенная матричная запись имеет следующие
свойства. Сама матрица имеет ранг, равный значению атрибута index_count и содержит элементы
*
Л
,
0.
and |1. Матрица является ортонормальной и обратная матрица является ее транспозицией.
Матрица преобразования (Т) действует следующим образом: Если Индекс 1 и Индекс 2 — это
индексы некоторой точки на стыке сеток, то Индекс 1 — это индекс точки в текущей сетке, а Индекс 2 —
это индекс точки в смежной сетке, и между ними существует следующее отношение;
Index2 = T.(lndex1 - Startl) ♦ Start2
Index 1 = Transpose[T].(lndex2 - Start2) + Startl,
где 7 означает умножение матрицы на вектор. Startl и Finishl задают входящий в диапазон
индексов поддиапазон, a Start2 и Finish2 задают поддиапазон индексов, входящий в диапазон
индексов донорской сетки.
Краткая запись используется при преобразовании следующим образом. Для каждого элемента
положительное приращение индекса в грани текущей сетки отображается в изменение индексов
смежной сетки. Первый элемент — это отображение положительного приращения в направлении /;
второй элемент — это отображение положительного приращения в направлении /; и третий индекс
(для трехмерного случая) — это отображение положительного приращения в направлении
к.
Для
трехмерного случая матрица преобразования Т строится на основе преобразования вида [±а; ±Ь; ±с]
следующим образом;
sgn(a)del(a -1)
Т =
sgn(a)del(a - 2)
sgn(b)del(b -1)
sgn(b)del(b - 2)
sgn(c)del(c -1)
sgn(c)del(c -2)
sgn(a)del(a - 3)sgn(b)del(b - 3)sgn(c)del(c - 3),
31