%-------------------------- % @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