Changeset 3199


Ignore:
Timestamp:
03/05/10 13:44:55 (15 years ago)
Author:
Eric.Larour
Message:

Added second thickness metric to bamg wrapper.

File:
1 edited

Legend:

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

    r3182 r3199  
    66%      where varargin is a lit of paired arguments.
    77%      arguments can be: 'domainoutline': Argus file containing the outline of the domain to be meshed
    8 %      arguments can be: 'velocities': matlab file containing the velocities [m/yr]
     8%      arguments can be: 'domainoutline': Argus file containing the outline of the domain to be meshed
     9%      arguments can be: 'thickness': matlab file containing the thickness [m]
    910%      optional arguments: 'groundeddomain': Argus file containing the outline of the grounded ice
    1011%                          this option is used to minimize the metric on water (no refinement)
    1112%      optional arguments: 'resolution': initial mesh resolution [m]
    1213%      optional arguments: 'nsteps': number of steps of mesh adaptation
    13 %      optional arguments: 'epsilon': average interpolation error wished [m/yr]
     14%      optional arguments: 'epsilon': average interpolation error wished [m/yr [m]]
    1415%      optional arguments: 'hmin': minimum edge length
    1516%      optional arguments: 'hmanx': maximum edge
     
    2021%      md=meshyams(md,'domainoutline','Domain.exp','velocities','vel.mat','groundeddomain','ground.exp');
    2122%      md=meshyams(md,'domainoutline','Domain.exp','velocities','vel.mat','groundeddomain','ground.exp','nsteps',6,'epsilon',2,'hmin',500,'hmax',30000);
     23%      md=meshyams(md,'domainoutline','Domain.exp','velocities','vel.mat','thickness','groundeddomain','ground.exp','nsteps',6,'epsilon',2,'hmin',500,'hmax',30000);
    2224
    2325%recover options
     
    2628
    2729%recover some fields
    28 disp('MeshYams Options:')
     30disp('MeshBamg Options:')
    2931domainoutline=getfieldvalueerr(options,'domainoutline');
    3032disp(sprintf('   %-15s: ''%s''','DomainOutline',domainoutline));
     
    3335velocities=getfieldvalueerr(options,'velocities');
    3436disp(sprintf('   %-15s: ''%s''','Velocities',velocities));
     37thickness=getfieldvalue(options,'thickness','none');
     38disp(sprintf('   %-15s: ''%s''','Thickness',thickness));
    3539resolution=getfieldvalue(options,'resolution',5000);
    3640disp(sprintf('   %-15s: %f','Resolution',resolution));
     
    5357%load velocities
    5458disp('loading velocities...');
    55 Names=VelFindVarNames(velocities);
     59NamesV=VelFindVarNames(velocities);
    5660Vel=load(velocities);
     61
     62%compute thickness?
     63if ~strcmpi(thickness,'none'),
     64        disp('loading thickness...');
     65        NamesH=FieldFindVarNames(thickness);
     66        Thi=load(thickness);
     67        thicknesspresent=1;
     68else
     69        thicknesspresent=0;
     70end
    5771
    5872%start mesh adaptation
     
    6276        %interpolate velocities onto mesh
    6377        disp('   interpolating velocities...');
    64         if strcmpi(Names.interp,'grid'),
    65                 vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0);
    66                 vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0);
     78        if strcmpi(NamesV.interp,'grid'),
     79                vx_obs=InterpFromGridToMesh(Vel.(NamesV.xname),Vel.(NamesV.yname),Vel.(NamesV.vxname),md.x,md.y,0);
     80                vy_obs=InterpFromGridToMesh(Vel.(NamesV.xname),Vel.(NamesV.yname),Vel.(NamesV.vyname),md.x,md.y,0);
    6781        else
    68                 vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0);
    69                 vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0);
     82                vx_obs=InterpFromMeshToMesh2d(Vel.(NamesV.indexname),Vel.(NamesV.xname),Vel.(NamesV.yname),Vel.(NamesV.vxname),md.x,md.y,0);
     83                vy_obs=InterpFromMeshToMesh2d(Vel.(NamesV.indexname),Vel.(NamesV.xname),Vel.(NamesV.yname),Vel.(NamesV.vyname),md.x,md.y,0);
    7084        end
    7185        field=sqrt(vx_obs.^2+vy_obs.^2);
    72 
     86       
     87        if thicknesspresent,
     88                disp('   interpolating thickness...');
     89                if strcmpi(NamesH.interp,'grid'),
     90                        h=InterpFromGridToMesh(Thi.(NamesH.xname),Thi.(NamesH.yname),Thi.(NamesH.dataname),md.x,md.y,0);
     91                else
     92                        h=InterpFromMeshToMesh2d(Thi.(NamesH.indexname),Thi.(NamesH.xname),Thi.(NamesH.yname),Thi.(NamesH.dataname),md.x,md.y,0);
     93                end
     94                field=[field h];
     95        end
     96       
    7397        %set gridonwater field
    7498        if ~strcmp(groundeddomain,'N/A'),
Note: See TracChangeset for help on using the changeset viewer.