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

UptoLike

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

§ 3. Кодировка сетки 25
i f isempty ( s ) ,
f o r i s =1:4 % e l l i p s e segments
i=fi n d ( bs==i s ) ;
i f isempty ( i )
a=1; b=0. 1 ;
% s e l e c t 100 poin t ' s on segment i s
t=l i n s p a c e ( d ( 1 , i s ) , d ( 2 , i s ) , 1 0 0 ) ;
xt=a
*
co s ( t ) ;
yt=b
*
s i n ( t ) ;
% use p de ar cl to make the parameter s p r o po r t io n a l to ar c le n gt h
t=p de ar cl ( t , [ xt ; yt ] , s ( i ) , d ( 1 , i s ) , d ( 2 , i s ) ) ;
x ( i )= a
*
co s ( t ) ;
y ( i )= b
*
s i n ( t ) ;
end
end
end
Команды
[ p , e , t ]= in itm e sh (' g e l l 1 ' ,'Hmax' ,0 . 1 ) ;
pdemesh ( p , e , t ) , a x i s e qua l
приводят теперь к подходящей сетке, изображенной на рис.5. Функция
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
−0.1
0
0.1
Рис. 5. Неудачная параметризация исправляется функцией pdearcl.
gell1 отличается от gell0 тем, что сначала выбираются 100 точек
(xt,yt) на сегменте, которые следующей командой равномерно рас-
пределяются на нем по длине дуги (можно брать меньше или больше
100 точек, в зависимости от длины сегмента). Функция pdearcl рас-
положена в pde toolbox.
§ 3. Кодировка сетки
Рассмотрим геометрию области, изображенной слева на рис. 6,
а также треугольную сетку на ней (рис. справа). Файл геометрии
’lshapeg’ этой области находится в pde toolbox; на левом рисунке ука-
зана номера граничных сегментов (всего их 10, из них 2 внутренних)
и номера подобластей (их 3). Правый рисунок строят команды
[ p , e , t ]= in itm e sh (' l sh ape g' , 'Hmax' , i n f ) ; plotmeshP1 (p , e , t , [ 1 , 1 , 1 ] , 1 2 ) ;
§ 3. Кодировка сетки                                                                                                       25


i f ∼isempty ( s ) ,
   f o r i s =1:4 % e l l i p s e segments
       i=f i n d ( bs==i s ) ;
       i f ∼isempty ( i )
          a =1; b=0 . 1 ;
          % s e l e c t 100 p o i n t ' s on segment i s
          t=l i n s p a c e ( d ( 1 , i s ) , d ( 2 , i s ) , 1 0 0 ) ;
          xt=a * c o s ( t ) ;
          yt=b* s i n ( t ) ;
          % u s e p d e a r c l t o make t h e parameter s p r o p o r t i o n a l t o a r c l e n g t h
          t=p d e a r c l ( t , [ xt ; yt ] , s ( i ) , d ( 1 , i s ) , d ( 2 , i s ) ) ;
          x ( i )= a * c o s ( t ) ;
          y ( i )= b* s i n ( t ) ;
       end
   end
end

Команды
[ p , e , t ]= i n i t m e s h ( ' g e l l 1 ' , 'Hmax' , 0 . 1 ) ;
pdemesh ( p , e , t ) , a x i s e q u a l

приводят теперь к подходящей сетке, изображенной на рис.5. Функция
             0.1

               0

           −0.1
              −1        −0.8      −0.6      −0.4      −0.2            0   0.2      0.4      0.6       0.8        1

              Рис. 5. Неудачная параметризация исправляется функцией pdearcl.

gell1 отличается от gell0 тем, что сначала выбираются 100 точек
(xt,yt) на сегменте, которые следующей командой равномерно рас-
пределяются на нем по длине дуги (можно брать меньше или больше
100 точек, в зависимости от длины сегмента). Функция pdearcl рас-
положена в pde toolbox.

                                          § 3. Кодировка сетки

    Рассмотрим геометрию области, изображенной слева на рис. 6,
а также треугольную сетку на ней (рис. справа). Файл геометрии
’lshapeg’ этой области находится в pde toolbox; на левом рисунке ука-
зана номера граничных сегментов (всего их 10, из них 2 внутренних)
и номера подобластей (их 3). Правый рисунок строят команды
[ p , e , t ]= i n i t m e s h ( ' l s h a p e g ' , 'Hmax' , i n f ) ; plotmeshP1 ( p , e , t , [ 1 , 1 , 1 ] , 1 2 ) ;