rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
lagrange_nodes_edges.m
1 function edges = lagrange_nodes_edges(pdeg);
2 %function edges = lagrange_nodes_edges(pdeg);
3 %
4 % function returning a matrix indicating the containment of
5 % lagrange nodes in local edges.
6 % edges(lid,eid)
7 % => 1 if lagrange node with index lid is lying on edge local index eid
8 % => 0 if lagrange node with index lid is not lying on edge local eid
9 
10 % Bernard Haasdonk 12.1.2011
11 
12 if pdeg <= 0
13  error('pdeg not supported!');
14 end;
15 
16 switch pdeg
17  case 1
18  edges = [1, 0, 1; 1, 1, 0; 0, 1, 1];
19  case 2
20  edges = [1, 0, 1; 1, 0, 0; 1, 1, 0; 0, 0, 1; 0, 1, 0; 0, 1, 1];
21  case 3
22  edges = [1, 0, 1; 1, 0, 0; 1, 0, 0; 1, 1, 0; 0, 0, 1; 0, 0, 0; ...
23  0, 1, 0; 0, 0, 1; 0, 1, 0; 0, 1, 1];
24  otherwise
25  lagrange_nodes = lagrange_nodes_lcoord(pdeg);
26  edges = zeros(size(lagrange_nodes,1),3);
27  i = find(abs(lagrange_nodes(:,2))<=eps); % i.e. lower edge 1
28  edges(i,1)= 1;
29  i = find(abs(lagrange_nodes(:,1))<=eps); % i.e. left edge 3
30  edges(i,3)= 1;
31  i = find(abs(1-lagrange_nodes(:,1)-lagrange_nodes(:,2))<=eps); % i.e. right edge 2
32  edges(i,2)= 1;
33 end;