%-------------------------- % @Author: Jingqiao Hu % @Date: 2020-10-29 15:04:15 % @LastEditTime: 2021-01-10 10:17:57 %-------------------------- function [usol] = micro_FEA_KUBC(nelx, nely, iK, jK, inner, outer, ufixed, xPhys, KE0, KE1) sK = zeros(64, nelx*nely); for ele = 1:nelx*nely if xPhys(ele)==1 sK(:, ele) = KE1(:); else sK(:, ele) = KE0(:); end end sK = sK(:); % sK = reshape(KE(:) * (Emin + xPhys(:)' * (E0 - Emin)), 64 * nelx * nely, 1); K = sparse(iK, jK, sK); K = (K + K') / 2; umicro = zeros(size(ufixed)); % uouter = ufixed'; % uouter = uouter(:); Fr = -K(inner, outer) * ufixed(outer, :); umicro(inner, :) = K(inner,inner) \ Fr; usol = umicro + ufixed; end