X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fsecs2d-0.0.8%2FMETLINES%2FMETLINEScapcomp.m;fp=octave_packages%2Fsecs2d-0.0.8%2FMETLINES%2FMETLINEScapcomp.m;h=8e1b37491dcab3a166d1d4f5fab757eeb80f7774;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/secs2d-0.0.8/METLINES/METLINEScapcomp.m b/octave_packages/secs2d-0.0.8/METLINES/METLINEScapcomp.m new file mode 100644 index 0000000..8e1b374 --- /dev/null +++ b/octave_packages/secs2d-0.0.8/METLINES/METLINEScapcomp.m @@ -0,0 +1,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