Sie sind auf Seite 1von 8

New Text Document.

txt
%Program 1

clear all;
close all;
clc;
nelem = 1;
nnod = 4;
nnoel = 4;
nfree = 2;
nz = 4;
em = 210000000.0;
nu=0.3;
th = 0.02;
% defining co-ordinates
%x(element no, node no)
x(1,1)=0.0;
x(1,2)=3.0;
x(1,3)=3.0;
x(1,4)=0.0;
y(1,1)=0.0;
y(1,2)=0.0;
y(1,3)=4.0;
y(1,4)=4.0;

for i=1:nnod
for j = 1:nfree
id(i,j)=0;
end
end

id(1,1)=1;
id(1,2)=1;
id(2,1)=1;
id(2,2)=1;

isum=0;
for i=1:nnod
for j = 1:nfree
if id(i,j)==0
isum = isum+1;
id(i,j)=isum;
else id(i,j)=0;
end
end
end
for i=1:nnod

Page 1
New Text Document.txt
for j = 1:nfree
fprintf('id(%d,%d)=%d\n',i,j,id(i,j))
end
end
%
nod(1,1)=1;
nod(1,2)=2;
nod(1,3)=3;
nod(1,4)=4;

%
for i=1:nelem
for j = 1:nnoel
fprintf('nod(%d,%d)=%d\n',i,j,nod(i,j))
end
end
for i=1:nz
for j = 1:nz
el(i,j)=0.0;
end
end
% disp(el);
%

% define elasticity matrix


const = em/(1-nu^2);
elas(1,1)=const;
elas(1,2)=const*nu;
elas(2,1)=const*nu;
elas(2,2)=const;
elas(3,3)=const*(1-nu)/2;

%define gauss points and weights


ti(1)=-1/sqrt(3);
ti(2)=1/sqrt(3);
wt(1)=1;
wt(2)=1;

lk=1;
%Initialize stiffness matrix
for i=1:8
for j = 1:8
sm(i,j)=0.0;
end
end

%obtain jacobian matrix

for ii = 1:2

Page 2
New Text Document.txt
for jj= 1:2
jac(1,1)=.25*(-(1-ti(jj))*x(lk,1)+(1-ti(jj))*x(lk,2)+(1+ti(jj))*x(lk,3)-(1+ti(jj
))*x(lk,4));
jac(1,2)=.25*(-(1-ti(ii))*y(lk,1)+(1-ti(ii))*y(lk,2)+(1+ti(ii))*y(lk,3)-(1+ti(ii
))*y(lk,4));
jac(2,1)=.25*(-(1-ti(jj))*x(lk,1)-(1+ti(jj))*x(lk,2)+(1+ti(jj))*x(lk,3)+(1-ti(jj
))*x(lk,4));
jac(2,2)=.25*(-(1-ti(ii))*y(lk,1)-(1+ti(ii))*y(lk,2)+(1+ti(ii))*y(lk,3)+(1-ti(ii
))*y(lk,4));
jc_inv=inv(jac);
%disp(jc_inv);

for i=1:3
for j = 1:4
aa(i,j)=0.0;
end
end

aa(1,1)=1.0;
aa(2,4)=1.0;
aa(3,2)=1.0;
aa(3,3)=1.0;
for i=1:4
for j = 1:4
jcinv(i,j)=0.0;
end
end
jcinv(1,1)=jc_inv(1,1);
jcinv(1,2)=jc_inv(1,2);
jcinv(2,1)=jc_inv(2,1);
jcinv(2,2)=jc_inv(2,2);
jcinv(3,3)=jc_inv(1,1);
jcinv(3,4)=jc_inv(1,2);
jcinv(4,3)=jc_inv(2,1);
jcinv(4,4)=jc_inv(2,2);
strn = aa*jcinv;
for i=1:4
for j = 1:8
binu(i,j)=0.0;
end
end
binu(1,1)=-.25*(1-ti(jj));
binu(1,3)=.25*(1-ti(jj));
binu(1,5)=.25*(1+ti(jj));
binu(1,7)=-.25*(1+ti(jj));
binu(2,1)=-.25*(1-ti(ii));
binu(2,3)=-.25*(1+ti(ii));
binu(2,5)=.25*(1+ti(ii));
binu(2,7)=.25*(1-ti(ii));
binu(3,2)= binu(1,1);

Page 3
New Text Document.txt
binu(3,4)=binu(1,3);
binu(3,6)=binu(1,5);
binu(3,8)=binu(1,7);
binu(4,2)=binu(2,1);
binu(4,4)=binu(2,3);
binu(4,6)=binu(2,5);
binu(4,8)=binu(2,7);
bb=strn*binu;
btdb=bb'*elas*bb;

sm=sm+btdb*th*wt(ii)*wt(jj)*det(jac);
end
end
% disp(sm);
for it=1:nnoel
ii=nod(lk,it);
im=nfree*(it-1);
for jt=1:nnoel
jj=nod(lk,jt);
jn=nfree*(jt-1);
for i=1:nfree
mmi=id(ii,i);
imi=im+i;
if(mmi==0)
continue;
else

for j=1:nfree
nnj=id(jj,j);
jnj=jn+j;
if(nnj==0)
continue
else

el(mmi,nnj)=el(mmi,nnj)+sm(imi,jnj);

