% every micro ele in contourf function [elesOffsetx,elesOffsety, nodesOffsetx, nodesOffsety] = offsetSIMP... (eles, nodes, microx, microy, nelx, nely) elesOffsetx = zeros(nely, nelx, microx); elesOffsety = zeros(nely, nelx, microy); nodesOffsetx = zeros(nely, nelx, microx+1); nodesOffsety = zeros(nely, nelx, microy+1); for i = 1:nelx for j = 1:nely ele = j + (i-1)*nely; pos = nodes(eles(ele,:),1:2); elex = min(pos(:,1)); % begin with 0 eley = max(pos(:,2)); elesOffsetx(j,i,:) = elex*microx+1:(elex+1)*(microx); % matrix idx in matlab: y-coordinate: % 1 10 % | | % y 9 elesOffsety(j,i,:) = (nely-eley)*microy+1:(nely-eley+1)*(microy); nodesOffsetx(j,i,:) = elex*microx+1:(elex+1)*(microx)+1; nodesOffsety(j,i,:) = (nely-eley)*microy+1:(nely-eley+1)*(microy)+1; end end end