Ignore:
Timestamp:
07/24/09 10:08:54 (16 years ago)
Author:
Mathieu Morlighem
Message:

fixed model extract 2 (uppergrids lowergrids)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/classes/public/modelextract2.m

    r1361 r1368  
    1 function md2=modelextract2(md1,area,varargin)
     1function md2=modelextract2(md1,area)
    22%modelextract2 - extract a model according to an Argus contour or flag list
    33%
     
    1212%
    1313%   Usage:
    14 %      md2=modelextract2(md1,area,varargin);
     14%      md2=modelextract2(md1,area);
    1515%
    1616%   Examples:
    1717%      md2=modelextract2(md,'Domain.exp');
    18 %      md2=modelextract2(md,'Domain.exp',1);
    1918%      md2=modelextract2(md,md.elementoniceshelf);
    2019%
     
    2221
    2322%some checks
    24 if ((nargin~=2 & nargin~=3) | (nargout~=1)),
     23if ((nargin~=2) | (nargout~=1)),
    2524        help modelextract2
    2625        error('modelextract2 error message: bad usage');
    27 end
    28 if strcmpi(md1.type,'3d'),
    29         error('modelextract2 error message: only 2d model supported yet. Use BasinConstrain instead');
    3026end
    3127
     
    8783numberofgrids2=length(pos_grid);
    8884numberofelements2=length(pos_elem);
     85flag_grid=zeros(numberofgrids1,1);
     86flag_grid(pos_grid)=1;
    8987
    9088%Create Pelem and Pgrid (transform old grids in new grids and same thing for the elements)
     
    138136        md2.elements=elements_2;
    139137
     138        %uppernodes lowernodes
     139        if strcmpi(md1.type,'3d')
     140                md2.uppergrids=md1.uppergrids(pos_grid);
     141                pos=find(~isnan(md2.uppergrids));
     142                md2.uppergrids(pos)=Pgrid(md2.uppergrids(pos));
     143
     144                md2.lowergrids=md1.lowergrids(pos_grid);
     145                pos=find(~isnan(md2.lowergrids));
     146                md2.lowergrids(pos)=Pgrid(md2.lowergrids(pos));
     147        end
     148
    140149        %Initial 2d mesh
    141150        if strcmpi(md1.type,'3d')
     
    167176
    168177        %recreate segments
    169         md2.segments=findsegments(md2);
    170         md2.gridonboundary=zeros(numberofgrids2,1); md1.gridonboundary(md2.segments(:,1:2))=1;
    171 
    172         if ~isnan(md2.elements_type), md2.elements_type=md1.elements_type(pos_elem,:);end
     178        if strcmpi(md1.type,'2d')
     179                md2.segments=findsegments(md2);
     180                md2.gridonboundary=zeros(numberofgrids2,1); md1.gridonboundary(md2.segments(:,1:2))=1;
     181        end
    173182
    174183        %Boundary conditions: Dirichlets on new boundary
Note: See TracChangeset for help on using the changeset viewer.