File: METLINEScapcomp.m

package info (click to toggle)
octave-secs2d 0.0.8-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 696 kB
  • ctags: 93
  • sloc: cpp: 275; makefile: 78; sh: 4
file content (41 lines) | stat: -rw-r--r-- 791 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function [C,L,Lii,LiI,LII,Dnodes,varnodes]=...
      METLINEScapcomp(imesh,epsilon,contacts)

##
##
## [C,L,Lii,LiI,LII,Dnodes,varnodes]=METLINEScapcomp(imesh,epsilon,contacts)
##
##

Ncontacts = length(contacts);
Nnodes = columns(imesh.p);
varnodes = [1:Nnodes];

for ii=1:Ncontacts
  Dnodes{ii}=Unodesonside(imesh,contacts{ii});
  varnodes = setdiff(varnodes,Dnodes{ii});
end

L = Ucomplap (imesh,epsilon);

for ii=1:Ncontacts
  Lii{ii} = L(Dnodes{ii},Dnodes{ii});
  LiI{ii} = L(Dnodes{ii},varnodes);
end
LII =  L(varnodes,varnodes);

for ii=1:Ncontacts
  for jj=ii:Ncontacts
    if ii==jj
      C(ii,jj)=sum(sum(Lii{ii}-LiI{ii}*(LII\(LiI{ii})')));
    else
      C(ii,jj)=sum(sum(-LiI{ii}*(LII\(LiI{jj})')));
    end
  end
end

for ii=1:4
  for jj=1:ii-1
    C(ii,jj)=C(jj,ii);
  end
end