Changeset 9505 for issm/trunk


Ignore:
Timestamp:
08/31/11 10:26:39 (14 years ago)
Author:
Mathieu Morlighem
Message:

Added class modelfield with variable number of options

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

Legend:

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

    r9465 r9505  
    1212
    1313                 %Model general information
    14                  notes           = {'',false};
    15                  name            = {'',true,'String'};
    16                  runtimename     = {'',false}; %name used when running a parallel job
    17                  counter         = {0,false};
     14                 notes           = modelfield('default','','marshall',false);
     15                 name            = modelfield('default','','marshall',true,'format','String');
     16                 runtimename     = modelfield('default','','marshall',false); %name used when running a parallel job
     17                 counter         = modelfield('default',0,'marshall',false);
    1818
    1919                 %Mesh
    20                  bamg                = {struct(),false};
    21                  dim                 = {0,true,'Integer'};
    22                  numberofelements    = {0,true,'Integer'};
    23                  numberofnodes       = {0,true,'Integer'};
    24                  elements            = {NaN,true,'DoubleMat',2};
    25                  elements_type       = {NaN,true,'DoubleMat',2};
    26                  vertices_type       = {NaN,true,'DoubleMat',1};
    27                  x                   = {NaN,true,'DoubleMat',1};
    28                  y                   = {NaN,true,'DoubleMat',1};
    29                  z                   = {NaN,true,'DoubleMat',1};
    30                  nodeconnectivity    = {NaN,false};
    31                  elementconnectivity = {NaN,true,'DoubleMat',3};
    32                  edges               = {NaN,true,'DoubleMat',3};
     20                 bamg                = modelfield('default',struct(),'marshall',false);
     21                 dim                 = modelfield('default',0,'marshall',true,'format','Integer');
     22                 numberofelements    = modelfield('default',0,'marshall',true,'format','Integer');
     23                 numberofnodes       = modelfield('default',0,'marshall',true,'format','Integer');
     24                 elements            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',2);
     25                 elements_type       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',2);
     26                 vertices_type       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     27                 x                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     28                 y                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     29                 z                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     30                 nodeconnectivity    = modelfield('default',NaN,'marshall',false);
     31                 elementconnectivity = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     32                 edges               = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
    3333
    3434                 %I/O
    35                  io_gather           = {NaN,true,'Boolean'};
     35                 io_gather           = modelfield('default',0,'marshall',true,'format','Boolean');
    3636
    3737                 %Initial 2d mesh
    38                  numberofelements2d = {0,true,'Integer'};
    39                  numberofnodes2d    = {0,true,'Integer'};
    40                  elements2d         = {NaN,true,'DoubleMat',3};
    41                  elements_type2d    = {NaN,false};
    42                  vertices_type2d    = {NaN,false};
    43                  x2d                = {NaN,false};
    44                  y2d                = {NaN,false};
     38                 numberofelements2d = modelfield('default',0,'marshall',true,'format','Integer');
     39                 numberofnodes2d    = modelfield('default',0,'marshall',true,'format','Integer');
     40                 elements2d         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     41                 elements_type2d    = modelfield('default',NaN,'marshall',false);
     42                 vertices_type2d    = modelfield('default',NaN,'marshall',false);
     43                 x2d                = modelfield('default',NaN,'marshall',false);
     44                 y2d                = modelfield('default',NaN,'marshall',false);
    4545
    4646                 %latlon of the coorinates
    47                  lat        = {NaN,false};
    48                  long       = {NaN,false};
    49                  hemisphere = {NaN,false};
     47                 lat        = modelfield('default',NaN,'marshall',false);
     48                 long       = modelfield('default',NaN,'marshall',false);
     49                 hemisphere = modelfield('default',NaN,'marshall',false);
    5050
    5151                 %Elements type
    52                  ishutter             = {0,true,'Boolean'};
    53                  ismacayealpattyn     = {0,true,'Boolean'};
    54                  isstokes             = {0,true,'Boolean'};
     52                 ishutter             = modelfield('default',0,'marshall',true,'format','Boolean');
     53                 ismacayealpattyn     = modelfield('default',0,'marshall',true,'format','Boolean');
     54                 isstokes             = modelfield('default',0,'marshall',true,'format','Boolean');
    5555
    5656                 %Elements
    57                  elementonhutter      = {NaN,false};
    58                  elementonmacayeal    = {NaN,false};
    59                  elementonpattyn      = {NaN,false};
    60                  elementonstokes      = {NaN,false};
     57                 elementonhutter      = modelfield('default',NaN,'marshall',false);
     58                 elementonmacayeal    = modelfield('default',NaN,'marshall',false);
     59                 elementonpattyn      = modelfield('default',NaN,'marshall',false);
     60                 elementonstokes      = modelfield('default',NaN,'marshall',false);
    6161
    6262                 %Nodes
    63                  nodeonhutter         = {NaN,true,'DoubleMat',1};
    64                  nodeonmacayeal       = {NaN,true,'DoubleMat',1};
    65                  nodeonpattyn         = {NaN,true,'DoubleMat',1};
    66                  nodeonstokes         = {NaN,true,'DoubleMat',1};
    67                  borderstokes         = {NaN,true,'DoubleMat',3};
     63                 nodeonhutter         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     64                 nodeonmacayeal       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     65                 nodeonpattyn         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     66                 nodeonstokes         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     67                 borderstokes         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
    6868
    6969                 %Stokes
    70                  stokesreconditioning = {0,true,'Double'};
    71                  shelf_dampening      = {0,true,'Integer'};
     70                 stokesreconditioning = modelfield('default',0,'marshall',true,'format','Double');
     71                 shelf_dampening      = modelfield('default',0,'marshall',true,'format','Integer');
    7272
    7373                 %Penalties
    74                  penalties            = {NaN,true,'DoubleMat',3};
    75                  penalty_offset       = {0,true,'Double'};
    76                  penalty_lock         = {0,true,'Integer'};
    77                  segments             = {NaN,false};
    78                  segmentmarkers       = {NaN,false};
    79                  rifts                = {NaN,false};
    80                  riftinfo             = {NaN,true,'DoubleMat',3};
    81                  riftproperties       = {NaN,false};
    82                  numrifts             = {0,true,'Integer'};
     74                 penalties            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     75                 penalty_offset       = modelfield('default',0,'marshall',true,'format','Double');
     76                 penalty_lock         = modelfield('default',0,'marshall',true,'format','Integer');
     77                 segments             = modelfield('default',NaN,'marshall',false);
     78                 segmentmarkers       = modelfield('default',NaN,'marshall',false);
     79                 rifts                = modelfield('default',NaN,'marshall',false);
     80                 riftinfo             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     81                 riftproperties       = modelfield('default',NaN,'marshall',false);
     82                 numrifts             = modelfield('default',0,'marshall',true,'format','Integer');
    8383
    8484                 %Projections
    85                  uppernodes           = {NaN,false};
    86                  upperelements        = {NaN,true,'DoubleMat',2};
    87                  lowerelements        = {NaN,true,'DoubleMat',2};
    88                  lowernodes           = {NaN,false};
     85                 uppernodes           = modelfield('default',NaN,'marshall',false);
     86                 upperelements        = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',2);
     87                 lowerelements        = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',2);
     88                 lowernodes           = modelfield('default',NaN,'marshall',false);
    8989
    9090                 %Extrusion
    91                  numlayers         = {0,true,'Integer'};
    92                  elementonbed      = {NaN,true,'BooleanMat',2};
    93                  elementonsurface  = {NaN,true,'BooleanMat',2};
    94                  nodeonbed         = {NaN,true,'BooleanMat',1};
    95                  nodeonsurface     = {NaN,true,'BooleanMat',1};
    96                  minh              = {0,false};
     91                 numlayers         = modelfield('default',0,'marshall',true,'format','Integer');
     92                 elementonbed      = modelfield('default',NaN,'marshall',true,'format','BooleanMat','sizetype',2);
     93                 elementonsurface  = modelfield('default',NaN,'marshall',true,'format','BooleanMat','sizetype',2);
     94                 nodeonbed         = modelfield('default',NaN,'marshall',true,'format','BooleanMat','sizetype',1);
     95                 nodeonsurface     = modelfield('default',NaN,'marshall',true,'format','BooleanMat','sizetype',1);
     96                 minh              = modelfield('default',0,'marshall',false);
    9797
    9898                 %Extraction
    99                  extractednodes    = {NaN,false};
    100                  extractedelements = {NaN,false};
     99                 extractednodes    = modelfield('default',NaN,'marshall',false);
     100                 extractedelements = modelfield('default',NaN,'marshall',false);
    101101
    102102                 %Materials parameters
    103                  rho_ice                    = {0,true,'Double'};
    104                  rho_water                  = {0,true,'Double'};
    105                  heatcapacity               = {0,true,'Double'};
    106                  latentheat                 = {0,true,'Double'};
    107                  thermalconductivity        = {0,true,'Double'};
    108                  meltingpoint               = {0,true,'Double'};
    109                  referencetemperature       = {0,true,'Double'}; %for enthalpy
    110                  beta                       = {0,true,'Double'};
    111                  mixed_layer_capacity       = {0,true,'Double'};
    112                  thermal_exchange_velocity  = {0,true,'Double'};
    113                  min_thermal_constraints    = {0,true,'Integer'};
    114                  min_mechanical_constraints = {0,true,'Integer'};
    115                  stabilize_constraints      = {0,true,'Integer'};
     103                 rho_ice                    = modelfield('default',0,'marshall',true,'format','Double');
     104                 rho_water                  = modelfield('default',0,'marshall',true,'format','Double');
     105                 heatcapacity               = modelfield('default',0,'marshall',true,'format','Double');
     106                 latentheat                 = modelfield('default',0,'marshall',true,'format','Double');
     107                 thermalconductivity        = modelfield('default',0,'marshall',true,'format','Double');
     108                 meltingpoint               = modelfield('default',0,'marshall',true,'format','Double');
     109                 referencetemperature       = modelfield('default',0,'marshall',true,'format','Double'); %for enthalpy
     110                 beta                       = modelfield('default',0,'marshall',true,'format','Double');
     111                 mixed_layer_capacity       = modelfield('default',0,'marshall',true,'format','Double');
     112                 thermal_exchange_velocity  = modelfield('default',0,'marshall',true,'format','Double');
     113                 min_thermal_constraints    = modelfield('default',0,'marshall',true,'format','Integer');
     114                 min_mechanical_constraints = modelfield('default',0,'marshall',true,'format','Integer');
     115                 stabilize_constraints      = modelfield('default',0,'marshall',true,'format','Integer');
    116116
    117117                 %Physical parameters
    118                  g                = {0,true,'Double'};
    119                  yts              = {0,true,'Double'};
    120                  drag_coefficient = {NaN,true,'DoubleMat',1};
    121                  drag_p           = {NaN,true,'DoubleMat',2};
    122                  drag_q           = {NaN,true,'DoubleMat',2};
    123                  rheology_B       = {NaN,true,'DoubleMat',1};
    124                  rheology_n       = {NaN,true,'DoubleMat',2};
    125                  rheology_law     = {'',true,'String'};
     118                 g                = modelfield('default',0,'marshall',true,'format','Double');
     119                 yts              = modelfield('default',0,'marshall',true,'format','Double');
     120                 drag_coefficient = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     121                 drag_p           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',2);
     122                 drag_q           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',2);
     123                 rheology_B       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     124                 rheology_n       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',2);
     125                 rheology_law     = modelfield('default','','marshall',true,'format','String');
    126126
    127127                 %Geometrical parameters
    128                  elementoniceshelf = {NaN,true,'BooleanMat',2};
    129                  elementonicesheet = {NaN,true,'BooleanMat',2};
    130                  elementonwater    = {NaN,true,'BooleanMat',2};
    131                  nodeoniceshelf    = {NaN,true,'DoubleMat',1};
    132                  nodeonicesheet    = {NaN,true,'DoubleMat',1};
    133                  nodeonwater       = {NaN,true,'DoubleMat',1};
    134                  surface           = {NaN,true,'DoubleMat',1};
    135                  thickness         = {NaN,true,'DoubleMat',1};
    136                  thickness_coeff   = {NaN,true,'DoubleMat',1};
    137                  bed               = {NaN,true,'DoubleMat',1};
    138                  bathymetry        = {NaN,true,'DoubleMat',1};
     128                 elementoniceshelf = modelfield('default',NaN,'marshall',true,'format','BooleanMat','sizetype',2);
     129                 elementonicesheet = modelfield('default',NaN,'marshall',true,'format','BooleanMat','sizetype',2);
     130                 elementonwater    = modelfield('default',NaN,'marshall',true,'format','BooleanMat','sizetype',2);
     131                 nodeoniceshelf    = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     132                 nodeonicesheet    = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     133                 nodeonwater       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     134                 surface           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     135                 thickness         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     136                 thickness_coeff   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     137                 bed               = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     138                 bathymetry        = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
    139139
    140140                 %Boundary conditions
    141                  nodeonboundary = {NaN,false};
    142                  pressureload   = {NaN,true,'DoubleMat',3};
    143                  spcvx          = {NaN,true,'DoubleMat',1};
    144                  spcvy          = {NaN,true,'DoubleMat',1};
    145                  spcvz          = {NaN,true,'DoubleMat',1};
    146                  spctemperature = {NaN,true,'DoubleMat',1};
    147                  spcthickness   = {NaN,true,'DoubleMat',1};
    148                  spcwatercolumn = {NaN,true,'DoubleMat',1};
    149                  diagnostic_ref = {NaN,true,'DoubleMat',1};
     141                 nodeonboundary = modelfield('default',NaN,'marshall',false);
     142                 pressureload   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     143                 spcvx          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     144                 spcvy          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     145                 spcvz          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     146                 spctemperature = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     147                 spcthickness   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     148                 spcwatercolumn = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     149                 diagnostic_ref = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
    150150
    151151                 %Observations
    152                  vx_obs                    = {NaN,true,'DoubleMat',1};
    153                  vy_obs                    = {NaN,true,'DoubleMat',1};
    154                  vel_obs                   = {NaN,false};
    155                  surface_accumulation_rate = {NaN,true,'DoubleMat',1};
    156                  surface_ablation_rate     = {NaN,true,'DoubleMat',1};
    157                  surface_mass_balance      = {NaN,true,'DoubleMat',1};
    158                  dhdt                      = {NaN,true,'DoubleMat',1};
    159                  geothermalflux            = {NaN,true,'DoubleMat',1};
    160                  thickness_obs             = {NaN,true,'DoubleMat',1};
     152                 vx_obs                    = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     153                 vy_obs                    = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     154                 vel_obs                   = modelfield('default',NaN,'marshall',false);
     155                 surface_accumulation_rate = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     156                 surface_ablation_rate     = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     157                 surface_mass_balance      = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     158                 dhdt                      = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     159                 geothermalflux            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     160                 thickness_obs             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
    161161
    162162                 %Statics parameters
    163                  eps_res                  = {0,true,'Double'};
    164                  eps_rel                  = {0,true,'Double'};
    165                  eps_abs                  = {0,true,'Double'};
    166                  max_nonlinear_iterations = {0,true,'Integer'};
    167                  max_steadystate_iterations = {0,true,'Integer'};
    168                  connectivity             = {0,true,'Integer'};
    169                  lowmem                   = {0,true,'Boolean'};
    170                  viscosity_overshoot      = {0,true,'Double'};
     163                 eps_res                  = modelfield('default',0,'marshall',true,'format','Double');
     164                 eps_rel                  = modelfield('default',0,'marshall',true,'format','Double');
     165                 eps_abs                  = modelfield('default',0,'marshall',true,'format','Double');
     166                 max_nonlinear_iterations = modelfield('default',0,'marshall',true,'format','Integer');
     167                 max_steadystate_iterations = modelfield('default',0,'marshall',true,'format','Integer');
     168                 connectivity             = modelfield('default',0,'marshall',true,'format','Integer');
     169                 lowmem                   = modelfield('default',0,'marshall',true,'format','Boolean');
     170                 viscosity_overshoot      = modelfield('default',0,'marshall',true,'format','Double');
    171171
    172172                 %Transient
    173                  dt                     = {0,true,'Double'};
    174                  ndt                    = {0,true,'Double'};
    175                  time_adapt             = {0,true,'Boolean'};
    176                  cfl_coefficient        = {0,true,'Double'};
    177                  artificial_diffusivity = {0,true,'Integer'};
    178                  prognostic_DG          = {0,true,'Integer'};
    179                  hydrostatic_adjustment = {0,true,'Integer'};
    180                  isprognostic = {0,true,'Boolean'};
    181                  isdiagnostic = {0,true,'Boolean'};
    182                  isthermal    = {0,true,'Boolean'};
     173                 dt                     = modelfield('default',0,'marshall',true,'format','Double');
     174                 ndt                    = modelfield('default',0,'marshall',true,'format','Double');
     175                 time_adapt             = modelfield('default',0,'marshall',true,'format','Boolean');
     176                 cfl_coefficient        = modelfield('default',0,'marshall',true,'format','Double');
     177                 artificial_diffusivity = modelfield('default',0,'marshall',true,'format','Integer');
     178                 prognostic_DG          = modelfield('default',0,'marshall',true,'format','Integer');
     179                 hydrostatic_adjustment = modelfield('default',0,'marshall',true,'format','Integer');
     180                 isprognostic = modelfield('default',0,'marshall',true,'format','Boolean');
     181                 isdiagnostic = modelfield('default',0,'marshall',true,'format','Boolean');
     182                 isthermal    = modelfield('default',0,'marshall',true,'format','Boolean');
    183183                 %Control
    184                  control_analysis = {0,true,'Boolean'};
    185                  control_type     = {0,true,'DoubleMat',3};
    186                  weights          = {[],true,'DoubleMat',1};
    187                  nsteps           = {0,true,'Integer'};
    188                  maxiter          = {[],true,'DoubleMat',3};
    189                  cm_responses     = {[],true,'DoubleMat',3};
    190                  tolx             = {0,true,'Double'};
    191                  optscal          = {[],true,'DoubleMat',3};
    192                  eps_cm           = {0,true,'Double'};
    193                  cm_min           = {NaN,true,'DoubleMat',3};
    194                  cm_max           = {NaN,true,'DoubleMat',3};
    195                  cm_jump          = {[],true,'DoubleMat',3};
    196                  cm_gradient      = {0,true,'Boolean'};
    197                  epsvel                              = {0,true,'Double'};
    198                  meanvel                             = {0,true,'Double'};
    199                  num_control_type                    = {0,true,'Integer'};
    200                  num_cm_responses                    = {0,true,'Integer'};
     184                 control_analysis = modelfield('default',0,'marshall',true,'format','Boolean');
     185                 control_type     = modelfield('default',0,'marshall',true,'format','DoubleMat','sizetype',3);
     186                 weights          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     187                 nsteps           = modelfield('default',0,'marshall',true,'format','Integer');
     188                 maxiter          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     189                 cm_responses     = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     190                 tolx             = modelfield('default',0,'marshall',true,'format','Double');
     191                 optscal          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     192                 eps_cm           = modelfield('default',0,'marshall',true,'format','Double');
     193                 cm_min           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     194                 cm_max           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     195                 cm_jump          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
     196                 cm_gradient      = modelfield('default',0,'marshall',true,'format','Boolean');
     197                 epsvel                         = modelfield('default',0,'marshall',true,'format','Double');
     198                 meanvel                        = modelfield('default',0,'marshall',true,'format','Double');
     199                 num_control_type               = modelfield('default',0,'marshall',true,'format','Integer');
     200                 num_cm_responses               = modelfield('default',0,'marshall',true,'format','Integer');
    201201                 %Output
    202                  requested_outputs                    = {[],true,'DoubleMat',3};
     202                 requested_outputs               = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',3);
    203203                 %Debugging
    204                  verbose                             = {0,true,'Integer'};
    205                  mem_debug                           = {0,false};
    206                  gprof                               = {0,false};
     204                 verbose                        = modelfield('default',0,'marshall',true,'format','Integer');
     205                 mem_debug                      = modelfield('default',0,'marshall',false);
     206                 gprof                          = modelfield('default',0,'marshall',false);
    207207                 %Results fields
    208                  output_frequency                    = {0,true,'Integer'};
    209                  results_on_vertices                 = {0,true,'Boolean'};
    210                  inputfilename                       = {'',true,'String'};
    211                  outputfilename                      = {'',true,'String'};
    212                  results                             = {struct(),false};
    213                  vx                                  = {NaN,true,'DoubleMat',1};
    214                  vy                                  = {NaN,true,'DoubleMat',1};
    215                  vz                                  = {NaN,true,'DoubleMat',1};
    216                  vel                                 = {NaN,false};
    217                  temperature                         = {NaN,true,'DoubleMat',1}; %temperature solution vector
    218                  waterfraction                       = {NaN,true,'DoubleMat',1};
    219                  groundingline_melting_rate                     = {NaN,true,'Double'};
    220                  basal_melting_rate                  = {NaN,true,'DoubleMat',1};
    221                  basal_melting_rate_correction       = {NaN,true,'DoubleMat',1};
    222                  pressure                            = {NaN,true,'DoubleMat',1};
     208                 output_frequency               = modelfield('default',0,'marshall',true,'format','Integer');
     209                 results_on_vertices            = modelfield('default',0,'marshall',true,'format','Boolean');
     210                 inputfilename                  = modelfield('default','','marshall',true,'format','String');
     211                 outputfilename                 = modelfield('default','','marshall',true,'format','String');
     212                 results                        = modelfield('default',struct(),'marshall',false);
     213                 vx                             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     214                 vy                             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     215                 vz                             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     216                 vel                            = modelfield('default',NaN,'marshall',false);
     217                 temperature                    = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1); %temperature solution vector
     218                 waterfraction                  = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     219                 groundingline_melting_rate                = modelfield('default',NaN,'marshall',true,'format','Double');
     220                 basal_melting_rate             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     221                 basal_melting_rate_correction  = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
     222                 pressure                       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
    223223                 %Hydrology
    224                  watercolumn                         = {NaN,true,'DoubleMat',1};
     224                 watercolumn                    = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',1);
    225225
    226226                 %Hydrology
    227                  hydro_n                             = {0,true,'Double'};
    228                  hydro_CR                            = {0,true,'Double'};
    229                  hydro_p                             = {0,true,'Double'};
    230                  hydro_q                             = {0,true,'Double'};
    231                  hydro_kn                            = {0,true,'Double'};
     227                 hydro_n                        = modelfield('default',0,'marshall',true,'format','Double');
     228                 hydro_CR                       = modelfield('default',0,'marshall',true,'format','Double');
     229                 hydro_p                        = modelfield('default',0,'marshall',true,'format','Double');
     230                 hydro_q                        = modelfield('default',0,'marshall',true,'format','Double');
     231                 hydro_kn                       = modelfield('default',0,'marshall',true,'format','Double');
    232232                 
    233233                 %Parallelisation
    234                  cluster       = {NaN,false};
    235                  outlog        = {'',false};
    236                  errlog        = {'',false};
    237                  waitonlock    = {0,true,'Boolean'};
     234                 cluster       = modelfield('default',NaN,'marshall',false);
     235                 outlog        = modelfield('default','','marshall',false);
     236                 errlog        = modelfield('default','','marshall',false);
     237                 waitonlock    = modelfield('default',0,'marshall',true,'format','Boolean');
    238238
    239239                 %dummy
    240                  dummy = {NaN,false};
     240                 dummy = modelfield('default',NaN,'marshall',false);
    241241
    242242                 %PETSc and MATLAB solver string
    243                  petscoptions  = {NaN,false};
     243                 petscoptions  = modelfield('default',NaN,'marshall',false);
    244244
    245245                 %Analysis
    246                  solution_type = {'',false};
     246                 solution_type = modelfield('default','','marshall',false);
    247247
    248248                 %radar power images
    249                  sarpwr = {NaN,false};
    250                  sarxm  = {NaN,false};
    251                  sarym  = {NaN,false};
     249                 sarpwr = modelfield('default',NaN,'marshall',false);
     250                 sarxm  = modelfield('default',NaN,'marshall',false);
     251                 sarym  = modelfield('default',NaN,'marshall',false);
    252252
    253253                 %qmu
    254                  variables                       = {struct(),false};
    255                  responses                       = {struct(),false};
    256                  qmu_method                      = {struct(),false};
    257                  qmu_params                      = {struct(),false};
    258                  dakotaresults                   = {struct(),false};
    259                  dakotain                        = {'',false};
    260                  dakotaout                       = {'',false};
    261                  dakotadat                       = {'',false};
    262                  qmu_analysis                    = {0,true,'Boolean'};
    263                  part                            = {[],true,'DoubleMat',2};
    264                  npart                           = {0,true,'Integer'};
    265                  numberofvariables               = {0,true,'Integer'};
    266                  numberofresponses               = {0,true,'Integer'};
    267                  variabledescriptors             = {{},true,'StringArray'};
    268                  responsedescriptors             = {{},true,'StringArray'};
    269                  qmu_mass_flux_profile_directory = {NaN,false};
    270                  qmu_mass_flux_profiles          = {NaN,false};
    271                  qmu_mass_flux_segments          = {{},true,'MatArray'};
    272                  qmu_relax                       = {0,false};
     254                 variables                       = modelfield('default',struct(),'marshall',false);
     255                 responses                       = modelfield('default',struct(),'marshall',false);
     256                 qmu_method                      = modelfield('default',struct(),'marshall',false);
     257                 qmu_params                      = modelfield('default',struct(),'marshall',false);
     258                 dakotaresults                   = modelfield('default',struct(),'marshall',false);
     259                 dakotain                        = modelfield('default','','marshall',false);
     260                 dakotaout                       = modelfield('default','','marshall',false);
     261                 dakotadat                       = modelfield('default','','marshall',false);
     262                 qmu_analysis                    = modelfield('default',0,'marshall',true,'format','Boolean');
     263                 part                            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','sizetype',2);
     264                 npart                           = modelfield('default',0,'marshall',true,'format','Integer');
     265                 numberofvariables               = modelfield('default',0,'marshall',true,'format','Integer');
     266                 numberofresponses               = modelfield('default',0,'marshall',true,'format','Integer');
     267                 variabledescriptors             = modelfield('default',{},'marshall',true,'format','StringArray');
     268                 responsedescriptors             = modelfield('default',{},'marshall',true,'format','StringArray');
     269                 qmu_mass_flux_profile_directory = modelfield('default',NaN,'marshall',false);
     270                 qmu_mass_flux_profiles          = modelfield('default',NaN,'marshall',false);
     271                 qmu_mass_flux_segments          = modelfield('default',{},'marshall',true,'format','MatArray');
     272                 qmu_relax                       = modelfield('default',0,'marshall',false);
    273273
    274274                 %flaim
    275                  fm_tracks             = {'',false};
    276                  fm_flightreqs         = {struct(),false};
    277                  fm_criterion          = {[],false};
    278                  fm_gridsatequator     = {200000,false};
    279                  fm_usevalueordering   = {true,false};
    280                  fm_split_antimeridian = {true,false};
    281                  fm_solution           = {'',false};
    282                  fm_quality            = {0,false};
     275                 fm_tracks             = modelfield('default','','marshall',false);
     276                 fm_flightreqs         = modelfield('default',struct(),'marshall',false);
     277                 fm_criterion          = modelfield('default',NaN,'marshall',false);
     278                 fm_gridsatequator     = modelfield('default',200000,'marshall',false);
     279                 fm_usevalueordering   = modelfield('default',true,'marshall',false);
     280                 fm_split_antimeridian = modelfield('default',true,'marshall',false);
     281                 fm_solution           = modelfield('default','','marshall',false);
     282                 fm_quality            = modelfield('default',0,'marshall',false);
    283283
    284284                 %grounding line migration:
    285                  groundingline_migration = {0,true,'Integer'};
     285                 groundingline_migration = modelfield('default',0,'marshall',true,'format','Integer');
    286286
    287287                 %partitioner:
    288                  adjacency = {[],false};
    289                  vwgt      = {[],false};
     288                 adjacency = modelfield('default',NaN,'marshall',false);
     289                 vwgt      = modelfield('default',NaN,'marshall',false);
    290290                 %}}}
    291291         end
     
    511511                         for i=1:length(fieldnames),
    512512                                 fieldname=fieldnames{i};
    513                                  md.(fieldname)=md.(fieldname){1};
     513                                 md.(fieldname)=md.(fieldname).default;
    514514                         end
    515515
Note: See TracChangeset for help on using the changeset viewer.