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.
27 lines
724 B
27 lines
724 B
%--------------------------
|
|
% @Author: Jingqiao Hu
|
|
% @Date: 2021-02-28 15:48:13
|
|
% @LastEditTime: 2021-02-28 15:48:59
|
|
%--------------------------
|
|
% assemble micro global stiffness,
|
|
% NOTE: the order must be the same as dofid, i.e. [ub; uf; ui;]
|
|
function K = micro_assembleK(dofid, material, ke0, ke1, iK, jK)
|
|
|
|
microx = size(material, 1);
|
|
sK = zeros(24^2, microx^3);
|
|
|
|
for i = 1 : microx^3
|
|
if material(i)==1
|
|
sK(:, i) = ke1(:);
|
|
else
|
|
sK(:, i) = ke0(:);
|
|
end
|
|
end
|
|
|
|
new_iK = dofid(iK);
|
|
new_jK = dofid(jK);
|
|
|
|
% sK = reshape(ke(:) * (emin + material(:)' * (e0 - emin)), 64*microx^2, 1);
|
|
K = sparse(new_iK, new_jK, sK(:));
|
|
K = (K + K') / 2;
|
|
end
|