Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2418

.pdf
Скачиваний:
0
Добавлен:
15.11.2022
Размер:
1.57 Mб
Скачать

0.1,0.1,2.25

0.,0.1,2.25

0.,0.,2.50

0.1,0.,2.50

0.1,0.1,2.50

0.,0.1,2.50

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

5,6,7,8,9,10,11,12

9,10,11,12,13,14,15,16

13,14,15,16,17,18,19,20

17,18,19,20,21,22,23,24

21,22,23,24,25,26,27,28

25,26,27,28,29,30,31,32

29,30,31,32,33,34,35,36

33,34,35,36,37,38,39,40

37,38,39,40,41,42,43,44

1,111

2,111

3,111

4,111

130,100.

131,100

DT1

60,44,2.e+11,0.3

DT2

60,44,132,4,18,50,51,1

DT3

2000000. 800000. 0.3 0.5

В результате выполнения первого шага на печать выводятся матрицы связей и координат узлов конечных элементов, а также ширина ленты формируемой системы разрешающих уравнений.

80

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

Вычисленные на третьем шаге узловые перемещения выводятся на печать построчно: первая цифра соответствует глобальному номеру узла, далее следуют значения перемещений в порядке принятой нумерации узловых степеней свободы.

Напряжения в каждом элементе подсчитываются на последнем этапе и выводятся на печать.

ЗАКЛЮЧЕНИЕ

Впособии изложены основы применения метода конечных элементов применительно к линейно-упругим задачам. Метод конечных элементов является мощным современным средством прочностного расчета различных технических объектов машиностроения, авиационных конструкций и строительных сооружений. Метод конечных элементов полностью ориентирован на применение вычислительных машин. Однако на начальном этапе возникает необходимость составления больших массивов исходных данных, поэтому требуется максимально автоматизировать этот процесс для исключения ошибок при ручной подготовке. С этой целью в пособии представлены некоторые алгоритмы автоматизированного построения конечноэлементной сетки.

Врезультате дискретизации вопрос о построении приближенного решения в зависимости от исходной задачи сводится к решению системы линейных алгебраических уравнений, либо алгебраической задачи на собственные значения, либо задачи Коши для обыкновенных дифференциальных уравнений и т.п.

Выбор численного метода и алгоритма для решения дискретной задачи имеет свои сложности и особенности. Задача эффективного решения системы линейных алгебраических уравнений метода конечных элементов должна учитывать спе-

81

цифику глобальной матрицы жесткости исследуемой конструкции. Как известно матрицы таких систем – разреженные: ленточные, профильные или с произвольным расположением ненулевых элементов. Вид их определяется исходной задачей, выбором конечного элемента и нумерацией узлов сетки конечных элементов. Для решения таких систем уравнений используются прямые и итерационные методы. Для повышения эффективности использования алгоритмов прямых методов, экономии машинного времени и памяти широко применяются алгоритмы предварительного упорядочивания матриц системы.

Для практического осуществления расчетов необходимо располагать соответствующими программами для ЭВМ, создание которых связано со значительными затратами труда и времени. Наряду с этим разработка объектно-ориентированных программ расчета конструкций частного вида (например составных оболочек вращения, пространственных балочных конструкций) позволяет эффективно исследовать их напряженнодеформированное состояние благодаря возможности задания минимальной информации, требующейся для описания их геометрии.

Широкое применение метода конечных элементов позволит эффективно разрабатывать надежные конструкции, удовлетворяющие современным требованиям проектирования.

82

Приложение 1

dimension title (40),xp(100),yp(100),xrg(9),yrg(9),n(8) *,nn(21,21),yc(21,21),xc(21,21),nnrb(20,4,21),jt(20,4) *,lb(3),ne(500),xe(500),ye(500),nr(4),icomp(4,4),ndn(8) *,nop(500,3),cord(500,3),NOP1(496,3),CRD(290,3)

real n

data icomp /-1,1,1,-1,1,-1,-1,1,1,-1,-1,1,-1,1,1,-1/ data in/60/,io/61/,ip/62/,nbw/0/,nb/0/,nel/0/ open(11,file='DT')

open(10,file='RES') do 91 i=1,500

