Changeset 2968
- Timestamp:
- 02/05/10 12:08:12 (15 years ago)
- Location:
- issm/trunk/src/m/classes/public
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/classes/public/geography.m
r2668 r2968 19 19 error('geography error message'); 20 20 end 21 if ((~ischar(iceshelfname)) | (~ischar(icesheetname)) )22 help geography23 error('geography error message');24 end25 if strcmpi(icesheetname,'all'),26 error('geography error message: islands can not be everywhere, to set an icesheet, use geography(md,'','')');27 end28 21 29 22 if md.counter>=2, … … 39 32 elements=md.elements; 40 33 41 %Fist recover arrays of ice shelf grids and elements, and ice sheet grids and elements. 42 invert=0; 43 if strcmp(iceshelfname,''), %no iceshelf contour file, we are dealing with a pure ice sheet. 44 gridoniceshelf=zeros(md.numberofgrids,1); 45 elementoniceshelf=zeros(md.numberofelements,1); 46 elseif strcmp(iceshelfname,'all'), %we are dealing with a pure ice shelf. 47 gridoniceshelf=ones(md.numberofgrids,1); 48 elementoniceshelf=ones(md.numberofelements,1); 49 else 50 if strcmpi(iceshelfname(1),'~'), 51 iceshelfname=iceshelfname(2:length(iceshelfname)); 52 invert=1; 53 end 54 [gridoniceshelf,elementoniceshelf]=ContourToMesh(elements,x,y,expread(iceshelfname,1),'element and node',2); 55 end 56 if invert, 57 gridoniceshelf=1-gridoniceshelf; 58 elementoniceshelf=1-elementoniceshelf; 59 end 60 61 if strcmp(icesheetname,''), %no icesheet contour file, we are dealing with a pure ice shelf. 62 gridonicesheet=zeros(md.numberofgrids,1); 63 elementonicesheet=zeros(md.numberofelements,1); 64 else 65 [gridonicesheet,elementonicesheet]=ContourToMesh(elements,x,y,expread(icesheetname,1),'element and node',2); 66 end 34 elementoniceshelf=FlagElements(md,iceshelfname); 35 elementonicesheet=FlagElements(md,icesheetname); 67 36 68 37 %Because icesheet grids and elements can be included into an iceshelf, we need to update. Remember, all the previous 69 38 %arrays come from domain outlines that can intersect one another: 70 gridoniceshelf=double((gridoniceshelf & ~gridonicesheet)); 39 gridoniceshelf=zeros(md.numberofgrids,1); 40 gridonicesheet=zeros(md.numberofgrids,1); 71 41 elementoniceshelf=double((elementoniceshelf & ~elementonicesheet)); 72 gridonicesheet=double(~gridoniceshelf);73 42 elementonicesheet=double(~elementoniceshelf); 43 gridoniceshelf(md.elements(find(elementoniceshelf),:))=1; 44 gridonicesheet(md.elements(find(elementonicesheet),:))=1; 74 45 75 46 %Return: -
issm/trunk/src/m/classes/public/recover_areas.m
r2395 r2968 12 12 13 13 %recover elements distribution 14 hutterflag = BuildFlag(md,getfieldvalue(options,'hutter',''));15 macayealflag= BuildFlag(md,getfieldvalue(options,'macayeal',''));16 pattynflag = BuildFlag(md,getfieldvalue(options,'pattyn',''));17 stokesflag = BuildFlag(md,getfieldvalue(options,'stokes',''));18 hutterflag = BuildFlag(md,getfieldvalue(options,'hutter',''));14 hutterflag =FlagElements(md,getfieldvalue(options,'hutter','')); 15 macayealflag=FlagElements(md,getfieldvalue(options,'macayeal','')); 16 pattynflag =FlagElements(md,getfieldvalue(options,'pattyn','')); 17 stokesflag =FlagElements(md,getfieldvalue(options,'stokes','')); 18 hutterflag =FlagElements(md,getfieldvalue(options,'hutter','')); 19 19 filltype =getfieldvalue(options,'fill','none'); 20 20 … … 22 22 23 23 24 function flag=BuildFlag(md,area),25 if ischar(area),26 if isempty(area),27 flag=zeros(md.numberofelements,1);28 invert=0;29 elseif strcmpi(area,'all')30 flag=ones(md.numberofelements,1);31 invert=0;32 else33 %make sure that we actually don't want the elements outside the domain outline!34 if strcmpi(area(1),'~'),35 area=area(2:length(area));36 invert=1;37 else38 invert=0;39 end40 %ok, flag elements41 flag=ContourToMesh(md.elements(:,1:3),md.x,md.y,expread(area,1),'element',1);42 end43 if invert,44 flag=~flag;45 end46 elseif isfloat(area),47 if size(area,1)~=md.numberofelements,48 setelementstypeusage();49 error('Flags for elements_type must be of same size as number of elements in model');50 end51 flag=area;52 else53 error('Invalide elements_type option');54 end55 end
Note:
See TracChangeset
for help on using the changeset viewer.