0001 function md=huttercompute(md);
0002
0003
0004
0005
0006
0007
0008 iceglobal
0009
0010
0011 if strcmpi(md.cluster,'yes'), cluster=1; else cluster=0;end;
0012
0013
0014 if cluster,
0015 error('icediagnostic error message: parallel support not implemented yet');
0016 end
0017
0018
0019 params.sparsity=md.sparsity;
0020 params.solver_type=md.solver_type;
0021 params.eps_abs=md.eps_abs;
0022 params.eps_rel=md.eps_rel;
0023 params.debug=md.debug;
0024
0025
0026 disp(' processing model');
0027 [elements,grids,loads,constraints,materials,part,tpart]=ModelProcessor(md,'diagnostic_hutter');
0028
0029
0030 disp(' generating degrees of freedom');
0031 grids=Dof(grids);
0032
0033
0034 disp(' generating constraint vector');
0035 [grids y_g]=SpcGrids(grids,constraints);
0036
0037
0038 disp(' generating grid sets');
0039 BuildGridSets(grids);gridset=gridset; ys=Reducevector_g(y_g);
0040
0041
0042 gridset=gridset;
0043 slopesurface=zeros(gridset.gsize,1);
0044 slopesurface(1:6:gridset.gsize,1)=md.surface_slopex;
0045 slopesurface(2:6:gridset.gsize,1)=md.surface_slopey;
0046 disp(sprintf('\n%s',['computing Hutter''s velocities...']));
0047 u_g=icediagnostic_core_linear(elements,grids,materials,loads,params,ys,'diagnostic_hutter',struct('slopesurface',slopesurface));
0048
0049 md.vx=u_g(1:6:end)*md.yts;
0050 md.vy=u_g(2:6:end)*md.yts;
0051 md.vel=sqrt(md.vx.^2+md.vy.^2);