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.

30 lines
713 B

3 years ago
%--------------------------
% @Author: Jingqiao Hu
% @Date: 2021-12-11 21:14:42
% @LastEditTime: 2021-12-11 21:14:42
%--------------------------
function [v_local, v] = volume_cvt(rho_cell, area_cell, optVcons, area0, area_regulator)
ncvt = size(rho_cell, 1);
v_local = zeros(ncvt, 1);
v_global = 0;
parfor ele = 1:ncvt
area = area_cell{ele};
v = area .* rho_cell{ele};
v_local(ele) = sum(v) / sum(area);
v_global = v_global + sum(v);
end
switch optVcons
case 'pnorm'
v_local = v_local .* area_regulator;
pn = 16;
v = (mean(v_local.^pn))^(1/pn);
case 'overall'
v = v_global / area0;
end
end