rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
ldg_mass_matrix.m
1 function M = ldg_mass_matrix(df,grid,params)
2 %function M = ldg_mass_matrix(df,grid,params)
3 %
4 % function computing the sparse mass matrix of a discrete ldg
5 % function on grid with quadrature of degree params.qdeg.
6 % df can be a ldgdiscfunc or a structure with fields pdeg and dimrange
7 
8 % Bernard Haasdonk 31.8.2009
9 qdeg = params.qdeg;
10 Mref = 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 M = spblkdiag(Mseq); % my own function... 1000 times faster than builtin
16 diagvals = repmat(grid.A(:)'*2,size(Mref,1),1);
17 diagvals = diagvals(:);
18 D = spdiags(diagvals,0,n,n);
19 M = M * D;
20 
21 %Mref = sparse(ldg_reference_mass_matrix(df,qdeg));
22 %n = size(Mref,1)*grid.nelements;
23 %Mseq = cell(1,grid.nelements);
24 %[Mseq{:}] = deal(Mref);
25 %M = blkdiag(Mseq{:});
26 %diagvals = repmat(grid.A(:)'*2,size(Mref,1),1);
27 %diagvals = diagvals(:);
28 %D = spdiags(diagvals,0,n,n);
29 %M = M * D;%| \docupdate
A
vector of element area
Definition: gridbase.m:51
an ldg shape functions implementation
Definition: ldgdiscfunc.m:17
nelements
number of overall elements (leaf + nonleaf)
Definition: gridbase.m:30