ВУЗ:
Составители:
30 Глава 2. Построение сеток в MatLab
• в ee, размером 7 × K, пакуется информация о всех ребрах эле-
ментов (а не только попавших на границы подобластей, как в
e), K — число всех ребер. Точнее, в ee(1 : 2, k) располагаются
номера вершин ребра с номером k; в e(3 : 4, k) — начальное и
конечное значение параметра s на ребре k, если ребро k лежит на
любом сегменте, иначе e(3 : 4, k) = [0; 0]; в ee(5, k) хранится либо
номер сегмента, которому принадлежит ребро, либо 0; e(6 : 7, k)
— номера треугольников слева и справа от ребра (если смотреть
от первой вершины ребра на вторую); соответствующее значение
ee(j, k) = 0, если ребро граничное;
• в te, размером 4 × nt, хранятся номера ребер элемента и метка
подобласти, которой он принадлежит. А именно, в t(1 : 3, j) рас-
полагаются номера ребер элемента с номером j, в t(4, j) — номер
подобласти.
Три матрицы (p, ee, te) содержат в себе всю информацию о сетке и
определяют альтернативную к (p, e, t) кодировку сетки; далее будем
называть ее сопряженной P
1
сеткой. Такая кодировка оказывается
полезной, когда независимо приходится обходить как элементы, так
и ребра. Следующая функция вычисляет эти матрицы.
f u n c t i o n [ ee , te ]=adjmeshP1 ( p , e , t )
% ADJMESHP1: g i v e s an edge o r i e n t e d mesh d a t a .
% P1−me sh ( p , e , t ) as in matlab f u n c t i o n [ p , e , t ]= in i t m es h ( g ) .
% ee : 7xK, matrix o f e dges ; e very 2 mesh p o i n t s i , j ( or j , i )
% form 1 edge ; ever y edge b el o n g s to 2 t r i a n g l e ,
% or to 1 t r i a n g l e ( boundary edge ) ; K − number o f e d g e s .
% ee ( 1 , i ) = index of the 1−s t p o in t on edge i ,
% ee ( 2 , i ) = index of the 2−nd p o in t on edge i .
% ee ( 3 : 4 , i )= s t a r t and end parameter , i f i l i e s on bo rder
% or boundary segment ; e l s e ee ( 3 : 4 , i ) = [ 0 ; 0 ] .
% ee ( 5 , i ) = border o r boundary segment index , i f edge i l i e s
% on segment ; e l s e ee ( 5 , i )=0 .
% ee ( 6 : 7 , i )= i n d i c e s o f l e f t hand and r i g h t hand t r i a n g l e s ;
% ee (6 , i )=0 or ee ( 7 , i )=0 f o r boundary e d g e .
%
% t e : 4xnt , t r i a n g l e matrix , composed by edge i n d i c e s ;
% t e ( 1 : 3 , i )= i n d i c e s o f edge s on element i .
% t e ( 4 , : ) = s d l numbers
ne=s i z e ( e , 2 ) ; nt=s i z e ( t , 2 ) ;
% s e t ep = f i r s t 2 rows o f the ee
t t =(t ( 1 : 3 , : ) ) ' ;
ep = [ t t ( : , [ 1 , 2 ] ) ; t t ( : , [ 2 , 3 ] ) ; t t ( : , [ 3 , 1 ] ) ] ; % a l l e d g e s − not unique
30 Глава 2. Построение сеток в MatLab • в ee, размером 7 × K, пакуется информация о всех ребрах эле- ментов (а не только попавших на границы подобластей, как в e), K — число всех ребер. Точнее, в ee(1 : 2, k) располагаются номера вершин ребра с номером k; в e(3 : 4, k) — начальное и конечное значение параметра s на ребре k, если ребро k лежит на любом сегменте, иначе e(3 : 4, k) = [0; 0]; в ee(5, k) хранится либо номер сегмента, которому принадлежит ребро, либо 0; e(6 : 7, k) — номера треугольников слева и справа от ребра (если смотреть от первой вершины ребра на вторую); соответствующее значение ee(j, k) = 0, если ребро граничное; • в te, размером 4 × nt, хранятся номера ребер элемента и метка подобласти, которой он принадлежит. А именно, в t(1 : 3, j) рас- полагаются номера ребер элемента с номером j, в t(4, j) — номер подобласти. Три матрицы (p, ee, te) содержат в себе всю информацию о сетке и определяют альтернативную к (p, e, t) кодировку сетки; далее будем называть ее сопряженной P1 сеткой. Такая кодировка оказывается полезной, когда независимо приходится обходить как элементы, так и ребра. Следующая функция вычисляет эти матрицы. f u n c t i o n [ ee , t e ]= adjmeshP1 ( p , e , t ) % ADJMESHP1: g i v e s an edge o r i e n t e d mesh d a t a . % P1−mesh ( p , e , t ) a s i n matlab f u n c t i o n [ p , e , t ]= i n i t m e s h ( g ) . % e e : 7xK , matrix o f e d g e s ; e v e r y 2 mesh p o i n t s i , j ( o r j , i ) % form 1 edge ; e v e r y edge b e l o n g s t o 2 t r i a n g l e , % o r t o 1 t r i a n g l e ( boundary edge ) ; K − number o f e d g e s . % e e ( 1 , i ) = i n d e x o f t h e 1− s t p o i n t on edge i , % e e ( 2 , i ) = i n d e x o f t h e 2−nd p o i n t on edge i . % e e ( 3 : 4 , i )= s t a r t and end parameter , i f i l i e s on b o r d e r % o r boundary segment ; e l s e e e ( 3 : 4 , i ) = [ 0 ; 0 ] . % e e ( 5 , i ) = b o r d e r o r boundary segment index , i f edge i l i e s % on segment ; e l s e e e ( 5 , i )=0 . % e e ( 6 : 7 , i )= i n d i c e s o f l e f t hand and r i g h t hand t r i a n g l e s ; % e e ( 6 , i )=0 o r e e ( 7 , i )=0 f o r boundary e d g e . % % t e : 4 xnt , t r i a n g l e matrix , composed by edge i n d i c e s ; % t e ( 1 : 3 , i )= i n d i c e s o f e d g e s on e l e m e n t i . % t e ( 4 , : ) = s d l numbers ne=s i z e ( e , 2 ) ; nt=s i z e ( t , 2 ) ; % s e t ep = f i r s t 2 rows o f t h e e e t t =( t ( 1 : 3 , : ) ) ' ; ep = [ t t ( : , [ 1 , 2 ] ) ; t t ( : , [ 2 , 3 ] ) ; t t ( : , [ 3 , 1 ] ) ] ; % a l l e d g e s − not unique
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »