source: issm/trunk/src/m/utils/Geometry/FlagElements.m@ 6818

Last change on this file since 6818 was 6818, checked in by Mathieu Morlighem, 14 years ago

minor

File size: 1.4 KB
Line 
1function flag=FlagElements(md,region),
2%FLAGELEMENTS - flag the elements in an region
3%
4% The region can be given with an exp file, a list of elements.
5%
6% Usage:
7% flag=FlagElements(md,region);
8%
9% Example:
10% flag=FlagElements(md,'all');
11% flag=FlagElements(md,'');
12% flag=FlagElements(md,'Domain.exp');
13% flag=FlagElements(md,'~Domain.exp');
14% flag=FlagElements(md,md.elementonicesheet);
15
16 if ischar(region),
17 if isempty(region),
18 flag=zeros(md.numberofelements,1);
19 invert=0;
20 elseif strcmpi(region,'all')
21 flag=ones(md.numberofelements,1);
22 invert=0;
23 else
24 %make sure that we actually don't want the elements outside the domain outline!
25 if strcmpi(region(1),'~'),
26 region=region(2:length(region));
27 invert=1;
28 else
29 invert=0;
30 end
31
32 %does the region domain outline exist or do we have to look for xlim,ylim in basinzoom?
33 if ~exist(region,'file'),
34 [xlim,ylim]=basinzoom(region);
35 flag_nodes=double(md.x<xlim(2) & md.x>xlim(1) & md.y<ylim(2) & md.y>ylim(1));
36 flag=prod(flag_nodes(md.elements),2);
37 else
38 %ok, flag elements
39 flag=ContourToMesh(md.elements(:,1:3),md.x,md.y,region,'element',1);
40 end
41 end
42 if invert,
43 flag=~flag;
44 end
45 elseif isfloat(region),
46 if size(region,1)~=md.numberofelements,
47 help FlagElements
48 error('Flaglist for region must be of same size as number of elements in model');
49 end
50 flag=region;
51 else
52 error('Invalid region option');
53 end
54end
Note: See TracBrowser for help on using the repository browser.