Changeset 20733


Ignore:
Timestamp:
06/14/16 11:42:36 (9 years ago)
Author:
seroussi
Message:

CHG: finished update pig test for the workshop

Location:
issm/trunk-jpl/examples/Pig
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/examples/Pig/CheatSheet.m

    r18249 r20733  
    1 if any(steps==6)
    2         % Load Model
     1if step==6
    32        md = loadmodel('./Models/PIG.Control_drag');
    43        md.inversion.iscontrol=0;
     
    65        disp('   Extruding mesh')
    76        number_of_layers=3;
    8         md=extrude(md,number_of_layers,0.9);
     7        md=extrude(md,number_of_layers,1);
    98
    109        disp('   Using HO Ice Flow Model')
    1110        md=setflowequation(md, 'HO', 'all');
    1211
    13         % Solve
    1412        md=solve(md,StressbalanceSolutionEnum);
    1513
    16         % Save Model
    1714        save ./Models/PIG.ModelHO md;
    1815end
  • TabularUnified issm/trunk-jpl/examples/Pig/Pig.par

    r19866 r20733  
    1717smb   = ncread(ncdata,'presprcp')';
    1818gflux = ncread(ncdata,'bheatflx_fox')';
    19 
    20 disp('   Loading velocities data from NetCDF');
    21 nsidc_vel='../Data/Antarctica_ice_velocity.nc';
    22 
    23 xmin = ncreadatt(nsidc_vel,'/','xmin');
    24 xmin = strtrim(xmin);  %this is a string, and we need to recover the double value
    25 xmin = xmin(1:end-2);  %get rid of the unit
    26 xmin = str2num(xmin);  %convert to double
    27 
    28 ymax = ncreadatt(nsidc_vel,'/','ymax');
    29 ymax = strtrim(ymax); 
    30 ymax = ymax(1:end-2); 
    31 ymax = str2num(ymax);
    32 
    33 nx = ncreadatt(nsidc_vel,'/','nx');
    34 ny = ncreadatt(nsidc_vel,'/','ny');
    35 
    36 spacing = ncreadatt(nsidc_vel,'/','spacing');
    37 spacing = strtrim(spacing); 
    38 spacing = spacing(1:end-2); 
    39 spacing = str2num(spacing);
    40 
    41 velx = double(ncread(nsidc_vel,'vx'));
    42 vely = double(ncread(nsidc_vel,'vy'));
    43 
    44 x2=xmin+(0:1:nx)'*spacing;
    45 x2=double(x2);
    46 
    47 y2=(ymax-ny*spacing)+(0:1:ny)'*spacing;
    48 y2=double(y2);
    4919
    5020%Geometry
     
    7040
    7141%Set min thickness to 1 meter
    72 pos0=find(md.geometry.thickness<=0);
     42pos0=find(md.geometry.thickness<=1);
    7343md.geometry.thickness(pos0)=1;
    7444md.geometry.surface=md.geometry.thickness+md.geometry.base;
     
    7949clear temp;
    8050
     51disp('   Loading velocities data from NetCDF');
     52nsidc_vel='../Data/Antarctica_ice_velocity.nc';
     53xmin    = ncreadatt(nsidc_vel,'/','xmin');
     54ymax    = ncreadatt(nsidc_vel,'/','ymax');
     55spacing = ncreadatt(nsidc_vel,'/','spacing');
     56nx      = double(ncreadatt(nsidc_vel,'/','nx'));
     57ny      = double(ncreadatt(nsidc_vel,'/','ny'));
     58velx    = double(ncread(nsidc_vel,'vx'));
     59vely    = double(ncread(nsidc_vel,'vy'));
     60% Read coordinates
     61xmin = strtrim(xmin); 
     62xmin = str2num(xmin(1:end-2));
     63ymax = strtrim(ymax); 
     64ymax = str2num(ymax(1:end-2)); 
     65spacing = strtrim(spacing);
     66spacing = str2num(spacing(1:end-2)); 
     67% Build the coordinates
     68x2=xmin+(0:1:nx)'*spacing;
     69y2=(ymax-ny*spacing)+(0:1:ny)'*spacing;
     70
    8171disp('   Set observed velocities')
    82 vx_obs=InterpFromGridToMesh(x2,y2,flipud(velx'),md.mesh.x,md.mesh.y,0);
    83 vy_obs=InterpFromGridToMesh(x2,y2,flipud(vely'),md.mesh.x,md.mesh.y,0);
     72md.initialization.vx=InterpFromGridToMesh(x2,y2,flipud(velx'),md.mesh.x,md.mesh.y,0);
     73md.initialization.vy=InterpFromGridToMesh(x2,y2,flipud(vely'),md.mesh.x,md.mesh.y,0);
     74md.initialization.vz=zeros(md.mesh.numberofvertices,1);
     75md.initialization.vel=sqrt(md.initialization.vx.^2+md.initialization.vy.^2);
    8476clear velx vely;
    85 
    86 vel_obs=sqrt(vx_obs.^2+vy_obs.^2);
    87 md.initialization.vx=vx_obs;
    88 md.initialization.vy=vy_obs;
    89 md.initialization.vz=zeros(md.mesh.numberofvertices,1);
    90 md.initialization.vel=vel_obs;
    9177
    9278disp('   Set Pressure');
     
    9985%Forcings
    10086disp('   Interpolating surface mass balance');
    101 md.smb.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);
    102 md.smb.mass_balance=md.smb.mass_balance*md.materials.rho_water/md.materials.rho_ice;
     87mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);
     88md.smb.mass_balance=mass_balance*md.materials.rho_water/md.materials.rho_ice;
    10389clear smb;
    10490
     
    118104
    119105md.inversion=m1qn3inversion();
    120 md.inversion.vx_obs=vx_obs;
    121 md.inversion.vy_obs=vy_obs;
    122 md.inversion.vel_obs=vel_obs;
     106md.inversion.vx_obs=md.initialization.vx;
     107md.inversion.vy_obs=md.initialization.vy;
     108md.inversion.vel_obs=md.initialization.vel;
    123109
    124110disp('   Set boundary conditions');
     
    126112md.basalforcings.floatingice_melting_rate = zeros(md.mesh.numberofvertices,1);
    127113md.basalforcings.groundedice_melting_rate = zeros(md.mesh.numberofvertices,1);
    128 md.thermal.spctemperature     = [md.initialization.temperature;1]; %impose observed temperature on surface
    129 md.masstransport.spcthickness    = NaN*ones(md.mesh.numberofvertices,1);
     114md.thermal.spctemperature                 = md.initialization.temperature;
     115md.masstransport.spcthickness             = NaN*ones(md.mesh.numberofvertices,1);
  • TabularUnified issm/trunk-jpl/examples/Pig/runme.m

    r19043 r20733  
    1 %Which steps to be performed
    2 steps=[1] ;
     1step=[7];
    32
    4 %Run Steps
    5 
    6 %Mesh Generation #1
    7 if any(steps==1)
    8 
    9         md.miscellaneous.name='PIG.Mesh_generation';
    10 
     3if step==1   %Mesh Generation #1
    114        %Mesh parameters
    125        domain =['./DomainOutline.exp'];
     6        hinit=10000;   % element size for the initial mesh
    137        hmax=40000;    % maximum element size of the final mesh
    148        hmin=5000;     % minimum element size of the final mesh
    15         hinit=10000;   % element size for the initial mesh
    169        gradation=1.7; % maximum size ratio between two neighboring elements
    1710        err=8;         % maximum error between interpolated and control field
    1811
    1912        % Generate an initial uniform mesh (resolution = hinit m)
    20         md=bamg(model,'domain',domain,'hmax',hinit,'MaxCornerAngle',1);
     13        md=bamg(model,'domain',domain,'hmax',hinit);
    2114
    2215        %ploting
     
    2417
    2518        % Load Velocities
    26         % http://nsidc.org/data/nsidc-0484.html
    2719        nsidc_vel='../Data/Antarctica_ice_velocity.nc';         
    2820
    2921        % Get necessary data to build up the velocity grid
    30         xmin = ncreadatt(nsidc_vel,'/','xmin');
    31         xmin = strtrim(xmin);  % this is a string, and we need to recover the double value
    32         xmin = xmin(1:end-2);  % get rid of the unit
    33         xmin = str2num(xmin);  % convert to double
     22        xmin    = ncreadatt(nsidc_vel,'/','xmin');
     23        ymax    = ncreadatt(nsidc_vel,'/','ymax');
     24        spacing = ncreadatt(nsidc_vel,'/','spacing');
     25        nx      = double(ncreadatt(nsidc_vel,'/','nx'));
     26        ny      = double(ncreadatt(nsidc_vel,'/','ny'));
     27        vx      = double(ncread(nsidc_vel,'vx'));
     28        vy      = double(ncread(nsidc_vel,'vy'));
     29
     30        % Read coordinates
     31        xmin = strtrim(xmin); 
     32        xmin = str2num(xmin(1:end-2));
     33        ymax = strtrim(ymax); 
     34        ymax = str2num(ymax(1:end-2)); 
     35        spacing = strtrim(spacing);
     36        spacing = str2num(spacing(1:end-2)); 
     37
     38        % Build the coordinates
     39        x=xmin+(0:1:nx)'*spacing;
     40        y=(ymax-ny*spacing)+(0:1:ny)'*spacing;
    3441       
    35         ymax = ncreadatt(nsidc_vel,'/','ymax');
    36         ymax = strtrim(ymax); 
    37         ymax = ymax(1:end-2); 
    38         ymax = str2num(ymax);
    39        
    40         nx = ncreadatt(nsidc_vel,'/','nx');
    41         ny = ncreadatt(nsidc_vel,'/','ny');
    42        
    43         spacing = ncreadatt(nsidc_vel,'/','spacing');
    44         spacing = strtrim(spacing);
    45         spacing = spacing(1:end-2); 
    46         spacing = str2num(spacing);
    47        
    48         % Get velocities (Note: You can use ncdisp('file') to see an ncdump)
    49         vx = double(ncread(nsidc_vel,'vx'));
    50         vy = double(ncread(nsidc_vel,'vy'));
    51        
    52         x=xmin+(0:1:nx)'*spacing;
    53         x=double(x);
    54         y=(ymax-ny*spacing)+(0:1:ny)'*spacing;
    55         y=double(y);
    56 
    5742        % Interpolate velocities onto coarse mesh
    5843        vx_obs=InterpFromGridToMesh(x,y,flipud(vx'),md.mesh.x,md.mesh.y,0);
     
    6752        plotmodel(md,'data','mesh')
    6853
    69         % Convert x,y coordinates (Polar stereo) to lat/lon
    70         [md.mesh.lat,md.mesh.long]=xy2ll(md.mesh.x,md.mesh.y,-1);
    71        
    7254        % Save model
    7355        save ./Models/PIG.Mesh_generation md;
    7456end
    7557
    76 %Masks #2
    77 if any(steps==2)
     58if step==2  %Masks #2
    7859
    7960        md = loadmodel('./Models/PIG.Mesh_generation');
     
    10485end
    10586
    106 %Parameterization #3
    107 if any(steps==3)
     87if step==3  %Parameterization #3
    10888
    10989        md = loadmodel('./Models/PIG.SetMask');
     
    11797end
    11898
    119 %Control Method #4
    120 if any(steps==4)
     99if step==4  %Control Method #4
    121100
    122101        md = loadmodel('./Models/PIG.Parameterization');
     
    161140end
    162141
    163 %Plot #5
    164 if any(steps==5)
     142if step==5 %Plot #5
    165143
    166144        md = loadmodel('./Models/PIG.Control_drag');
     
    179157end
    180158
    181 %HO #6
    182 if any(steps==6)
     159if step==6  %Higher-Order #6
    183160
    184161        % Load Model
     
    196173end
    197174
    198 %Plot #7
    199 if any(steps==7)
     175if step==7  %Plot #7
    200176
    201177        mdHO = loadmodel('./Models/PIG.ModelHO');
Note: See TracChangeset for help on using the changeset viewer.