Home > vbmeg > external > iso2mesh > meshconn.m

meshconn

PURPOSE ^

SYNOPSIS ^

function [conn,connnum,count]=meshconn(elem,nn)

DESCRIPTION ^

 [conn,connnum,count]=meshconn(elem,nn)

 create node neighbor list from a mesh

 author: Qianqian Fang, <q.fang at neu.edu>
 date: 2007/11/21

 input:
    elem:  element table of a mesh
    nn  :  total node number of the mesh

 output:
    conn:  output, a cell structure of length nn, conn{n}
           contains a list of all neighboring node ID for node n
    connnum: vector of length nn, denotes the neighbor number of each node
    count: total neighbor numbers

 -- this function is part of iso2mesh toolbox (http://iso2mesh.sf.net)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [conn,connnum,count]=meshconn(elem,nn)
0002 %
0003 % [conn,connnum,count]=meshconn(elem,nn)
0004 %
0005 % create node neighbor list from a mesh
0006 %
0007 % author: Qianqian Fang, <q.fang at neu.edu>
0008 % date: 2007/11/21
0009 %
0010 % input:
0011 %    elem:  element table of a mesh
0012 %    nn  :  total node number of the mesh
0013 %
0014 % output:
0015 %    conn:  output, a cell structure of length nn, conn{n}
0016 %           contains a list of all neighboring node ID for node n
0017 %    connnum: vector of length nn, denotes the neighbor number of each node
0018 %    count: total neighbor numbers
0019 %
0020 % -- this function is part of iso2mesh toolbox (http://iso2mesh.sf.net)
0021 %
0022 
0023 conn=cell(nn,1);
0024 dim=size(elem);
0025 for i=1:dim(1)
0026   for j=1:dim(2)
0027     conn{elem(i,j)}=[conn{elem(i,j)},elem(i,:)];
0028   end
0029 end
0030 count=0;
0031 connnum=zeros(1,nn);
0032 for i=1:nn
0033     if(length(conn{i})==0) continue; end
0034     %conn{i}=sort(setdiff(unique(conn{i}),i));
0035     neig=unique(conn{i});
0036     neig(neig==i)=[];
0037     conn{i}=neig;
0038     connnum(i)=length(conn{i});
0039     count=count+connnum(i);
0040 end

Generated on Mon 22-May-2023 06:53:56 by m2html © 2005