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

UptoLike

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

44 Глава 3. Программирование сборки матриц МКЭ
np=s i z e (p , 2 ) ; nt=s i z e ( t , 2 ) ;
i t 1=t ( 1 , : ) ; i t 2=t ( 2 , : ) ; i t 3=t ( 3 , : ) ;
%f j ( k)= Ft ( j ) on th e f i n i t e element k , Ft the l o c a l f o r c e ve c t o r
f 1=ones ( nt , 1 ) ; F= s p a rs e ( it1 , 1 , f1 , np , 1 ) ;
f 2=ones ( nt , 1 ) ; F=F+spa r s e ( i t 2 , 1 , f2 , np , 1 ) ;
f 3=ones ( nt , 1 ) ; F=F+spa r s e ( i t 3 , 1 , f3 , np , 1 ) ;
f u nc t i o n F=assembFbest2 (p , t )
np=s i z e (p , 2 ) ; nt=s i z e ( t , 2 ) ;
i t 1=t ( 1 , : ) ; i t 2=t ( 2 , : ) ; i t 3=t ( 3 , : ) ;
Ft=ones ( nt , 3 ) ; % a l l l o c a l f o r c e v e c to r s
F= s p a rs e ( it1 , 1 , Ft ( : , 1 ) , np , 1 ) ;
F=F+spa r s e ( i t 2 , 1 , Ft ( : , 2 ) , np , 1 ) ;
F=F+spa r s e ( i t 3 , 1 , Ft ( : , 3 ) , np , 1 ) ;
f u nc t i o n F=assembFbest3 (p , t )
np=s i z e (p , 2 ) ; nt=s i z e ( t , 2 ) ; do f e =3;
F=ze r o s (np , 1 ) ; % g l o b a l f o r c e v ecto r
f o r i t =1: nt
I=t ( 1 : dofe , i t ) ;
Ft=ones ( dofe , 1 ) ; % c a l c u l a t e the l o c a l f o r c e v e c t or
F( I )=F( I)+Ft ;
end
В результате выполнения этого кода получена следующая таблица
np nt best1 b e s t 2 t b e st 3
121 200 0 0 0
2601 5000 0 0 0 .09375
10201 20000 0 .046 8 7 5 0 .0625 0 . 2 9 688
40401 80000 0 .23 4 3 8 0 . 2 1 875 1 .2656
160801 320000 1 .0781 1 . 1 0 9 4 5 . 0 6 2 5
Из нее следует, что расходы по рассылке элементов по третьему спо-
собу примерно в 5 раз больше.
§ 2. Формирование системы МКЭ для P
1
элементов
Рассмотрим вопросы формирования глобальной и локальной мат-
рицы жесткости и вектора сил, а также вопросы, касающиеся учета
краевых условий.
44                                                Глава 3. Программирование сборки матриц МКЭ


np=s i z e ( p , 2 ) ; nt=s i z e ( t , 2 ) ;
i t 1=t ( 1 , : ) ; i t 2=t ( 2 , : ) ; i t 3=t ( 3 , : ) ;

%f j ( k)= Ft ( j ) on t h e f i n i t e e l e m e n t k , Ft t h e l o c a l f o r c e v e c t o r
f 1=o n e s ( nt , 1 ) ; F= s p a r s e ( i t 1 , 1 , f1 , np , 1 ) ;
f 2=o n e s ( nt , 1 ) ; F=F+s p a r s e ( i t 2 , 1 , f2 , np , 1 ) ;
f 3=o n e s ( nt , 1 ) ; F=F+s p a r s e ( i t 3 , 1 , f3 , np , 1 ) ;

f u n c t i o n F=assembFbest2 ( p , t )
np=s i z e ( p , 2 ) ; nt=s i z e ( t , 2 ) ;
i t 1=t ( 1 , : ) ; i t 2=t ( 2 , : ) ; i t 3=t ( 3 , : ) ;

Ft=o n e s ( nt , 3 ) ; % a l l l o c a l f o r c e v e c t o r s

F= s p a r s e ( i t 1 , 1 , Ft ( : , 1 ) , np , 1 ) ;
F=F+s p a r s e ( i t 2 , 1 , Ft ( : , 2 ) , np , 1 ) ;
F=F+s p a r s e ( i t 3 , 1 , Ft ( : , 3 ) , np , 1 ) ;

f u n c t i o n F=assembFbest3 ( p , t )
np=s i z e ( p , 2 ) ; nt=s i z e ( t , 2 ) ; d o f e =3;
F=z e r o s ( np , 1 ) ;       % global force vector
f o r i t =1: nt
    I=t ( 1 : dofe , i t ) ;
    Ft=o n e s ( dofe , 1 ) ; % c a l c u l a t e t h e l o c a l f o r c e v e c t o r
   F( I )=F( I )+Ft ;
end

       В результате выполнения этого кода получена следующая таблица
     np     nt                  best1             best2         tbest3
     121    200                       0                 0             0
    2601   5000                       0                 0     0 .09375
   10201 20000              0 .046875             0 .0625     0 .29688
   40401 80000                0 .23438          0 .21875        1 .2656
  160801 320000                 1 .0781           1 .1094       5 .0625

Из нее следует, что расходы по рассылке элементов по третьему спо-
собу примерно в 5 раз больше.

        § 2. Формирование системы МКЭ для P1 элементов

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