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.
29 lines
825 B
29 lines
825 B
%--------------------------
|
|
% @Author: Jingqiao Hu
|
|
% @Date: 2021-09-18 14:13:07
|
|
% @LastEditTime: 2021-09-18 14:59:44
|
|
%--------------------------
|
|
function dF = update_dF(edofMat_mi, eleNum_ma, n, dNh_e)
|
|
eleNum_mi = size(edofMat_mi, 1);
|
|
I = eye(eleNum_mi);
|
|
|
|
initF = repmat([1;0;0;1], 1, eleNum_mi);
|
|
dF = cell(4, eleNum_ma);
|
|
|
|
tmp_edof = edofMat_mi';
|
|
|
|
for gp = 1:4
|
|
dNh_g = dNh_e{gp}; % 4*8
|
|
dNh1 = kron(I, dNh_g); % [4m, 8m]
|
|
|
|
for ele = 1:eleNum_ma
|
|
ne = n{ele};
|
|
n1 = ne(:, tmp_edof(:))'; % [8m, 2v]
|
|
dNH = dNh1 * n1; % [4m, 2v]
|
|
|
|
% reshape dNH to [4,2v,m]
|
|
dN1 = reshape(dNH, 4, eleNum_mi, []); % [4,m,2v]
|
|
dF{gp, ele} = permute(dN1, [1,3,2]); % [4,2v,m]
|
|
end
|
|
end
|
|
end
|