You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

32 lines
1.1 KiB

function Ke = intKE(a,b,DH,optKE)
GaussNodes = [-1/sqrt(3); 1/sqrt(3)]; GaussWeigh = [1 1];
if optKE==1
L = [1 0 0 0; 0 0 0 1; 0 1/2 1/2 0];
else
L = [1 0 0 0; 0 0 0 1; 0 1 1 0];
end
Ke = zeros(8,8);
for i = 1:length(GaussNodes)
for j = 1:length(GaussNodes)
GN_x = GaussNodes(i);
GN_y = GaussNodes(j);
% dN_x = 1/4*[-(1-GN_x) (1-GN_x) (1+GN_x) -(1+GN_x)];
% dN_y = 1/4*[-(1-GN_y) -(1+GN_y) (1+GN_y) (1-GN_y)];
dN_y = 1/4*[-(1-GN_x) -(1+GN_x) (1+GN_x) (1-GN_x)];
dN_x = 1/4*[-(1-GN_y) (1-GN_y) (1+GN_y) -(1+GN_y)];
J = [dN_x; dN_y]*[ -a a a -a;
-b -b b b]';
G = [inv(J) zeros(size(J));
zeros(size(J)) inv(J)];
dN(1,1:2:8) = dN_x; dN(2,1:2:8) = dN_y;
dN(3,2:2:8) = dN_x; dN(4,2:2:8) = dN_y;
Be = L*G*dN;
Ke = Ke + GaussWeigh(i)*GaussWeigh(j)*det(J)*Be'*DH*Be;
end
end
end