%-------------------------- % @Author: Jingqiao Hu % @Date: 2021-09-03 14:24:03 % @LastEditTime: 2021-09-06 14:08:59 % return global_id of the dofs in micro-cell %-------------------------- function [cell2global_id, global2cell_id] = global_micro_id(nelx, nely, microx) globaly = nely * microx; nele_global = nelx*nely*microx^2; global_id = zeros(nele_global, 1); idx = 0; for i = 1:nelx for j = 1:nely % ele_ma = j + (i-1)*nely; for ii = 1:microx for jj = 1:microx idx = idx+1; global_i = (i-1) * microx + ii; global_j = (j-1) * microx + jj; global_ele = global_j + (global_i - 1) * globaly; global_id(idx) = global_ele; % % ele_mi = (ii-1) * microx + jj; % global_ele2 = (ele_ma-1)*microx^2 + ele_mi; % cell_id(idx,1) = global_ele2; % cell_id(idx,2) = global_ele2; end end end end global2cell_id = global_id; global_id(:,2) = 1 : nele_global; id2 = sortrows(global_id, 1); cell2global_id = id2(:,2); % cell_id(:,2) = 1 : nele_global; % id2 = sortrows(cell_id, 1); end