📄 k_assembly.m
字号:
Kgl((t2-2):t2,(t8-2):t8) = Kgl( (t2-2):t2,(t8-2):t8) + Klc(4:6,22:24);
Kgl((t3-2):t3,(t1-2):t1) = Kgl( (t3-2):t3,(t1-2):t1) + Klc(7:9,1:3);
Kgl((t3-2):t3,(t2-2):t2) = Kgl( (t3-2):t3,(t2-2):t2) + Klc(7:9,4:6);
Kgl((t3-2):t3,(t3-2):t3) = Kgl( (t3-2):t3,(t3-2):t3) + Klc(7:9,7:9);
Kgl((t3-2):t3,(t4-2):t4) = Kgl( (t3-2):t3,(t4-2):t4) + Klc(7:9,10:12);
Kgl((t3-2):t3,(t5-2):t5) = Kgl( (t3-2):t3,(t5-2):t5) + Klc(7:9,13:15);
Kgl((t3-2):t3,(t6-2):t6) = Kgl( (t3-2):t3,(t6-2):t6) + Klc(7:9,16:18);
Kgl((t3-2):t3,(t7-2):t7) = Kgl( (t3-2):t3,(t7-2):t7) + Klc(7:9,19:21);
Kgl((t3-2):t3,(t8-2):t8) = Kgl( (t3-2):t3,(t8-2):t8) + Klc(7:9,22:24);
Kgl((t4-2):t4,(t1-2):t1) = Kgl( (t4-2):t4,(t1-2):t1) + Klc(10:12,1:3);
Kgl((t4-2):t4,(t2-2):t2) = Kgl( (t4-2):t4,(t2-2):t2) + Klc(10:12,4:6);
Kgl((t4-2):t4,(t3-2):t3) = Kgl( (t4-2):t4,(t3-2):t3) + Klc(10:12,7:9);
Kgl((t4-2):t4,(t4-2):t4) = Kgl( (t4-2):t4,(t4-2):t4) + Klc(10:12,10:12);
Kgl((t4-2):t4,(t5-2):t5) = Kgl( (t4-2):t4,(t5-2):t5) + Klc(10:12,13:15);
Kgl((t4-2):t4,(t6-2):t6) = Kgl( (t4-2):t4,(t6-2):t6) + Klc(10:12,16:18);
Kgl((t4-2):t4,(t7-2):t7) = Kgl( (t4-2):t4,(t7-2):t7) + Klc(10:12,19:21);
Kgl((t4-2):t4,(t8-2):t8) = Kgl( (t4-2):t4,(t8-2):t8) + Klc(10:12,22:24);
Kgl((t5-2):t5,(t1-2):t1) = Kgl( (t5-2):t5,(t1-2):t1) + Klc(13:15,1:3);
Kgl((t5-2):t5,(t2-2):t2) = Kgl( (t5-2):t5,(t2-2):t2) + Klc(13:15,4:6);
Kgl((t5-2):t5,(t3-2):t3) = Kgl( (t5-2):t5,(t3-2):t3) + Klc(13:15,7:9);
Kgl((t5-2):t5,(t4-2):t4) = Kgl( (t5-2):t5,(t4-2):t4) + Klc(13:15,10:12);
Kgl((t5-2):t5,(t5-2):t5) = Kgl( (t5-2):t5,(t5-2):t5) + Klc(13:15,13:15);
Kgl((t5-2):t5,(t6-2):t6) = Kgl( (t5-2):t5,(t6-2):t6) + Klc(13:15,16:18);
Kgl((t5-2):t5,(t7-2):t7) = Kgl( (t5-2):t5,(t7-2):t7) + Klc(13:15,19:21);
Kgl((t5-2):t5,(t8-2):t8) = Kgl( (t5-2):t5,(t8-2):t8) + Klc(13:15,22:24);
Kgl((t6-2):t6,(t1-2):t1) = Kgl( (t6-2):t6,(t1-2):t1) + Klc(16:18,1:3);
Kgl((t6-2):t6,(t2-2):t2) = Kgl( (t6-2):t6,(t2-2):t2) + Klc(16:18,4:6);
Kgl((t6-2):t6,(t3-2):t3) = Kgl( (t6-2):t6,(t3-2):t3) + Klc(16:18,7:9);
Kgl((t6-2):t6,(t4-2):t4) = Kgl( (t6-2):t6,(t4-2):t4) + Klc(16:18,10:12);
Kgl((t6-2):t6,(t5-2):t5) = Kgl( (t6-2):t6,(t5-2):t5) + Klc(16:18,13:15);
Kgl((t6-2):t6,(t6-2):t6) = Kgl( (t6-2):t6,(t6-2):t6) + Klc(16:18,16:18);
Kgl((t6-2):t6,(t7-2):t7) = Kgl( (t6-2):t6,(t7-2):t7) + Klc(16:18,19:21);
Kgl((t6-2):t6,(t8-2):t8) = Kgl( (t6-2):t6,(t8-2):t8) + Klc(16:18,22:24);
Kgl((t7-2):t7,(t1-2):t1) = Kgl( (t7-2):t7,(t1-2):t1) + Klc(19:21,1:3);
Kgl((t7-2):t7,(t2-2):t2) = Kgl( (t7-2):t7,(t2-2):t2) + Klc(19:21,4:6);
Kgl((t7-2):t7,(t3-2):t3) = Kgl( (t7-2):t7,(t3-2):t3) + Klc(19:21,7:9);
Kgl((t7-2):t7,(t4-2):t4) = Kgl( (t7-2):t7,(t4-2):t4) + Klc(19:21,10:12);
Kgl((t7-2):t7,(t5-2):t5) = Kgl( (t7-2):t7,(t5-2):t5) + Klc(19:21,13:15);
Kgl((t7-2):t7,(t6-2):t6) = Kgl( (t7-2):t7,(t6-2):t6) + Klc(19:21,16:18);
Kgl((t7-2):t7,(t7-2):t7) = Kgl( (t7-2):t7,(t7-2):t7) + Klc(19:21,19:21);
Kgl((t7-2):t7,(t8-2):t8) = Kgl( (t7-2):t7,(t8-2):t8) + Klc(19:21,22:24);
Kgl((t8-2):t8,(t1-2):t1) = Kgl( (t8-2):t8,(t1-2):t1) + Klc(22:24,1:3);
Kgl((t8-2):t8,(t2-2):t2) = Kgl( (t8-2):t8,(t2-2):t2) + Klc(22:24,4:6);
Kgl((t8-2):t8,(t3-2):t3) = Kgl( (t8-2):t8,(t3-2):t3) + Klc(22:24,7:9);
Kgl((t8-2):t8,(t4-2):t4) = Kgl( (t8-2):t8,(t4-2):t4) + Klc(22:24,10:12);
Kgl((t8-2):t8,(t5-2):t5) = Kgl( (t8-2):t8,(t5-2):t5) + Klc(22:24,13:15);
Kgl((t8-2):t8,(t6-2):t6) = Kgl( (t8-2):t8,(t6-2):t6) + Klc(22:24,16:18);
Kgl((t8-2):t8,(t7-2):t7) = Kgl( (t8-2):t8,(t7-2):t7) + Klc(22:24,19:21);
Kgl((t8-2):t8,(t8-2):t8) = Kgl( (t8-2):t8,(t8-2):t8) + Klc(22:24,22:24);
% global M
M(t1-2,t1-2) = M(t1-2,t1-2) + fM(1);
M(t1-1,t1-1) = M(t1-1,t1-1) + fM(2);
M(t1,t1) = M(t1,t1) + fM(3);
M(t2-2,t2-2) = M(t2-2,t2-2) + fM(4);
M(t2-1,t2-1) = M(t2-1,t2-1) + fM(5);
M(t2,t2) = M(t2,t2) + fM(6);
M(t3-2,t3-2) = M(t3-2,t3-2) + fM(7);
M(t3-1,t3-1) = M(t3-1,t3-1) + fM(8);
M(t3,t3) = M(t3,t3) + fM(9);
M(t4-2,t4-2) = M(t4-2,t4-2) + fM(10);
M(t4-1,t4-1) = M(t4-1,t4-1) + fM(11);
M(t4,t4) = M(t4,t4) + fM(12);
M(t5-2,t5-2) = M(t5-2,t5-2) + fM(13);
M(t5-1,t5-1) = M(t5-1,t5-1) + fM(14);
M(t5,t5) = M(t5,t5) + fM(15);
M(t6-2,t6-2) = M(t6-2,t6-2) + fM(16);
M(t6-1,t6-1) = M(t6-1,t6-1) + fM(17);
M(t6,t6) = M(t6,t6) + fM(18);
M(t7-2,t7-2) = M(t7-2,t7-2) + fM(19);
M(t7-1,t7-1) = M(t7-1,t7-1) + fM(20);
M(t7,t7) = M(t7,t7) + fM(21);
M(t8-2,t8-2) = M(t8-2,t8-2) + fM(22);
M(t8-1,t8-1) = M(t8-1,t8-1) + fM(23);
M(t8,t8) = M(t8,t8) + fM(24);
end;
if in_data.EL(i,2)==5 % "5" - CSQ element (quadrilateral) ------------------
% rhoX is considered = rhoY
node1 = find(in_data.ND(:,1)==in_data.EL(i,3));
node2 = find(in_data.ND(:,1)==in_data.EL(i,4));
node3 = find(in_data.ND(:,1)==in_data.EL(i,5));
node4 = find(in_data.ND(:,1)==in_data.EL(i,6));
if in_data.mater.E~=0 Em=in_data.mater.E; else Em=in_data.EL(i,7); end;
if in_data.mater.h~=0
if length(in_data.mater.h)==1 hT=[1 1 1 1].*in_data.mater.h; end
if length(in_data.mater.h)==4 hT=in_data.mater.h; end
else hT = in_data.EL(i,8:11); end; % element thickness at 4 nodes
if in_data.mater.miu~=0 miu_1=in_data.mater.miu; else miu_1 = in_data.EL(i,12); end;
[Bsys,Esys,Klc,Msys] = D2_CSQ (in_data.ND(node1,2),in_data.ND(node1,3), ...
in_data.ND(node2,2),in_data.ND(node2,3),in_data.ND(node3,2),in_data.ND(node3,3),...
in_data.ND(node4,2),in_data.ND(node4,3), Em, hT, miu_1);
Msys = Msys.*in_data.mater.rhoX;
t1 = node1*2; t2 = node2*2; t3 = node3*2; t4 = node4*2;
x1 = in_data.ND(node1,2); y1 = in_data.ND(node1,3);
x2 = in_data.ND(node2,2); y2 = in_data.ND(node2,3);
x3 = in_data.ND(node3,2); y3 = in_data.ND(node3,3);
x4 = in_data.ND(node4,2); y4 = in_data.ND(node4,3);
% A1 = abs(0.5 * det([1 1 1; x1 x2 x4; y1 y2 y4]) ); % 1st triangle area
% A2 = abs(0.5 * det([1 1 1; x4 x2 x3; y4 y2 y3]) ); % 1st triangle area
% A = A1+A2; % quadrilateral area
% global K
Kgl((t1-1):t1,(t1-1):t1) = Kgl( (t1-1):t1,(t1-1):t1) + Klc(1:2,1:2);
Kgl((t1-1):t1,(t2-1):t2) = Kgl( (t1-1):t1,(t2-1):t2) + Klc(1:2,3:4);
Kgl((t1-1):t1,(t3-1):t3) = Kgl( (t1-1):t1,(t3-1):t3) + Klc(1:2,5:6);
Kgl((t1-1):t1,(t4-1):t4) = Kgl( (t1-1):t1,(t4-1):t4) + Klc(1:2,7:8);
Kgl((t2-1):t2,(t1-1):t1) = Kgl( (t2-1):t2,(t1-1):t1) + Klc(3:4,1:2);
Kgl((t2-1):t2,(t2-1):t2) = Kgl( (t2-1):t2,(t2-1):t2) + Klc(3:4,3:4);
Kgl((t2-1):t2,(t3-1):t3) = Kgl( (t2-1):t2,(t3-1):t3) + Klc(3:4,5:6);
Kgl((t2-1):t2,(t4-1):t4) = Kgl( (t2-1):t2,(t4-1):t4) + Klc(3:4,7:8);
Kgl((t3-1):t3,(t1-1):t1) = Kgl( (t3-1):t3,(t1-1):t1) + Klc(5:6,1:2);
Kgl((t3-1):t3,(t2-1):t2) = Kgl( (t3-1):t3,(t2-1):t2) + Klc(5:6,3:4);
Kgl((t3-1):t3,(t3-1):t3) = Kgl( (t3-1):t3,(t3-1):t3) + Klc(5:6,5:6);
Kgl((t3-1):t3,(t4-1):t4) = Kgl( (t3-1):t3,(t4-1):t4) + Klc(5:6,7:8);
Kgl((t4-1):t4,(t1-1):t1) = Kgl( (t4-1):t4,(t1-1):t1) + Klc(7:8,1:2);
Kgl((t4-1):t4,(t2-1):t2) = Kgl( (t4-1):t4,(t2-1):t2) + Klc(7:8,3:4);
Kgl((t4-1):t4,(t3-1):t3) = Kgl( (t4-1):t4,(t3-1):t3) + Klc(7:8,5:6);
Kgl((t4-1):t4,(t4-1):t4) = Kgl( (t4-1):t4,(t4-1):t4) + Klc(7:8,7:8);
% global M
M((t1-1):t1,(t1-1):t1) = M( (t1-1):t1,(t1-1):t1) + Msys(1:2,1:2);
M((t1-1):t1,(t2-1):t2) = M( (t1-1):t1,(t2-1):t2) + Msys(1:2,3:4);
M((t1-1):t1,(t3-1):t3) = M( (t1-1):t1,(t3-1):t3) + Msys(1:2,5:6);
M((t1-1):t1,(t4-1):t4) = M( (t1-1):t1,(t4-1):t4) + Msys(1:2,7:8);
M((t2-1):t2,(t1-1):t1) = M( (t2-1):t2,(t1-1):t1) + Msys(3:4,1:2);
M((t2-1):t2,(t2-1):t2) = M( (t2-1):t2,(t2-1):t2) + Msys(3:4,3:4);
M((t2-1):t2,(t3-1):t3) = M( (t2-1):t2,(t3-1):t3) + Msys(3:4,5:6);
M((t2-1):t2,(t4-1):t4) = M( (t2-1):t2,(t4-1):t4) + Msys(3:4,7:8);
M((t3-1):t3,(t1-1):t1) = M( (t3-1):t3,(t1-1):t1) + Msys(5:6,1:2);
M((t3-1):t3,(t2-1):t2) = M( (t3-1):t3,(t2-1):t2) + Msys(5:6,3:4);
M((t3-1):t3,(t3-1):t3) = M( (t3-1):t3,(t3-1):t3) + Msys(5:6,5:6);
M((t3-1):t3,(t4-1):t4) = M( (t3-1):t3,(t4-1):t4) + Msys(5:6,7:8);
M((t4-1):t4,(t1-1):t1) = M( (t4-1):t4,(t1-1):t1) + Msys(7:8,1:2);
M((t4-1):t4,(t2-1):t2) = M( (t4-1):t4,(t2-1):t2) + Msys(7:8,3:4);
M((t4-1):t4,(t3-1):t3) = M( (t4-1):t4,(t3-1):t3) + Msys(7:8,5:6);
M((t4-1):t4,(t4-1):t4) = M( (t4-1):t4,(t4-1):t4) + Msys(7:8,7:8);
end;
if in_data.EL(i,2)==9 % "9" - BCIZ bending plate element (triangle) ----
% must: rhoX = rhoY
node1 = find(in_data.ND(:,1)==in_data.EL(i,3));
node2 = find(in_data.ND(:,1)==in_data.EL(i,4));
node3 = find(in_data.ND(:,1)==in_data.EL(i,5));
if in_data.mater.E~=0 E1=in_data.mater.E; else E1=in_data.EL(i,6); end;
if in_data.mater.h~=0 h_1=in_data.mater.h; else h_1 = in_data.EL(i,7); end;
if in_data.mater.miu~=0 miu_1=in_data.mater.miu; else miu_1 = in_data.EL(i,8); end;
[Klc,ML] = D2_BCIZ (in_data.ND(node1,2),in_data.ND(node1,3),in_data.ND(node2,2),...
in_data.ND(node2,3),in_data.ND(node3,2),in_data.ND(node3,3),E1,h_1,miu_1);
t1 = node1*dof_per_node; t2 = node2*dof_per_node; t3 = node3*dof_per_node;
x1 = in_data.ND(node1,2); y1 = in_data.ND(node1,3);
x2 = in_data.ND(node2,2); y2 = in_data.ND(node2,3);
x3 = in_data.ND(node3,2); y3 = in_data.ND(node3,3);
A = (0.5 * det([1 1 1; x1 x2 x3; y1 y2 y3]) ); % triangle area
% mass matrix * material density
ML = ML.*in_data.mater.rhoX;
% global stiffness matrix:
Kgl((t1-2):t1,(t1-2):t1) = Kgl( (t1-2):t1,(t1-2):t1) + Klc(1:3,1:3);
Kgl((t1-2):t1,(t2-2):t2) = Kgl( (t1-2):t1,(t2-2):t2) + Klc(1:3,4:6);
Kgl((t1-2):t1,(t3-2):t3) = Kgl( (t1-2):t1,(t3-2):t3) + Klc(1:3,7:9);
Kgl((t2-2):t2,(t1-2):t1) = Kgl( (t2-2):t2,(t1-2):t1) + Klc(4:6,1:3);
Kgl((t2-2):t2,(t2-2):t2) = Kgl( (t2-2):t2,(t2-2):t2) + Klc(4:6,4:6);
Kgl((t2-2):t2,(t3-2):t3) = Kgl( (t2-2):t2,(t3-2):t3) + Klc(4:6,7:9);
Kgl((t3-2):t3,(t1-2):t1) = Kgl( (t3-2):t3,(t1-2):t1) + Klc(7:9,1:3);
Kgl((t3-2):t3,(t2-2):t2) = Kgl( (t3-2):t3,(t2-2):t2) + Klc(7:9,4:6);
Kgl((t3-2):t3,(t3-2):t3) = Kgl( (t3-2):t3,(t3-2):t3) + Klc(7:9,7:9);
% global mass matrix:
M((t1-2):t1,(t1-2):t1) = M( (t1-2):t1,(t1-2):t1) + ML(1:3,1:3);
M((t1-2):t1,(t2-2):t2) = M( (t1-2):t1,(t2-2):t2) + ML(1:3,4:6);
M((t1-2):t1,(t3-2):t3) = M( (t1-2):t1,(t3-2):t3) + ML(1:3,7:9);
M((t2-2):t2,(t1-2):t1) = M( (t2-2):t2,(t1-2):t1) + ML(4:6,1:3);
M((t2-2):t2,(t2-2):t2) = M( (t2-2):t2,(t2-2):t2) + ML(4:6,4:6);
M((t2-2):t2,(t3-2):t3) = M( (t2-2):t2,(t3-2):t3) + ML(4:6,7:9);
M((t3-2):t3,(t1-2):t1) = M( (t3-2):t3,(t1-2):t1) + ML(7:9,1:3);
M((t3-2):t3,(t2-2):t2) = M( (t3-2):t3,(t2-2):t2) + ML(7:9,4:6);
M((t3-2):t3,(t3-2):t3) = M( (t3-2):t3,(t3-2):t3) + ML(7:9,7:9);
end;
end; % end iterating through all elements -------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -