source:
issm/oecreview/Archive/12010-12040/ISSM-12027-12028.diff
Last change on this file was 12325, checked in by , 13 years ago | |
---|---|
File size: 6.2 KB |
-
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/kml/nodeconnectivity.m
1 %2 % create a node connectivity table for the elements in the model.3 %4 % [nodecon]=edgeadjacency(elem,nnodes,mxepg)5 %6 % where the required input is:7 % elem (numeric, element connectivity array (elems x nodes))8 %9 % and the required output is:10 % nodecon (numeric, node connectivity array (nnodes x mxepg+1))11 %12 % the optional input is:13 % nnodes (numeric, number of nodes)14 % mxepg (numeric, max elements per node)15 %16 function [nodecon]=nodeconnectivity(elem,nnodes,mxepg)17 18 if ~nargin19 help nodeconnectivity20 return21 end22 23 if ~exist('nnodes','var') || isempty(nnodes)24 nnodes=max(max(elem));25 end26 if ~exist('mxepg','var') || isempty(mxepg)27 mxepg=25;28 end29 30 %% create the node connectivity array31 32 nodecon=zeros(nnodes,mxepg+1);33 34 % loop over the elements35 36 for i=1:size(elem,1)37 38 % loop over the nodes for each element39 40 for j=1:size(elem,2)41 if elem(i,j)42 nodecon(elem(i,j),nodecon(elem(i,j),end)+1)=i;43 nodecon(elem(i,j),end)=nodecon(elem(i,j),end)+1;44 end45 end46 end47 48 %% sort the node connectivity array49 50 % loop over the nodes51 52 for i=1:size(nodecon,1)53 if (nodecon(i,end) > 1)54 nodecon(i,1:nodecon(i,end))=sort(nodecon(i,1:nodecon(i,end)));55 end56 end57 58 end -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/kml/kml_unsh_edges.m
73 73 74 74 if (~exist('prtplt','var') || strncmpi(prtplt,'on' ,2) || strncmpi(prtplt,'y',1)) && ... 75 75 md.qmu.numberofpartitions 76 [edgeadj]=edgeadjacency(md.mesh.elements,md. nodeconnectivity);76 [edgeadj]=edgeadjacency(md.mesh.elements,md.kmlnodeconnectivity); 77 77 [icol,irow]=find(edgeadj'==0); 78 78 edgeuns=zeros(length(irow),2); 79 79 for i=1:length(irow) -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/kml/kmlnodeconnectivity.m
1 % 2 % create a node connectivity table for the elements in the model. 3 % 4 % [nodecon]=edgeadjacency(elem,nnodes,mxepg) 5 % 6 % where the required input is: 7 % elem (numeric, element connectivity array (elems x nodes)) 8 % 9 % and the required output is: 10 % nodecon (numeric, node connectivity array (nnodes x mxepg+1)) 11 % 12 % the optional input is: 13 % nnodes (numeric, number of nodes) 14 % mxepg (numeric, max elements per node) 15 % 16 function [nodecon]=kmlnodeconnectivity(elem,nnodes,mxepg) 17 18 if ~nargin 19 help kmlnodeconnectivity 20 return 21 end 22 23 if ~exist('nnodes','var') || isempty(nnodes) 24 nnodes=max(max(elem)); 25 end 26 if ~exist('mxepg','var') || isempty(mxepg) 27 mxepg=25; 28 end 29 30 %% create the node connectivity array 31 32 nodecon=zeros(nnodes,mxepg+1); 33 34 % loop over the elements 35 36 for i=1:size(elem,1) 37 38 % loop over the nodes for each element 39 40 for j=1:size(elem,2) 41 if elem(i,j) 42 nodecon(elem(i,j),nodecon(elem(i,j),end)+1)=i; 43 nodecon(elem(i,j),end)=nodecon(elem(i,j),end)+1; 44 end 45 end 46 end 47 48 %% sort the node connectivity array 49 50 % loop over the nodes 51 52 for i=1:size(nodecon,1) 53 if (nodecon(i,end) > 1) 54 nodecon(i,1:nodecon(i,end))=sort(nodecon(i,1:nodecon(i,end))); 55 end 56 end 57 58 end -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/kml/kml_partitions.m
150 150 irow=unique(irow); 151 151 elemp=md.mesh.elements(irow,:); 152 152 epartp=epart(irow,:); 153 nodeconp= nodeconnectivity(elemp,md.mesh.numberofvertices);153 nodeconp=kmlnodeconnectivity(elemp,md.mesh.numberofvertices); 154 154 [edgeadjp]=edgeadjacency(elemp,nodeconp); 155 155 [edgeper,elemper,iloop]=edgeperimeter(elemp,nodeconp,edgeadjp); 156 156 iloop(end+1)=size(edgeper,1)+1; -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/kml/README.txt
60 60 61 61 There are some other utilities that are used in the construction of topological tables for the kml writing. 62 62 63 nodeconnectivity.m - create a node connectivity table (nnodes x mxepg+1)63 kmlnodeconnectivity.m - create a node connectivity table (nnodes x mxepg+1) 64 64 edgeadjacency.m - create an edge adjacency array (elems x edges) 65 65 edgeperimeter.m - create an edge perimeter (edgeper x 2) and element perimeter (edgeper x 1) list 66 66 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/kml/kml_part_edges.m
149 149 irow=unique(irow); 150 150 elemp=md.mesh.elements(irow,:); 151 151 epartp=epart(irow,:); 152 nodeconp= nodeconnectivity(elemp,md.mesh.numberofvertices);152 nodeconp=kmlnodeconnectivity(elemp,md.mesh.numberofvertices); 153 153 [edgeadjp]=edgeadjacency(elemp,nodeconp); 154 154 [edgeper,elemper,iloop]=edgeperimeter(elemp,nodeconp,edgeadjp); 155 155 iloop(end+1)=size(edgeper,1)+1;
Note:
See TracBrowser
for help on using the repository browser.