37 lines
1.4 KiB
Mathematica
37 lines
1.4 KiB
Mathematica
|
|
|
|||
|
|
function [NodeStrain,NodeStress]=NodeStressStrain(U,D,Nodes,Elements)
|
|||
|
|
ElementNum= size(Elements,1); %<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Dof=3;
|
|||
|
|
NodeStrain=zeros(6,ElementNum*4);%11 22 33 12 13 23
|
|||
|
|
NodeStress=zeros(6,ElementNum*4);
|
|||
|
|
Strain = zeros(6,1);
|
|||
|
|
Stress = zeros(6,1);
|
|||
|
|
%ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>ܸ<EFBFBD>
|
|||
|
|
for i=1:ElementNum
|
|||
|
|
% <EFBFBD><EFBFBD>Ԫ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ElementNodeCoordinate=Nodes(Elements(i,:),:); %4*3
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD>㵥Ԫ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶȱ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
|
|||
|
|
ElementNodeDOF=zeros(1,12);%3*4
|
|||
|
|
for j=1:4
|
|||
|
|
ii=(j-1)*Dof+1;
|
|||
|
|
%<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܸնȾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ElementNodeDOF(ii:ii+2)=(Elements(i,j)-1)*Dof+1:(Elements(i,j)-1)*Dof+3;
|
|||
|
|
end
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
[NDxyz, ~] = ShapeFunction(ElementNodeCoordinate);%[DN1Dx DN2Dx DN3Dx;DN1Dy DN2Dy DN3Dy;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
|
|||
|
|
ElementNodeDisplacement=U(ElementNodeDOF);%12*1 <EFBFBD>ڵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ElementNodeDisplacement=reshape(ElementNodeDisplacement,Dof,4);%3*4
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD>㵥ԪӦ<EFBFBD><EFBFBD> Strain3_3 3*3<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Strain3_3=ElementNodeDisplacement*NDxyz';%<EFBFBD><EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD>ֵ㴦Ӧ<EFBFBD><EFBFBD> 3*4 4*3
|
|||
|
|
%<EFBFBD>ѵ<EFBFBD>ԪӦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>6*1
|
|||
|
|
Strain=[Strain3_3(1,1) Strain3_3(2,2) Strain3_3(3,3) ...
|
|||
|
|
Strain3_3(1,2)+Strain3_3(2,1)....
|
|||
|
|
Strain3_3(2,3)+Strain3_3(3,2) Strain3_3(1,3)+Strain3_3(3,1)]';
|
|||
|
|
Stress(1:6,1) = D*Strain;%<EFBFBD><EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD>ֵ㴦Ӧ<EFBFBD><EFBFBD>
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD>ýڵ<EFBFBD>Ӧ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>
|
|||
|
|
for X = 1:4
|
|||
|
|
NodeStrain(1:6,((i-1)*4+X)) = Strain(1:6,1);%<EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD><EFBFBD><EFBFBD>Ԫ4<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD>ŵ<EFBFBD>Ԫ4<EFBFBD>ڵ㣻2<EFBFBD>ŵ<EFBFBD>Ԫ4<EFBFBD>ڵ<EFBFBD>
|
|||
|
|
NodeStress(1:6,((i-1)*4+X)) = Stress(1:6,1);
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
end
|