calfem_truss.sci
clc clear exec('solveq.sci'); exec('extract.sci'); exec('coordxtr.sci'); exec('bar2s.sci'); exec('assem.sci'); exec('eldraw2.sci'); exec('eldisp2.sci'); exec('bar2e.sci'); E=100e9; A=0.05*0.05; LE=7; LW=5; LSSW=2; LSSU=LW*LSSW; //definicja wezlow i elmentow nodes=[0 0; 2 0; 5 0; 2 2; 0 2]; elements =[1 2; 2 3; 3 4; 4 5; 5 1; 5 2; 2 4] // wlasnosci elementu skonczonego ep=[E A]; //macierz stopni swobody i wspolrzedne elementow for i=1:LE np = elements(i,1) ne = elements(i,2) Ex(i,:) = [nodes(np,1),nodes(ne,1)]; Ey(i,:) = [nodes(np,2),nodes(ne,2)]; Edof(i,:) = [i, 2*np-1, 2*np, 2*ne-1, 2*ne]; end //wykres Elnum=Edof(:,1); eldraw2(Ex,Ey,Elnum); set(gca(),"data_bounds",[-2,6,-1,4]); // agregacja F=zeros(LSSU,1); K=zeros(LSSU,LSSU); for i=1:LE Ke=bar2e(Ex(i,:),Ey(i,:),ep); K=assem(Edof(i,:),K,Ke); end //warunki brzegowe, sila, podpory F(6)= -1000.0; bc=[1 0; 2 0; 9 0]; //rozwiazanie [a,R]=solveq(K,F,bc); Ed=extract(Edof,a); disp(Ed) //wykres zdeformowanej kratownicy eldisp2(Ex,Ey,Ed,1000); //sily w pretach for i=1:LE N(i)=bar2s(Ex(i,:),Ey(i,:),ep,Ed(i,:)); end