Changeset 2518
- Timestamp:
- 10/23/09 10:33:15 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/classes/public/contourenvelope.m
r2517 r2518 1 function segments=contourenvelope(md, file)1 function segments=contourenvelope(md,varargin) 2 2 %CONTOURENVELOPE - build a set of segments enveloping a contour .exp 3 3 % 4 4 % Usage: 5 % segments=contourenvelope(md,file) 5 % segments=contourenvelope(md,varargin) 6 % 7 % Example: 8 % segments=contourenvelope(md,'Stream.exp'); 9 % segments=contourenvelope(md); 6 10 7 11 %some checks 8 if ~exist(file), 9 error(['thicknessevolution error message: file ' file ' not found']); 12 if nargin>2, 13 help contourenvelope 14 error('contourenvelope error message: bad usage'); 15 end 16 if nargin==2, 17 file=varargin{1}; 18 if ~exist(file), 19 error(['thicknessevolution error message: file ' file ' not found']); 20 end 10 21 end 11 22 … … 20 31 21 32 %get nodes inside profile 22 %get flag list of elements and nodes inside the contour23 nodein=ContourToMesh(md.elements,md.x,md.y,expread(file,1),'node',1);24 elemin=(sum(nodein(md.elements),2)==size(md.elements,2));25 %modify element connectivity26 elemout=find(~elemin);27 33 elementconnectivity=md.elementconnectivity; 28 elementconnectivity(elemout,:)=0; 29 elementconnectivity(find(ismember(elementconnectivity,elemout)))=0; 34 if nargin==2, 35 %get flag list of elements and nodes inside the contour 36 nodein=ContourToMesh(md.elements,md.x,md.y,expread(file,1),'node',1); 37 elemin=(sum(nodein(md.elements),2)==size(md.elements,2)); 38 %modify element connectivity 39 elemout=find(~elemin); 40 elementconnectivity(elemout,:)=0; 41 elementconnectivity(find(ismember(elementconnectivity,elemout)))=0; 42 end 30 43 31 44 %Find element on boundary 32 45 %First: find elements on the boundary of the domain 33 46 flag=elementconnectivity; 34 flag(find(flag))=elemin(flag(find(flag))); 47 if nargin==2, 48 flag(find(flag))=elemin(flag(find(flag))); 49 end 35 50 elementonboundary=double(sum(flag,2)<3 & sum(flag,2)>0); 36 51
Note:
See TracChangeset
for help on using the changeset viewer.