do 91 j=1,3 91 cord(i,j)=0.

read(11,17) title write(10,17) title

17 format(40a1) ipch=0

c

*****************************************************

c Считывание числа зон, граничных точек c

*****************************************************

read (11,1) inrg, inbp

write(10,*)' inrg=',inrg,'inbp=',inbp,'ipch=',ipch 1 format (2i3)

c

*****************************************************

c Считывание координат узлов для задания зон c

*****************************************************

 

read(11,3) (xp(i),i=1,inbp)

 

read (11,3) (yp(i),i=1,inbp)

3

format(8f10.5)

 

do 2 i=1,inrg

2

read(11,8)nrg,(jt(nrg,j),j=1,4)

83

 

Продолжение приложения 1

8

format(5i3)

36

format (1h1////1x,40a1//1x,18hglobal coordi-

nates//1x,29hnumber x

*

coord y coord )

 

write(10,30) (i,xp(i),yp(i),i=1,inbp)

30format(2x,i3,7x,f7.2,5x,f7.2)

write(10,21)

21

format(/1x,17hconnectivity data/1x,42hregion

side 1

2

 

 

 

*

3

4 )

 

 

do 26 i=1,inrg

 

26

write(10,22) i,(jt(i,j),J=1,4)

 

22

format(2x,i3,14x,4(i2,5x))

 

c

 

 

 

*****************************************************

c Считывание исходных данных зоны c

*****************************************************

do 16 kk=1,inrg

read(11,4) nrg,nrows,ncol,ndn

4format(11i3)

write(10,18)nrg,nrows,ncol,(ndn(i),i=1,8)

