Руководство к решению задач по механике твердого деформируемого тела матричными методами. Бундаев В.В. - 59 стр.

UptoLike

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

117
3.4. Программа реализации МКЭ на ЭВМ
Program MCE;
Uses crt;
const nue=2;
nel=4; {число конечных элементов}
nuz=5; {число узлов ансамбля элементов}
ndis=1;{число узлов,в которых заданы перемещения}
type mas1=array[1..nel] of real;
mas3=array[1..nel,1..nue] of integer;
mas5=array[1..nue,1..nue] of real;
mas7=array[1..nuz,1..nuz] of real;
mas8=array[1..nuz] of real;
mas9=array[1..ndis] of integer;
mas10=array[1..ndis] of real;
mas12=array[1..nue] of real;
mas14=array[1..nel,1..nue] of real;
var iel,i,j:integer;
ar,dl,ee,defor,sigma:mas1;
nug:mas3;
se:mas5; sgl:mas7;
rez:mas8; nsd:mas9; dis:mas10;
r1:mas12;
bb,rz:mas14;
const
kdl:mas1=(1.0,1.0,1.0,1.0);
kee:mas1=(1.0,1.0,1.0,1.0);
knug:mas3=((1,2),
(2,3),
(3,4),
(4,5));
knsd:mas9=(1);
kdis:mas10=(0.0);
kar:mas1=(2.0,2.0,1.0,1.0);
procedure MEL;
var j1,k1,l1:integer;
118
efl,q0,ps:real;
begin
efl:=ee[iel]*ar[iel]/dl[iel];
for j1:=1 to nue do
for k1:=1 to nue do se[j1,k1]:=0.0;
se[1,1]:=efl;
se[1,2]:=-efl;
se[2,1]:=-efl;
se[2,2]:=efl;
for j1:=1 to nue do
begin
writeln;
for k1:=1 to nue do
write(se[j1,k1]:5:1);
end;
readln;
readln(q0);
r1[1]:=0.5*q0*dl[iel];
r1[2]:=0.5*q0*dl[iel];
for j1:=1 to nue do
write(' ',r1[j1]:5:3);
readln;
end;
Procedure MGL;
var j1,k1,l1,m1,n1:integer;
begin
for j1:=1 to nue do
begin
l1:=nug[iel,j1];
rez[l1]:=rez[l1]+r1[j1];
for k1:=1 to nue do
begin
n1:=nug[iel,k1];
sgl[l1,n1]:=sgl[l1,n1]+se[j1,k1]
end
end;
                            117                                                          118

     3.4. Программа реализации МКЭ на ЭВМ                    efl,q0,ps:real;
                                                        begin
Program MCE;                                              efl:=ee[iel]*ar[iel]/dl[iel];
Uses crt;                                                 for j1:=1 to nue do
const nue=2;                                                for k1:=1 to nue do se[j1,k1]:=0.0;
    nel=4; {число конечных элементов}                     se[1,1]:=efl;
    nuz=5; {число узлов ансамбля элементов}               se[1,2]:=-efl;
    ndis=1;{число узлов,в которых заданы перемещения}     se[2,1]:=-efl;
type mas1=array[1..nel] of real;                          se[2,2]:=efl;
    mas3=array[1..nel,1..nue] of integer;                 for j1:=1 to nue do
    mas5=array[1..nue,1..nue] of real;                    begin
    mas7=array[1..nuz,1..nuz] of real;                    writeln;
    mas8=array[1..nuz] of real;                           for k1:=1 to nue do
    mas9=array[1..ndis] of integer;                         write(se[j1,k1]:5:1);
    mas10=array[1..ndis] of real;                         end;
    mas12=array[1..nue] of real;                          readln;
    mas14=array[1..nel,1..nue] of real;                     readln(q0);
var iel,i,j:integer;                                        r1[1]:=0.5*q0*dl[iel];
    ar,dl,ee,defor,sigma:mas1;                              r1[2]:=0.5*q0*dl[iel];
    nug:mas3;                                             for j1:=1 to nue do
    se:mas5; sgl:mas7;                                       write(' ',r1[j1]:5:3);
    rez:mas8; nsd:mas9; dis:mas10;                        readln;
    r1:mas12;                                             end;
    bb,rz:mas14;                                        Procedure MGL;
const                                                      var j1,k1,l1,m1,n1:integer;
kdl:mas1=(1.0,1.0,1.0,1.0);                                begin
kee:mas1=(1.0,1.0,1.0,1.0);                                    for j1:=1 to nue do
knug:mas3=((1,2),                                              begin
                (2,3),                                            l1:=nug[iel,j1];
                (3,4),                                            rez[l1]:=rez[l1]+r1[j1];
               (4,5));                                              for k1:=1 to nue do
knsd:mas9=(1);                                                      begin
kdis:mas10=(0.0);                                                     n1:=nug[iel,k1];
kar:mas1=(2.0,2.0,1.0,1.0);                                           sgl[l1,n1]:=sgl[l1,n1]+se[j1,k1]
procedure MEL;                                                      end
  var j1,k1,l1:integer;                                         end;