27 lines
1.2 KiB
Mathematica
27 lines
1.2 KiB
Mathematica
|
|
function ke=ele_stiff_matrix(E_ID,Nodes,Elements,E,u,Width)
|
|||
|
|
ENodes(:,1) = Elements(E_ID,:);
|
|||
|
|
iN = size(ENodes,1);
|
|||
|
|
ke = zeros(2*iN,2*iN);
|
|||
|
|
D=[E/(1-u^2),u*E/(1-u^2),0;
|
|||
|
|
u*E/(1-u^2),E/(1-u^2),0;
|
|||
|
|
0,0,E/(2*(1+u))];
|
|||
|
|
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
kesi_yita=[-1/sqrt(3),-1/sqrt(3);1/sqrt(3),-1/sqrt(3);1/sqrt(3),1/sqrt(3);-1/sqrt(3),1/sqrt(3)];
|
|||
|
|
|
|||
|
|
w=[1,1];ww=[w(1)*w(1),w(2)*w(1),w(1)*w(1),w(1)*w(2)];
|
|||
|
|
% <EFBFBD><EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><EFBFBD>㵥Ԫ<EFBFBD>նȾ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
for i=1:4
|
|||
|
|
kesi=kesi_yita(i,1);yita=kesi_yita(i,2); %提取形函数对kesi(或yita)的偏导<EFBFBD><EFBFBD>?
|
|||
|
|
J = Jacobi(E_ID,kesi,yita,Elements,Nodes); % <EFBFBD>ſɱȾ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
% J=Q4_J(kesi,yita,xy); %计算J矩阵
|
|||
|
|
A=1/det(J)*[ J(2,2),-J(1,2), 0, 0;
|
|||
|
|
0, 0,-J(2,1), J(1,1);
|
|||
|
|
-J(2,1), J(1,1), J(2,2),-J(1,2)]; %根据J矩阵计算A矩阵
|
|||
|
|
G=Q4_G(kesi,yita); %根据偏导值计算G矩阵
|
|||
|
|
B=A*G; %根据A和G计算应变矩阵B(高斯积分点处的应变矩阵B<EFBFBD><EFBFBD>?
|
|||
|
|
|
|||
|
|
ke=ke+ww(i)*B'*D*B*Width*det(J);
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
end
|