icediagnostic2d

PURPOSE ^

ICEDIAGNOSTIC2D - diagnostic of a 2d model

SYNOPSIS ^

function u_g=icediagnostic2d(md,fem),

DESCRIPTION ^

ICEDIAGNOSTIC2D - diagnostic of a 2d model

   this routine computes the velocity field of a glacier in 2d 

   Usage:
      u_g=icediagnostic2d(md,fem)

   See also: ICEDIAGNOSTIC, ICEDIAGNOSTIC3D, ICEDIAGNOSTIC_CORE_NONLINEAR

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function u_g=icediagnostic2d(md,fem),
0002 %ICEDIAGNOSTIC2D - diagnostic of a 2d model
0003 %
0004 %   this routine computes the velocity field of a glacier in 2d
0005 %
0006 %   Usage:
0007 %      u_g=icediagnostic2d(md,fem)
0008 %
0009 %   See also: ICEDIAGNOSTIC, ICEDIAGNOSTIC3D, ICEDIAGNOSTIC_CORE_NONLINEAR
0010 
0011 %recover inputs
0012 inputs=fem.inputs;
0013 
0014 %Compute surface slope if there are hutter elements
0015 if fem.ishutter,
0016 
0017     %Get field of fem
0018     m_ss=fem.m_ss;
0019     m_dhu=fem.m_dhu;
0020 
0021     %Compute slope of the surface
0022     if fem.m_dhu.params.debug
0023         disp(sprintf('\n%s',['computing surface slope (x and y derivatives)...']));
0024     end
0025     slopex=icediagnostic_core_linear(m_ss,'surface_slope_compute_x',inputs);
0026     slopey=icediagnostic_core_linear(m_ss,'surface_slope_compute_y',inputs);
0027     
0028     %initialize slope surface input for hutter solution sequence
0029     slopesurface=zeros(m_ss.gridset.gsize,1);
0030     slopesurface(1:6:m_ss.gridset.gsize,1)=slopex(1:6:end);
0031     slopesurface(2:6:m_ss.gridset.gsize,1)=slopey(1:6:end);
0032 
0033     %Compute Hutter solution
0034     disp(sprintf('\n%s',['computing hutter velocities...']));
0035     inputs.slopesurface=slopesurface;
0036     u_g=icediagnostic_core_linear(m_dhu,'diagnostic_hutter',inputs);
0037 
0038     %Computation of depth averaged pressure with MacAyeal's assumptions (P_bar=1/2*rho_ice*g*H in Pa)
0039     u_g(4:6:m_dhu.gridset.gsize)=1/2*md.rho_ice*md.g*md.thickness;
0040 end
0041 
0042 if fem.ismacayealpattyn,
0043 
0044     %Get field of fem
0045     m_dh=fem.m_dh;
0046 
0047     %Compute horizontal solution.
0048     disp(sprintf('\n%s',['computing horizontal velocities...']));
0049 
0050     %Run core solution
0051     u_g=icediagnostic_core_nonlinear(m_dh,'diagnostic_horiz',inputs);
0052 
0053     %Computation of depth averaged pressure with MacAyeal's assumptions (P_bar=1/2*rho_ice*g*H in Pa)
0054     u_g(4:6:m_dh.gridset.gsize)=1/2*md.rho_ice*md.g*md.thickness;
0055 end

Generated on Sun 29-Mar-2009 20:22:55 by m2html © 2003