36 lines
1.3 KiB
Mathematica
36 lines
1.3 KiB
Mathematica
|
|
function [NodeStrain,NodeStress]=CalculateStrainAndStress2(U,D,Nodes,Elements)
|
|||
|
|
numEle= size(Elements,1); %<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
NodeStress=zeros(3,numEle*8);
|
|||
|
|
kesi_yita_Node=[-1,-1;1,-1;1,1;-1,1;0,-1;1,0;0,1;-1,0];
|
|||
|
|
for i=1:numEle
|
|||
|
|
noindex=Elements(i,:);
|
|||
|
|
d=zeros(8,1);
|
|||
|
|
for j=1:8
|
|||
|
|
|
|||
|
|
d(2*j-1)=U((noindex(j)-1)*2+1);
|
|||
|
|
d(2*j)=U((noindex(j)-1)*2+2);
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
for m=1:8
|
|||
|
|
kesi=kesi_yita_Node(m,1);
|
|||
|
|
yita=kesi_yita_Node(m,2);
|
|||
|
|
%%%%%%%%
|
|||
|
|
J = Jacobi(i,kesi,yita,Elements,Nodes); % <EFBFBD>ſɱȾ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Nst = DiffShapeFun(kesi,yita); % <EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>s,t<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Nxy = zeros(8,2);
|
|||
|
|
for j=1:8
|
|||
|
|
Nxy(j,:) = (J\Nst(j,:)')'; % <EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x,y <EFBFBD><EFBFBD><EFBFBD><EFBFBD>=inv(J)*Nst
|
|||
|
|
end
|
|||
|
|
Bm = [Nxy(1,1) 0 Nxy(2,1) 0 Nxy(3,1) 0 Nxy(4,1) 0 Nxy(5,1) 0 Nxy(6,1) 0 Nxy(7,1) 0 Nxy(8,1) 0;
|
|||
|
|
0 Nxy(1,2) 0 Nxy(2,2) 0 Nxy(3,2) 0 Nxy(4,2) 0 Nxy(5,2) 0 Nxy(6,2) 0 Nxy(7,2) 0 Nxy(8,2);
|
|||
|
|
Nxy(1,2) Nxy(1,1) Nxy(2,2) Nxy(2,1) Nxy(3,2) Nxy(3,1) Nxy(4,2) Nxy(4,1) Nxy(5,2) Nxy(5,1) Nxy(6,2) Nxy(6,1) Nxy(7,2) Nxy(7,1) Nxy(8,2) Nxy(8,1)];
|
|||
|
|
%%%%%%%%%%
|
|||
|
|
sigma=D*Bm*d
|
|||
|
|
epsilon=Bm*d;
|
|||
|
|
NodeStress(1:3,(i-1)*8+m)=sigma;
|
|||
|
|
NodeStrain(1:3,(i-1)*8+m)=epsilon;
|
|||
|
|
end
|
|||
|
|
end
|