calfem_2d.sci
clear clc exec('eldraw2.sci'); exec('eldisp2.sci'); exec('coordxtr.sci'); exec('solveq.sci'); exec('hooke.sci'); exec('plani4e.sci'); exec('assem.sci'); exec('extract.sci'); exec('plani4f.sci'); exec('plani4s.sci'); nodes = [ 0.0, 0.0; 0.0, 1.0; 0.0, 2.0; 0.0, 3.0; 1.0, 0.0; 1.0, 1.0; 1.0, 2.0; 1.0, 3.0; 2.0, 2.0; 2.0, 3.0; ] elements = [1 5 6 2; 2 6 7 3; 3 7 8 4; 7 9 10 8] LE = 4 LW = 10 LSSW = 2 LSSU = LW*LSSW //macierz stopni swobody i wspolrzedne elementow for i=1:LE n1 = elements(i,1) n2 = elements(i,2) n3 = elements(i,3) n4 = elements(i,4) Ex(i,:) = [nodes(n1,1),nodes(n2,1),nodes(n3,1),nodes(n4,1)]; Ey(i,:) = [nodes(n1,2),nodes(n2,2),nodes(n3,2),nodes(n4,2)]; Edof(i,:)=[i, 2*n1-1, 2*n1, 2*n2-1, 2*n2, 2*n3-1, 2*n3, 2*n4-1,2*n4]; end eldraw2(Ex,Ey,Edof(:,1)) set(gca(),"data_bounds",[-1,4,-1,4]); E=210000; v=0.3; t=1; ep=[1 t 3]; K=zeros(LSSU,LSSU); F=zeros(LSSU,1); D=hooke(ep(1),E,v); for i=1:LE; Ke1=plani4e(Ex(i,:),Ey(i,:),ep,D); K=assem(Edof(i,:),K,Ke1); end; bc = [1 0; 2 0; 9 0; 10 0] F(8) = -10 F(16) = -20 F(20) = -10 a=solveq(K,f,bc); ed=extract(Edof,a); eldisp2(Ex,Ey,ed); [es,et,eci]=plani4s(Ex,Ey,ep,D,ed); KK=plani4f(Ex,Ey,ep,es);