rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
ldg_inv_mass_matrix.m
1 function Minv = ldg_inv_mass_matrix(df,grid,qdeg)
2 %function Minv = ldg_inv_mass_matrix(df,grid,qdeg)
3 %
4 % function computing the sparse mass matrix of a discrete ldg
5 % function on grid with quadrature of degree qdeg.
6 % df can be a ldgdiscfunc or a structure with fields pdeg and dimrange
7 
8 % Bernard Haasdonk 31.8.2009
9 
10 Mref = inv(ldg_reference_mass_matrix(df,qdeg));
11 Mref = reshape(Mref,[size(Mref),1]);
12 Mseq = repmat(Mref,[1,1,grid.nelements]);
13 
14 n = size(Mref,1)*grid.nelements;
15 Minv = spblkdiag(Mseq); % my own function... 1000 times faster than builtin
16 diagvals = repmat(grid.Ainv(:)'/2,size(Mref,1),1);
17 diagvals = diagvals(:);
18 D = spdiags(diagvals,0,n,n);
19 Minv = Minv * D;%| \docupdate
an ldg shape functions implementation
Definition: ldgdiscfunc.m:17
nelements
number of overall elements (leaf + nonleaf)
Definition: gridbase.m:30
Ainv
vector of inverted element area
Definition: gridbase.m:58