18 format(1h1///1x,12h*** region ,i2,5h ****//10x,i2,5h

rows,10x,i2

1,8h columns//10x,21hboundary node numbers,10x,8i5)

*****************************************************

c generacion of the element nodal coordinates c

*****************************************************

do 5 i=1,8 ii=ndn(i) xrg(i)=xp(ii)

5yrg(i)=yp(ii)

xrg(9)=xrg(1)

84

Продолжение приложения 1

yrg(9)=yrg(1) tr=nrows -1 deta=2./tr tr=ncol-1 dsi=2./tr

do 12 i=1,nrows tr=i-1 eta=1.-tr*deta do 12 j=1,ncol tr=j-1 si=-1.+tr*dsi

n(1)=-0.25*(1.-si)*(1.-eta)*(si+eta+1.) n(2)=0.50*(1.-si**2)*(1.-eta) n(3)=0.25*(1.+si)*(1.-eta)*(si-eta-1.) n(4)=0.50*(1.+si)*(1-eta**2) n(5)=0.25*(1.+si)*(1.+eta)*(si+eta-1.) n(6)=0.50*(1.-si**2)*(1.+eta) n(7)=0.25*(1.-si)*(1.+eta)*(eta-si-1.) n(8)=0.50*(1.-si)*(1.-eta**2) xc(i,j)=0.0

yc(i,j)=0.0 do 12 k=1,8

xc(i,j)=xc(i,j)+xrg(k)*n(k) 12 yc(i,j)=yc(i,j)+yrg(k)*n(k) c

******************************************************

*****

c generation of the region node numbers c

******************************************************

*****

kn1=1

ks1=1

kn2=nrows

85

Продолжение приложения 1

ks2=ncol do 50 i=1,4 nrt=jt(nrg,i)

if (nrt.eq.0.or.nrt.gt.nrg) go to 50 do 56 j=1,4

56if (jt(nrt,j).eq.nrg)nrts=j k=ncol

if(i.eq.2.or.i.eq.4)k=nrows

jl=1

jk=icomp(i,nrts) if(jk.eq.-1) jl=k do 44 j=1,k

go to(45,46,47,48),i

45nn(nrows,j)=nnrb(nrt,nrts,jl) kn2=nrows-1

go to 44

46nn(j,ncol)=nnrb(nrt,nrts,jl) ks2=ncol-1

goto44

47nn(1,j)=nnrb(nrt,nrts,jl)

kn1=2

goto44

48nn(j,1)=nnrb(nrt,nrts,jl)

ks1=2 44 jl=jl+jk

50continue if(kn1.gt.kn2) goto105 if(ks1.gt.ks2) goto105 do 10 i=kn1,kn2

do 10 j=ks1,ks2

 

nb=nb+1

10

nn(i,j)=nb

c

storage of the boandary node numbers

 

do 42 i=1,ncol

86

Продолжение приложения 1

nnrb(nrg,1,i)=nn(nrows,i)

42nnrb(nrg,3,i)=nn(1,i) do 43 i=1,nrows nnrb(nrg,2,i)=nn(i,ncol)

43nnrb(nrg,4,i)=nn(i,1)

c output of the region node numbers write(10,49)

49format(//1x,19hregion node numbers/) do 52 i=1,nrows

52write(10,53) (nn(i,j),j=1,ncol)

53format(1x,20i5)

c division into triangular elements 105 write(10,55)

55 format(//3x,17hnel node numbers,12x,4hx(1), 8x,4hy(1),8x, *4hx(2),8x

1,4hy(2),8x,4hx(3),8x,4hy(3) ) k=1

do 54 i=1,nrows do 54 j=1,ncol xe(k)=xc(i,j) ye(k)=yc(i,j) ne(k)=nn(i,j)

54k=k+1 l=nrows-1 do 15 i=1,l

do 15 j=2,ncol diag1=sqrt((xc(i,j)-xc(i+1,j-1))**2+(yc(i,j)-yc(i+1,j-1))**2) diag2=sqrt((xc(i+1,j)-xc(i,j-1))**2+(yc(i+1,j)-yc(i,j-1))**2) nr(1)=ncol*i+j-1

nr(2)=ncol*i+j nr(3)=ncol*(i-1)+j nr(4)=ncol*(i-1)+j-1 do 15 ij=1,2 nel=nel+1

87

Продолжение приложения 1

if((diag1/diag2).gt.1.02) goto41 j1=nr(1)

j2=nr(ij+1)

j3=nr(ij+2)

goto40

41j1=nr(ij)

j2=nr(ij+1)

j3=nr(4)

40lb(1)=iabs(ne(j1)-ne(j2))+1 lb(2)=iabs(ne(j2)-ne(j3))+1 lb(3)=iabs(ne(j1)-ne(j3))+1 do 107 ik=1,3 if(lb(ik).le.nbw) goto 107 nbw=lb(ik)

nelbw=nel

107 continue write(10,301)

nel,ne(j1),ne(j2),ne(j3),xe(j1),ye(j1),xe(j2),ye(j2),xe(j3),ye(j3)

nop(nel,1)=ne(j1)

nop(nel,2)=ne(j2)

nop(nel,3)=ne(j3)

cord(ne(j1),1)=xe(j1)

cord(ne(j1),2)=ye(j1)

cord(ne(j2),1)=xe(j2)

cord(ne(j2),2)=ye(j2)

cord(ne(j3),1)=xe(j3)

cord(ne(j3),2)=ye(j3)

301format(1x,4i5,3x,6f12.4) if(ipch.eq.0) goto15

write(10,303)

nel,ne(j1),ne(j2),ne(j3),xe(j1),ye(j1),xe(j2),ye(j2),xe(j3),ye(j3) 303 format(4i3,6f10.4)

88

Продолжение приложения 1

15continue

16continue

777continue endfile(11)

close(11)

write (10,51) nbw,nelbw

51format(///1x,22h bandwidth quantity is,i4,22hcalculated in element ,i4)

write(10,*)' cord(500,3)' do 998 i=1,500

998write(10,*)' i=',i,'x=',cord(i,1),'y=',cord(i,2),'z=',cord(i,3) write(10,*)' nop(500,3)'

do 997 i=1,500

997write(10,*)' i=',i,'nop(i,1-3)=',nop(i,1),nop(i,2),nop(i,3)

DO 71 I=1,496

DO 71 J=1,3

71NOP1(I,J)=NOP(I,J) DO 72 I=1,290

DO 72 J=1,3

72CRD(I,J)=CORD(I,J)

OPEN(31,FILE='NOP',FORM='UNFORMATTED')

WRITE(31)NOP1,CRD

CLOSE(31)

endfile(10)

close(10) stop

end

89

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]