1 function vols = get_volume(grid,gids)
2 %
function vols = get_volume(grid,gids)
3 % method determining the volumes of a set of elements
5 % A simple product of edge-lengths is computed, i.e. the edges are assumed to
12 % vols: The volumes
for the elements given by
'gids'.
14 % @note The computation
for multiple gids is trivially performed by a loop.
15 % Vectorization must be done sometime!!
17 % Bernard Haasdonk 27.3.2007
19 vols = ones(size(gids));
22 % determine edge indices, which are to be used:
23 % 0D: eid(0) = [] of ne(0) = 0 edges
24 % 1D. eid = [1] of ne(1) = 1 edges
25 % 2D. eid = [1, 3] of ne(2) = 4 edges
26 % 3D. eid = [1, 3, 9] of ne(3) = 12 edges
27 % ND: eid(N) = [eid(N-1), 2* ne(N-1)+1] of ne(N) = 2*ne(N-1) + 2^(N-1) edges
36 for gid = 1:length(gids);
37 [p0,p1] = get_edges(grid,gids(gid));
38 diff = p0(:,eid)-p1(:,eid);
39 len = sqrt(sum(diff.^2));
40 vols(gid) = prod(len);