function [node_xy,elem_node] = ElemQ4(L,H,m,n,varargin) % ====================================================% % function to create Q4 elements (2D) % % INPUT: % % > length (L) and height (H), % % > division over x (m) and division over y (n) % % > option for plotting (varargin) % % OUTPUT: % % > coordinate of nodes [node_xy] % % > element connectivity [elem_node] % % ====================================================% % Nodes coordinates [x y] [x,y] = meshgrid(0:L/m:L,0:H/n:H); node_xy = [x(:) y(:)]; node_xy = sortrows(node_xy,2); % Connectivity matrix [node1 node2 node3 node4] elem_node = []; for i = 1:n for j = 1:m elem_i = [[j j+1] [j+1 j]+(m+1)] + (m+1)*(i-1); elem_node = cat(1,elem_node,elem_i); end end %=================================== % Plot (optional) %=================================== if nargin > 4 figure plot(node_xy(:,1),node_xy(:,2),'ro') hold on for j = 1:size(elem_node,1) for k = 1:size(elem_node,2)-1 pause(0.2) plot(node_xy(elem_node(j,k:k+1),1),... node_xy(elem_node(j,k:k+1),2),'b:','linewidth',3) end end hold off end end