Программирование МКЭ в МATLAB. Даутов P.З. - 29 стр.

UptoLike

Составители: 

§ 4. Сопряженная кодировка сетки 29
T
равны 1), то сможем легко решить 1-ую задачу. Это можно сделать
при помощи функции
f u n c t i o n [ i t , pt ]= tr a n t (p , t )
% TRANT g i v e s the t rans p o se to the c o n n e c t i v i t y matrix t i n
% spa rse oderedcolumn format
np=s i z e (p , 2 ) ; nt=s i z e ( t , 2 ) ;
j = [1 : nt ; 1 : nt ; 1 : nt ] ;
T=s p a r s e ( t ( 1 : 3 , : ) , j , 1 , np , nt ) ; % domain co n n e c t i v i t y matrix
[ i t , j ]= f i n d (T' ) ; % g et the c o ordin a t e form o f T'
pt=f i n d ( d i f f ( [ 0 ; j ; np +1 ]) ) ' ;
Протестируем эту функцию на сетке, изображенной слева на рис. 6;
матрица T в этом случае имеет вид
T=[1 0 0 0 0 0
1 0 0 1 0 0
0 1 0 0 0 0
0 1 1 0 0 0
0 0 0 1 1 0
0 0 0 0 1 1
0 0 1 0 0 1
1 1 1 1 1 1 ]
а результатом выполнения команд
[ i t , pt ]= t r a nt (p , t ) ;
f o r i = 1 : s i z e (p , 2 )
dis p ( [ i , i t ( pt ( i ) : pt ( i +1) 1) ' ])
end
будут следующие числа:
i i t ( pt ( i ) : pt ( i +1)1)
1 1
2 1 4
3 2
4 2 3
5 4 5
6 5 6
7 3 6
8 1 2 3 4 5 6
Они показывают, что i-тый узел сетки действительно является вер-
шиной треугольников с номерами it(pt(i) : pt(i + 1) 1).
Для решения задач, указанных выше во 2-oм пункте и аналогич-
ных им, введем два дополнительных массива ee и te. Определим их
следующим образом:
§ 4. Сопряженная кодировка сетки                                                                29


T ′ равны 1), то сможем легко решить 1-ую задачу. Это можно сделать
при помощи функции
f u n c t i o n [ i t , pt ]= t r a n t ( p , t )
% TRANT g i v e s t h e t r a n s p o s e t o t h e c o n n e c t i v i t y matrix t i n
% s p a r s e −odered−column format
np=s i z e ( p , 2 ) ; nt=s i z e ( t , 2 ) ;

j = [ 1 : nt ; 1 : nt ; 1 : nt ] ;
T=s p a r s e ( t ( 1 : 3 , : ) , j , 1 , np , nt ) ; % domain c o n n e c t i v i t y matrix
[ i t , j ]= f i n d (T' ) ; % g e t t h e c o o r d i n a t e form o f T'
pt=f i n d ( d i f f ( [ 0 ; j ; np + 1 ] ) ) ' ;

Протестируем эту функцию на сетке, изображенной слева на рис. 6;
матрица T в этом случае имеет вид
T=[1      0    0    0    0    0
   1      0    0    1    0    0
   0      1    0    0    0    0
   0      1    1    0    0    0
   0      0    0    1    1    0
   0      0    0    0    1    1
   0      0    1    0    0    1
   1      1    1    1    1    1]

а результатом выполнения команд
[ i t , pt ]= t r a n t ( p , t ) ;
for i = 1: s i z e (p , 2 )
    d i s p ( [ i , i t ( pt ( i ) : pt ( i +1) −1) '])
end

будут следующие числа:
i         i t ( pt ( i ) : pt ( i +1)−1)

1         1
2         1    4
3         2
4         2    3
5         4    5
6         5    6
7         3    6
8         1    2    3    4    5    6

Они показывают, что i-тый узел сетки действительно является вер-
шиной треугольников с номерами it(pt(i) : pt(i + 1) − 1).
   Для решения задач, указанных выше во 2-oм пункте и аналогич-
ных им, введем два дополнительных массива ee и te. Определим их
следующим образом: