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