end
end
end
end
end
end

%
fprintf('global stiffness matrix after applying boundary conditions\n');
disp(el);
el_inv = inv(el);
% disp(el_inv);
for i=1:nz
fo(i)=0.0;
end

Page 4
New Text Document.txt
fo(2) = -45.0;
fo(3) = 20.0;
fo(4) = -45.0;
uu = el_inv * fo';
fprintf('gobal deformation\n');
disp(uu);

% GLOBAL DISPLACEMENT MATRIX : guu(degee of freedom, element no)


for i=1:8
for j = 1:nelem
guu(i,j)=0.0;
end
end
guu(5,1)=uu(1);
guu(6,1)=uu(2);
guu(7,1)=uu(3);
guu(8,1)=uu(4);

for lk = 1:nelem
fprintf('element no = %d\n', lk);
for i = 1:8
fprintf('%f\t', guu(i,lk));
end
fprintf('\n');
end
ti(1)=0.0;
ti(2)=0.0;
for lk=1:nelem

%obtain jacobian matrix


for ii = 1:2
for jj= 1:2
jac(1,1)=.25*(-(1-ti(jj))*x(lk,1)+(1-ti(jj))*x(lk,2)+(1+ti(jj))*x(lk,3)-(1+ti(jj
))*x(lk,4));
jac(1,2)=.25*(-(1-ti(ii))*y(lk,1)+(1-ti(ii))*y(lk,2)+(1+ti(ii))*y(lk,3)-(1+ti(ii
))*y(lk,4));
jac(2,1)=.25*(-(1-ti(jj))*x(lk,1)-(1+ti(jj))*x(lk,2)+(1+ti(jj))*x(lk,3)+(1-ti(jj
))*x(lk,4));
jac(2,2)=.25*(-(1-ti(ii))*y(lk,1)-(1+ti(ii))*y(lk,2)+(1+ti(ii))*y(lk,3)+(1-ti(ii
))*y(lk,4));
jc_inv=inv(jac);
%disp(jc_inv);
for i=1:3
for j = 1:4
aa(i,j)=0.0;
end
end

Page 5
New Text Document.txt
aa(1,1)=1.0;
aa(2,4)=1.0;
aa(3,2)=1.0;
aa(3,3)=1.0;
for i=1:4
for j = 1:4
jcinv(i,j)=0.0;
end
end
jcinv(1,1)=jc_inv(1,1);
jcinv(1,2)=jc_inv(1,2);
jcinv(2,1)=jc_inv(2,1);
jcinv(2,2)=jc_inv(2,2);
jcinv(3,3)=jc_inv(1,1);
jcinv(3,4)=jc_inv(1,2);
jcinv(4,3)=jc_inv(2,1);
jcinv(4,4)=jc_inv(2,2);
strn = aa*jcinv;
for i=1:4
for j = 1:8
binu(i,j)=0.0;
end
end
binu(1,1)=-.25*(1-ti(jj));
binu(1,3)=.25*(1-ti(jj));
binu(1,5)=.25*(1+ti(jj));
binu(1,7)=-.25*(1+ti(jj));
binu(2,1)=-.25*(1-ti(ii));
binu(2,3)=-.25*(1+ti(ii));
binu(2,5)=.25*(1+ti(ii));
binu(2,7)=.25*(1-ti(ii));
binu(3,2)= binu(1,1);
binu(3,4)=binu(1,3);
binu(3,6)=binu(1,5);
binu(3,8)=binu(1,7);
binu(4,2)=binu(2,1);
binu(4,4)=binu(2,3);
binu(4,6)=binu(2,5);
binu(4,8)=binu(2,7);
bb1=strn*binu;
xx(1,1)=guu(1,lk);
xx(2,1)=guu(2,lk);
xx(3,1)=guu(3,lk);
xx(4,1)=guu(4,lk);
xx(5,1)=guu(5,lk);
xx(6,1)=guu(6,lk);
xx(7,1)=guu(7,lk);
xx(8,1)=guu(8,lk);

stres=elas*bb1*xx;

Page 6
New Text Document.txt

% disp(sm);
% fprintf('jj = %d\n',jj);
end
% fprintf('ii = %d\n',ii);
end
fprintf('\n');
fprintf('stresses in the element n0 = %d\n', lk);

disp(stres);
% fprintf('\n');
end

Output
----------
id(1,1)=0
id(1,2)=0
id(2,1)=0
id(2,2)=0
id(3,1)=1
id(3,2)=2
id(4,1)=3
id(4,2)=4
nod(1,1)=1
nod(1,2)=2
nod(1,3)=3
nod(1,4)=4
global stiffness matrix after applying boundary conditions
1.0e+06 *

2.4551 0.7500 -1.8494 -0.0577


0.7500 1.8718 0.0577 -0.1410
-1.8494 0.0577 2.4551 -0.7500
-0.0577 -0.1410 -0.7500 1.8718

gobal deformation
1.0e-04 *

0.3749
-0.4104
0.3352

Page 7
New Text Document.txt
-0.1255

element no = 1
0.000000 0.000000 0.000000 0.000000 0.000037
-0.000041 0.000034 -0.000013

stresses in the element n0 = 1


1.0e+03 *

-0.3110
-1.5000
0.3333

Page 8

Das könnte Ihnen auch gefallen