Changeset 1252


Ignore:
Timestamp:
07/07/09 16:16:27 (16 years ago)
Author:
Mathieu Morlighem
Message:

new displays

Location:
issm/trunk/src/m/classes
Files:
6 added
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/classes/@model/display.m

    r1 r1252  
    55       
    66disp(sprintf('\n%s = \n',inputname(1)));
     7disp(sprintf('%s%s%s','   Diagnostic solution parameters: type ''',inputname(1),'.diagnostic'' to display'));
     8disp(sprintf('%s%s%s','   Thermal solution parameters: type ''',inputname(1),'.thermal'' to display'));
     9disp(sprintf('%s%s%s','   Prognostic solution parameters: type ''',inputname(1),'.prognostic'' to display'));
     10disp(sprintf('%s%s%s','   Transient solution parameters: type ''',inputname(1),'.transient'' to display'));
     11disp(sprintf('%s%s%s','   Control solution parameters: type ''',inputname(1),'.control'' to display'));
     12disp(sprintf('%s%s%s','   Mesh2grid solution parameters: type ''',inputname(1),'.mesh2grid'' to display'));
    713disp(sprintf('%s%s%s','   Mesh: type ''',inputname(1),'.mesh'' to display'));
    814disp(sprintf('%s%s%s','   Boundary conditions: type ''',inputname(1),'.bc'' to display'));
    9 
    10 if(a.numrifts)disp(sprintf('      rifts: %i',a.numrifts));end
    11 
    1215disp(sprintf('%s%s%s','   Observations: type ''',inputname(1),'.obs'' to display'));
    1316disp(sprintf('%s%s%s','   Materials: type ''',inputname(1),'.mat'' to display'));
    1417disp(sprintf('%s%s%s','   Parameters: type ''',inputname(1),'.par'' to display'));
    15 disp(sprintf('%s%s%s','   Solution parameters: type ''',inputname(1),'.solpar'' to display'));
    1618disp(sprintf('%s%s%s','   Results: type ''',inputname(1),'.res'' to display'));
    1719disp(sprintf('%s%s%s','   ExpPar: type ''',inputname(1),'.exppar'' to display'));
    1820disp(sprintf('%s%s%s','   Qmu: type ''',inputname(1),'.qmu'' to display'));
     21if(a.numrifts)disp(sprintf('      rifts: %i',a.numrifts));end
    1922
    2023%Diverse
     
    5154        disp(sprintf('      repository: %s',a.repository));
    5255end
    53 
    54 
    55 end
    56 
    57 function struct_display(structure,offset)
    58 disp(sprintf('%s',[offset '1x' num2str(size(structure,2)) ' struct array with fields:']));
    59 structure_fields=fields(structure);
    60 for i=1:length(structure_fields),
    61         disp(sprintf('%s',[offset '   ' structure_fields{i}]));
    62 end
    63 
    64 end
  • issm/trunk/src/m/classes/@model/subsref.m

    r1 r1252  
    1111        index1=index(1);
    1212        if(strcmp(index1.subs,'res')), displayresults(md);return; end
    13         if(strcmp(index1.subs,'solpar')), displaysolutionparameters(md);return; end
     13        if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end
     14        if(strcmp(index1.subs,'diagnostic')), displaydiagnostic(md);return; end
     15        if(strcmp(index1.subs,'prognostic')), displayprognostic(md);return; end
     16        if(strcmp(index1.subs,'thermal')), displaythermal(md);return; end
     17        if(strcmp(index1.subs,'transient')), displaytransient(md);return; end
     18        if(strcmp(index1.subs,'control')), displaycontrol(md);return; end
     19        if(strcmp(index1.subs,'mesh2grid')), displaymesh2grid(md);return; end
    1420        if(strcmp(index1.subs,'bc')), displaybc(md);return; end
    1521        if(strcmp(index1.subs,'mesh')), displaymesh(md);return; end
    1622        if(strcmp(index1.subs,'par')), displayparameters(md);return; end
    17         if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end
    18         if(strcmp(index1.subs,'control')), displaycontrol(md);return; end
    1923        if(strcmp(index1.subs,'exppar')), displayexppar(md);return; end
    2024        if(strcmp(index1.subs,'obs')), displayobservations(md);return; end
  • issm/trunk/src/m/classes/public/display/displaybc.m

    r1251 r1252  
    1212
    1313disp(sprintf('\n      geography:'));
    14 disp(sprintf('         gridonboundary: (%i)',length(md.gridonboundary)));
    15 disp(sprintf('         elementoniceshelf: (%i)',length(md.elementoniceshelf)));
    16 disp(sprintf('         gridoniceshelf: (%i)',length(md.gridoniceshelf)));
    17 disp(sprintf('         elementonicesheet: (%i)',length(md.elementonicesheet)));
    18 disp(sprintf('         gridonicesheet: (%i)',length(md.gridonicesheet)));
     14fielddisplay(md,'         ','gridonboundary','grid on boundary flags list');
     15fielddisplay(md,'         ','elementoniceshelf','element on ice shelf flags list');
     16fielddisplay(md,'         ','gridoniceshelf','grid on ice shelf flags list');
     17fielddisplay(md,'         ','elementonicesheet','element on ice sheet flags list');
     18fielddisplay(md,'         ','gridonicesheet','grid on ice sheet flags list');
    1919
    2020disp(sprintf('\n      diagnostic:'));
    21 disp(sprintf('         gridondirichlet_diag: (%i)',length(md.gridondirichlet_diag)));
    22 disp(sprintf('         dirichletvalues_diag [m/a]: (%i,%i)',length(md.dirichletvalues_diag),2));
    23 disp(sprintf('         segmentonneumann_diag: (%i)',length(md.segmentonneumann_diag)));
    24 disp(sprintf('         neumannvalues_diag [N]: (%i)',length(md.neumannvalues_diag)));
     21fielddisplay(md,'         ','gridondirichlet_diag','grid on dirichlet flags list');
     22fielddisplay(md,'         ','dirichletvalues_diag','values of the dirichlet [m/a]');
     23fielddisplay(md,'         ','segmentonneumann_diag','segments on ice front list');
     24fielddisplay(md,'         ','neumannvalues_diag','values of the Neumann [N]');
    2525
    2626disp(sprintf('\n      prognostic:'));
    27 disp(sprintf('         gridondirichlet_prog: (%i)',length(md.gridondirichlet_prog)));
    28 disp(sprintf('         dirichletvalues_prog [m/a]: (%i)',length(md.dirichletvalues_prog)));
    29 disp(sprintf('         segmentonneumann_prog (flux): (%i)',length(md.segmentonneumann_prog)));
    30 disp(sprintf('         neumannvalues_prog [N]: (%i)',length(md.neumannvalues_prog)));
    31 disp(sprintf('         segmentonneumann_prog2 (thickness gradient): (%i)',length(md.segmentonneumann_prog2)));
    32 disp(sprintf('         neumannvalues_prog2 [N]: (%i)',length(md.neumannvalues_prog2)));
     27fielddisplay(md,'         ','gridondirichlet_prog','grid on dirichlet flags list');
     28fielddisplay(md,'         ','dirichletvalues_prog','values of the dirichlet [m]');
     29fielddisplay(md,'         ','segmentonneumann_prog','segments on ice front list');
     30fielddisplay(md,'         ','neumannvalues_prog','values of the Neumann [m/a]');
    3331
    3432disp(sprintf('\n      thermal:'));
    35 disp(sprintf('         gridondirichlet_thermal: (%i)',length(md.gridondirichlet_thermal)));
    36 disp(sprintf('         dirichletvalues_thermal [K]: (%i)',length(md.dirichletvalues_thermal)));
    37 disp(sprintf('         melting [m/a]: (%i)',length(md.melting)));
     33fielddisplay(md,'         ','gridondirichlet_thermal','grid on dirichlet flags list');
     34fielddisplay(md,'         ','dirichletvalues_thermal','values of the dirichlet [m]');
     35fielddisplay(md,'         ','melting','melting rate [m/a]');
  • issm/trunk/src/m/classes/public/display/displaycontrol.m

    r1251 r1252  
    1111disp(sprintf('   Control:\n'));
    1212
    13 disp(sprintf('      control_type: %s %s',md.control_type,'(parameter where inverse control is carried out; ex: ''drag'', or ''B'')'));
    14 disp(sprintf('      fit: (%i)      (''absolute: 0'', ''relative: 1'', or ''logarithmic: 2''. default is ''absolute: 0'', for each optimization steps)',length(md.fit)));
    15 disp(sprintf('      meanvel: %g      (velocity scaling factor when evaluating relative or logarithmic misfit)',md.meanvel));
    16 disp(sprintf('      epsvel: %g      ( for relative fit, avoids misfit becoming infinity, for logarithmic fit, threshold for velocity)',md.epsvel));
    17 disp(sprintf('      nsteps: %i      (number of optimization searches)',md.nsteps));
    18 disp(sprintf('      optscal: (%i %i)      (scaling factor on gradient direction during optimization, for each optimization step)',size(md.optscal,1),size(md.optscal,2)));
    19 disp(sprintf('      mincontrolconstraint: %g      (minimum contraint for the controlled parameters)',md.mincontrolconstraint));
    20 disp(sprintf('      maxcontrolconstraint: %g      (maximum contraint for the controlled parameters)',md.maxcontrolconstraint));
    21 disp(sprintf('      maxiter: (%i)      (maximum iterations during each optimization step)',length(md.maxiter)));
    22 disp(sprintf('      tolx: %f      (minimum tolerance which will stop one optimization search)',md.tolx));
    23 disp(sprintf('      plot: %i      (visualization of the results of each iteration yes -> 1 no -> 0. Default is 1)',md.plot));
     13fielddisplay(md,'      ','control_type','parameter where inverse control is carried out; ex: ''drag'', or ''B'')');
     14fielddisplay(md,'      ','nsteps','number of optimization searches');
     15fielddisplay(md,'      ','optscal','scaling factor on gradient direction during optimization, for each optimization step');
     16fielddisplay(md,'      ','fit','''absolute: 0'', ''relative: 1'', or ''logarithmic: 2''. default is ''absolute: 0'', for each optimization steps');
     17fielddisplay(md,'      ','maxiter','maximum iterations during each optimization step');
     18fielddisplay(md,'      ','tolx','minimum tolerance which will stop one optimization search');
     19fielddisplay(md,'      ','mincontrolconstraint','minimum contraint for the controlled parameters');
     20fielddisplay(md,'      ','maxcontrolconstraint','maximum contraint for the controlled parameters');
     21fielddisplay(md,'      ','meanvel','velocity scaling factor when evaluating relative or logarithmic misfit');
     22fielddisplay(md,'      ','epsvel','for relative fit, avoids misfit becoming infinity, for logarithmic fit, threshold for velocity');
     23fielddisplay(md,'      ','plot','visualization of the results of each iteration yes -> 1 no -> 0. Default is 1');
  • issm/trunk/src/m/classes/public/display/displayexppar.m

    r1251 r1252  
    1010
    1111disp(sprintf('\n   Outlines:'));
    12 if isnan(md.domainoutline),
    13         disp(sprintf('      domainoutline: N/A'));
    14 else
    15         disp(sprintf('      domainoutline: not displayed (can be accessed by typing md.domainoutline)'));
    16 end
    17 if isnan(md.riftoutline),
    18         disp(sprintf('      riftoutline: N/A'));
    19 else
    20         disp(sprintf('      riftoutline: not displayed (can be accessed by typing md.riftoutline)'));
    21 end
    22 if isnan(md.iceshelfoutline),
    23         disp(sprintf('      iceshelfoutline: N/A'));
    24 else
    25         disp(sprintf('      iceshelfoutline: not displayed (can be accessed by typing md.iceshelfoutline)'));
    26 end
    27 if isnan(md.icesheetoutline),
    28         disp(sprintf('      icesheetoutline: N/A'));
    29 else
    30         disp(sprintf('      icesheetoutline: not displayed (can be accessed by typing md.icesheetoutline)'));
    31 end
     12fielddisplay(md,'      ','domainoutline','domain outline Argus file');
     13fielddisplay(md,'      ','riftoutline','rift outline Argus file');
     14fielddisplay(md,'      ','iceshelfoutline','ice shelf outline Argus file');
     15fielddisplay(md,'      ','icesheetoutline','ice sheet outline Argus file');
    3216
    3317disp(sprintf('\n   Model files:'));
    34 if isnan(md.parameterfile),
    35         disp(sprintf('      parameterfile: N/A'));
    36 else
    37         disp(sprintf('      parameterfile: not displayed (can be accessed by typing md.parameterfile)'));
    38 end
     18fielddisplay(md,'      ','parameterfile','parameter file content');
  • issm/trunk/src/m/classes/public/display/displaymaterials.m

    r1251 r1252  
    1111disp(sprintf('   Materials:\n'));
    1212
    13 disp(sprintf('      rho_ice: %g [kg/m^3]',md.rho_ice));
    14 disp(sprintf('      rho_water: %g [kg/m^3]',md.rho_water));
    15 if isempty(md.B), disp(sprintf('      B: N/A (flow law parameter)')); else disp(sprintf('      B: (%i) (flow law parameter [Pa/s^(1/n)])',length(md.B))); end
    16 if isempty(md.n), disp(sprintf('      n: N/A (flow law coefficient)')); else disp(sprintf('      n: (%i) (flow law coefficient)',length(md.n))); end
    17 disp(sprintf('      heatcapacity: %g [J/kg/K]',md.heatcapacity));
    18 disp(sprintf('      thermalconductivity: %g [W/m/K]',md.thermalconductivity));
    19 disp(sprintf('      meltingpoint: %g [K] (melting point of ice at 1atm in K)',md.meltingpoint));
    20 disp(sprintf('      latentheat: %g [J/kg] (latent heat of fusion)',md.latentheat));
    21 disp(sprintf('      beta: %g [K/Pa]',md.beta));
    22 disp(sprintf('      mixed_layer_capacity: %g [W/kg/K]',md.mixed_layer_capacity));
    23 disp(sprintf('      thermal_exchange_velocity: %g [m/s]',md.thermal_exchange_velocity));
     13fielddisplay(md,'      ','rho_ice','ice density [kg/m^3]');
     14fielddisplay(md,'      ','rho_water','water density [kg/m^3]');
     15fielddisplay(md,'      ','B','flow law parameter [Pa/s^(1/n)]');
     16fielddisplay(md,'      ','heatcapacity','heat capacity [J/kg/K]');
     17fielddisplay(md,'      ','thermalconductivity','ice thermal conductivity [W/m/K]');
     18fielddisplay(md,'      ','meltingpoint','melting point of ice at 1atm in K');
     19fielddisplay(md,'      ','latentheat','latent heat of fusion [J/m^3]');
     20fielddisplay(md,'      ','beta','rate of change of melting point with pressure [K/Pa]');
     21fielddisplay(md,'      ','mixed_layer_capacity','mixed layer capacity [W/kg/K]');
     22fielddisplay(md,'      ','thermal_exchange_velocity','thermal exchange velocity [m/s]');
  • issm/trunk/src/m/classes/public/display/displaymesh.m

    r1251 r1252  
    1414
    1515        disp(sprintf('\n      Elements and nodes of the original 2d mesh:'));
    16         disp(sprintf('         numberofelements2d: %i (number of elements)',md.numberofelements2d));
    17         disp(sprintf('         numberofgrids2d: %i (number of nodes)',md.numberofgrids2d));
    18         disp(sprintf('         elements2d: (%i-%i) (index into (x,y,z), coordinates of the grids)',md.numberofelements2d,size(md.elements2d,2)));
    19         disp(sprintf('         elements_type2d: (%i) (element types, according to number of grids)',md.numberofelements2d));
    20         disp(sprintf('         x2d: (%i) (node x coordinates)',length(md.x2d)));
    21         disp(sprintf('         y2d: (%i) (node y coordinates)',length(md.y2d)));
    22         disp(sprintf('         z2d: (%i) (node z coordinates)',length(md.z2d)));
     16        fielddisplay(md,'         ','numberofelements2d','number of elements');
     17        fielddisplay(md,'         ','numberofgrids2d','number of nodes');
     18        fielddisplay(md,'         ','elements2d','index into (x,y,z), coordinates of the grids');
     19        fielddisplay(md,'         ','elements_type2d','element types');
     20        fielddisplay(md,'         ','x2d','nodes x coordinate');
     21        fielddisplay(md,'         ','y2d','nodes y coordinate');
     22        fielddisplay(md,'         ','z2d','nodes z coordinate');
    2323
    2424        disp(sprintf('\n      Elements and nodes of the extruded 3d mesh:'));
    2525else
    26 
    2726        disp(sprintf('\n      Elements and nodes:'));
    2827end
    29 
    30 disp(sprintf('         numberofelements: %i (number of elements)',md.numberofelements));
    31 disp(sprintf('         numberofgrids: %i (number of nodes)',md.numberofgrids));
    32 if ~isnan(md.dof), disp(sprintf('      dof: %i (maximum number of dofs solved)',md.dof)); end
    33 disp(sprintf('         elements: (%i-%i) (index into (x,y,z), coordinates of the grids)',md.numberofelements,size(md.elements,2)));
    34 disp(sprintf('         elements_type: (%i) (element types, according to number of grids)',md.numberofelements));
    35 disp(sprintf('         x: (%i) (node x coordinates)',length(md.x)));
    36 disp(sprintf('         y: (%i) (node y coordinates)',length(md.y)));
    37 disp(sprintf('         z: (%i) (node z coordinates)',length(md.z)));
    38 disp(sprintf('         numlayers: %i (number of extrusion layers)',md.numlayers));
     28fielddisplay(md,'         ','numberofelements','number of elements');
     29fielddisplay(md,'         ','numberofgrids','number of nodes');
     30fielddisplay(md,'         ','elements','index into (x,y,z), coordinates of the grids');
     31fielddisplay(md,'         ','elements_type','element types');
     32fielddisplay(md,'         ','x','nodes x coordinate');
     33fielddisplay(md,'         ','y','nodes y coordinate');
     34fielddisplay(md,'         ','z','nodes z coordinate');
     35fielddisplay(md,'         ','numlayers','number of extrusion layers');
     36fielddisplay(md,'         ','dof','maximum number of dofs solved');
    3937
    4038disp(sprintf('\n      Properties:'));
    41 disp(sprintf('         type: %s',md.type));
    42 disp(sprintf('         Penalties: (%i-%i))',size(md.penalties,1),size(md.penalties,2)));
    43 disp(sprintf('         gridonbed: (%i) (lower nodes flags list)',length(md.gridonbed)));
    44 disp(sprintf('         gridonsurface: (%i) (upper nodes flags list)',length(md.gridonsurface)));
    45 disp(sprintf('         elementonbed: (%i) (lower elements flags list)',length(md.elementonbed)));
    46 disp(sprintf('         elementonsurface: (%i) (upper elements flags list)',length(md.elementonsurface)));
     39fielddisplay(md,'         ','type','mesh type');
     40fielddisplay(md,'         ','penalties','penalties list');
     41fielddisplay(md,'         ','gridonbed','lower nodes flags list');
     42fielddisplay(md,'         ','elementonbed','lower elements flags list');
     43fielddisplay(md,'         ','gridonsurface','upper nodes flags list');
     44fielddisplay(md,'         ','elementonsurface','upper elements flags list');
  • issm/trunk/src/m/classes/public/display/displayobservations.m

    r1251 r1252  
    1111disp(sprintf('   Observations:\n'));
    1212
    13 disp(sprintf('      vx_obs [m/a]: (%i)',length(md.vx_obs)));
    14 disp(sprintf('      vy_obs [m/a]: (%i)',length(md.vy_obs)));
    15 disp(sprintf('      vel_obs [m/a]: (%i)',length(md.vel_obs)));
    16 disp(sprintf('      accumulation [m/a]: (%i)',length(md.accumulation)));
    17 disp(sprintf('      observed_temperature [K]: (%i)',length(md.observed_temperature)));
    18 disp(sprintf('      geothermalflux [W/m^2]: (%i)',length(md.geothermalflux)));
     13fielddisplay(md,'      ','vx_obs','observed velocity x component [m/a]');
     14fielddisplay(md,'      ','vy_obs','observed velocity y component [m/a]');
     15fielddisplay(md,'      ','vel_obs','observed velocity magnitude [m/a]');
     16fielddisplay(md,'      ','accumulation','surface accumulation rate [m/a]');
     17fielddisplay(md,'      ','observed_temperature','observed temperature [K]');
     18fielddisplay(md,'      ','geothermalflux','geothermal heat flux [W/m^2]');
  • issm/trunk/src/m/classes/public/display/displayparallel.m

    r1251 r1252  
    1212
    1313disp(sprintf('\n      parallelisation:'));
    14 disp(sprintf('         cluster: %s      (set to ''cluster_name'' to run in cluster, ''none'' to run serially)',md.cluster));
    15 disp(sprintf('         np: %i      (number of CPUS requested on cluster)',md.np));
    16 disp(sprintf('         exclusive: %i      (set to 1 if CPUS used are not to be shared with other users, 0 otherwise)',md.exclusive));
    17 disp(sprintf('         time: %i      (amount of time requested on cluster)',md.time));
    18 disp(sprintf('         alloc_cleanup: %i      (allocation cleanup before starting a job, default 1)',md.alloc_cleanup));
    19 disp(sprintf('         waitonlock: %i      (wait for batch results 1, or return 0. default is to return )',md.waitonlock));
    20 disp(sprintf('         queue: %s      (special queue name on cluster? default is '''')',md.queue));disp(sprintf('\n      solver options:'));
     14fielddisplay(md,'         ','cluster','set to ''cluster_name'' to run in cluster, ''none'' to run serially');
     15fielddisplay(md,'         ','np','number of CPUS requested on cluster');
     16fielddisplay(md,'         ','exclusive','set to 1 if CPUS used are not to be shared with other users, 0 otherwise');
     17fielddisplay(md,'         ','time','amount of time requested on cluster');
     18fielddisplay(md,'         ','alloc_cleanup','allocation cleanup before starting a job, default 1');
     19fielddisplay(md,'         ','waitonlock','wait for batch results 1, or return 0. default is to return');
     20fielddisplay(md,'         ','queue','special queue name on cluster? default is '''' ');
    2121
    22 disp(sprintf('\n      solver options:'));
    23 disp(sprintf('         ice'));
    24 disp(sprintf('            solver_type: %s  (solver type for Ice: ''general'', ''lu'' or ''cholesky'')',md.solver_type));
    25 disp(sprintf('         cielo'));
    26 disp(sprintf('            solverstring: %s \n            (solver string for Petsc. See solversetto... routines. Default is asm)',md.solverstring));
     22disp(sprintf('\n      ice solver options:'));
     23fielddisplay(md,'         ','solver_type','solver type for Ice: ''general'', ''lu'' or ''cholesky''');
     24disp(sprintf('\n      cielo solver options:'));
     25fielddisplay(md,'         ','solverstring','solver string for Petsc. See solversetto... routines. Default is mumps');
  • issm/trunk/src/m/classes/public/display/displayparameters.m

    r1251 r1252  
    1212
    1313disp(sprintf('\n      geometry:'));
    14 if isempty(md.surface), disp(sprintf('         surface: N/A')); else disp(sprintf('         surface [m]: (%i)',length(md.surface))); end
    15 if isempty(md.thickness), disp(sprintf('         thickness: N/A')); else disp(sprintf('         thickness [m]: (%i)',length(md.thickness))); end
    16 if isempty(md.bed), disp(sprintf('         bed: N/A')); else disp(sprintf('         bed [m]: (%i)',length(md.bed))); end
    17 if isempty(md.firn_layer), disp(sprintf('         firn_layer: N/A')); else disp(sprintf('         firn_layer [m]: (%i)',length(md.firn_layer))); end
    18 if strcmpi(md.type,'3d'), disp(sprintf('         elementonbed: (%i)',length(md.elementonbed))); end
    19 if strcmpi(md.type,'3d'), disp(sprintf('         elementonsurface: (%i)',length(md.elementonsurface))); end
    20 if strcmpi(md.type,'3d'), disp(sprintf('         gridonbed: (%i)',length(md.gridonbed))); end
    21 if strcmpi(md.type,'3d'), disp(sprintf('         gridonsurface: (%i)',length(md.gridonsurface))); end
     14fielddisplay(md,'         ','surface','surface height [m]');
     15fielddisplay(md,'         ','thickness','thickness [m]');
     16fielddisplay(md,'         ','bed','bed height [m]');
     17fielddisplay(md,'         ','firn_layer','firn layer height [m]');
     18fielddisplay(md,'         ','elementonbed','element on bed flags list');
     19fielddisplay(md,'         ','elementonsurface','element on surface flags list');
     20fielddisplay(md,'         ','gridonbed','grid on bed flags list');
     21fielddisplay(md,'         ','gridonsurface','grid on surface flags list');
    2222
    2323disp(sprintf('\n      physical parameters:'));
    24 disp(sprintf('         g: %g [m/s^2]',md.g));
     24fielddisplay(md,'         ','g','acceleration due to gravity [m/s^2]');
    2525
    2626disp(sprintf('\n      Friction parameters (Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_ice*g*bed, r=q/p and s=1/p)'));
    27 disp(sprintf('         drag_type: %i (0: none, 1:plastic, 2:viscous):',md.drag_type));
    28 if isempty(md.drag), disp(sprintf('         drag: N/A')); else disp(sprintf('         drag: (%i)',length(md.drag))); end
    29 disp(sprintf('         drag_type: %i (0: none, 1:plastic, 2:viscous):',md.drag_type));
    30 if isempty(md.p), disp(sprintf('         p: N/A')); else disp(sprintf('         p: (%i)',length(md.p))); end
    31 if isempty(md.q), disp(sprintf('         q: N/A')); else disp(sprintf('         q: (%i)',length(md.q))); end
     27fielddisplay(md,'         ','drag_type','0: none, 1:plastic, 2:viscous');
     28fielddisplay(md,'         ','drag','friction coefficient [IS]');
     29fielddisplay(md,'         ','p','p exponent');
     30fielddisplay(md,'         ','q','q exponent');
  • issm/trunk/src/m/classes/public/display/displayresults.m

    r1251 r1252  
    1111disp(sprintf('   Results:'));
    1212
    13 %call struct_display recursively on md.results
    14 struct_display(md.results,'      ');
     13disp(sprintf('\n      solution results:'));
     14fielddisplay(md,'         ','results','');
    1515
    16 %display output parameters
    1716disp(sprintf('\n      output parameters:'));
    18 if ~isstruct(md.stress), disp(sprintf('         stress: N/A'));
    19 else
    20         disp(sprintf('         stress [Pa]:'));
    21         struct_display(md.stress,'         ');
    22 end
    23 if ~isstruct(md.deviatoricstress), disp(sprintf('         deviatoricstress: N/A'));
    24 else
    25         disp(sprintf('         deviatoricstress [Pa]:'));
    26         struct_display(md.deviatoricstress,'         ');
    27 end
    28 if ~isstruct(md.strainrate), disp(sprintf('         strainrate: N/A'));
    29 else
    30         disp(sprintf('         strainrate [1/a]:'));
    31         struct_display(md.strainrate,'         ');
    32 end
    33 end
    34 
    35 function struct_display(structure,offset)
    36         structure_fields=fields(structure);
    37         for i=1:length(structure_fields),
    38                 %recursive call if necessary
    39                 field=eval(['structure.' structure_fields{i}]);
    40                 if isstruct(field),
    41                         disp(sprintf('\n%s',[offset structure_fields{i} ':']));
    42                         struct_display(field,[offset '   ']);
    43                 else
    44                         disp(sprintf('%s',[offset structure_fields{i} ': (' num2str(size(field,1))  ')' ]));
    45                 end
    46         end
    47 end
     17fielddisplay(md,'         ','stress','stress [Pa]');
     18fielddisplay(md,'         ','deviatoricstress','deviatoric stress [Pa]');
     19fielddisplay(md,'         ','strainrate','strain rate [1/yr]');
Note: See TracChangeset for help on using the changeset viewer.