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
RevLine 
[5024]1function flag=FlagElements(md,region),
2%FLAGELEMENTS - flag the elements in an region
[2967]3%
[5024]4% The region can be given with an exp file, a list of elements.
[2967]5%
6% Usage:
[5024]7% flag=FlagElements(md,region);
[2967]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
[5024]16 if ischar(region),
17 if isempty(region),
[2967]18 flag=zeros(md.numberofelements,1);
19 invert=0;
[5024]20 elseif strcmpi(region,'all')
[2967]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!
[5024]25 if strcmpi(region(1),'~'),
26 region=region(2:length(region));
[2967]27 invert=1;
28 else
29 invert=0;
30 end
[2990]31
[5024]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);
[2990]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
[5024]39 flag=ContourToMesh(md.elements(:,1:3),md.x,md.y,region,'element',1);
[2990]40 end
[2967]41 end
42 if invert,
43 flag=~flag;
44 end
[5024]45 elseif isfloat(region),
46 if size(region,1)~=md.numberofelements,
[3346]47 help FlagElements
[5024]48 error('Flaglist for region must be of same size as number of elements in model');
[2967]49 end
[5024]50 flag=region;
[2967]51 else
[6818]52 error('Invalid region option');
[2967]53 end
54end
Note: See TracBrowser for help on using the repository browser.