You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
901 B
26 lines
901 B
%--------------------------
|
|
% @Author: Jingqiao Hu
|
|
% @Date: 2021-06-16 16:05:00
|
|
% @LastEditTime: 2021-06-16 16:24:09
|
|
|
|
% return neighbor eles-id for all node-id
|
|
%--------------------------
|
|
function neid = nodes_eles_id(nelx, nely, P_num, microx)
|
|
|
|
if P_num==0
|
|
[~, ~, ~, ele_nodes_id] = forAssemble(nelx, nely);
|
|
nnodes = (nelx+1) *(nely+1);
|
|
else
|
|
[~, ~, ~, ele_nodes_id] = macro_edofMat_bezier(nelx, nely, P_num);
|
|
border = round(linspace(1, microx+1, 2));
|
|
seg_num = length(border)-1; % segment num divided by added macro dofs
|
|
var_num = P_num*seg_num;
|
|
nnodes = (nelx+1)*(nely+1) + var_num*nely*(nelx+1) + var_num*nelx*(nely+1);
|
|
end
|
|
|
|
neid = cell(nnodes, 1); % maybe different node have different number of neighbor-ele
|
|
for nid = 1:nnodes
|
|
[r,~] = find(ele_nodes_id==nid);
|
|
neid{nid} = r;
|
|
end
|
|
end
|