Changeset 8987
- Timestamp:
- 07/14/11 10:38:01 (14 years ago)
- Location:
- issm/trunk/src/m
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/classes/model.m
r8984 r8987 7 7 properties (SetAccess=public) %Model fields 8 8 % {{{1 9 %Careful here: no other class should be used as default value 10 %this is a bug of matlab 11 9 %Careful here: no other class should be used as default value this is a bug of matlab 12 10 %in what follows, any field is defined according to the following convention: 13 11 %field={defaultvalue,marshall?,data type,matrix type} 14 12 15 13 %Model general information 16 notes ={'',false};17 name ={'',true,'String'};18 runtimename ={'',false}; %name used when running a parallel job19 counter ={0,false}; %1 mesh, 2 geography, 3 parameterize20 domainoutline ={NaN,false};21 riftoutline ={NaN,false};22 iceshelfoutline ={NaN,false};23 icesheetoutline ={NaN,false};24 wateroutline ={NaN,false};25 parameterfile ={NaN,false};26 runmefile ={NaN,false};14 notes = {'',false}; 15 name = {'',true,'String'}; 16 runtimename = {'',false}; %name used when running a parallel job 17 counter = {0,false}; %1 mesh, 2 geography, 3 parameterize 18 domainoutline = {NaN,false}; 19 riftoutline = {NaN,false}; 20 iceshelfoutline = {NaN,false}; 21 icesheetoutline = {NaN,false}; 22 wateroutline = {NaN,false}; 23 parameterfile = {NaN,false}; 24 runmefile = {NaN,false}; 27 25 28 26 %Mesh 29 bamg ={struct(),false};30 dim ={0,true,'Integer'};31 numberofelements ={0,true,'Integer'};32 numberofnodes ={0,true,'Integer'};33 elements ={NaN,true,'DoubleMat',2};34 elements_type ={NaN,true,'DoubleMat',2};35 vertices_type ={NaN,true,'DoubleMat',1};36 x ={NaN,true,'DoubleMat',1};37 y ={NaN,true,'DoubleMat',1};38 z ={NaN,true,'DoubleMat',1};39 bed_slopex ={NaN,false};40 bed_slopey ={NaN,false};41 surface_slopex ={NaN,false};42 surface_slopey ={NaN,false};43 nodeconnectivity ={NaN,false};44 elementconnectivity ={NaN,true,'DoubleMat',3};45 edges ={NaN,true,'DoubleMat',3};27 bamg = {struct(),false}; 28 dim = {0,true,'Integer'}; 29 numberofelements = {0,true,'Integer'}; 30 numberofnodes = {0,true,'Integer'}; 31 elements = {NaN,true,'DoubleMat',2}; 32 elements_type = {NaN,true,'DoubleMat',2}; 33 vertices_type = {NaN,true,'DoubleMat',1}; 34 x = {NaN,true,'DoubleMat',1}; 35 y = {NaN,true,'DoubleMat',1}; 36 z = {NaN,true,'DoubleMat',1}; 37 bed_slopex = {NaN,false}; 38 bed_slopey = {NaN,false}; 39 surface_slopex = {NaN,false}; 40 surface_slopey = {NaN,false}; 41 nodeconnectivity = {NaN,false}; 42 elementconnectivity = {NaN,true,'DoubleMat',3}; 43 edges = {NaN,true,'DoubleMat',3}; 46 44 47 45 %I/O 48 io_gather ={NaN,true,'Integer'};46 io_gather = {NaN,true,'Integer'}; 49 47 50 48 %Initial 2d mesh 51 numberofelements2d ={0,true,'Integer'};52 numberofnodes2d ={0,true,'Integer'};53 elements2d ={NaN,true,'DoubleMat',3};54 elements_type2d ={NaN,false};55 vertices_type2d ={NaN,false};56 x2d ={NaN,false};57 y2d ={NaN,false};58 z2d ={NaN,false};49 numberofelements2d = {0,true,'Integer'}; 50 numberofnodes2d = {0,true,'Integer'}; 51 elements2d = {NaN,true,'DoubleMat',3}; 52 elements_type2d = {NaN,false}; 53 vertices_type2d = {NaN,false}; 54 x2d = {NaN,false}; 55 y2d = {NaN,false}; 56 z2d = {NaN,false}; 59 57 60 58 %latlon of the coorinates 61 lat ={NaN,false};62 long ={NaN,false};63 hemisphere ={NaN,false};59 lat = {NaN,false}; 60 long = {NaN,false}; 61 hemisphere = {NaN,false}; 64 62 65 63 %Elements type 66 ishutter ={0,true,'Integer'};67 ismacayealpattyn ={0,true,'Integer'};68 isstokes ={0,true,'Integer'};64 ishutter = {0,true,'Integer'}; 65 ismacayealpattyn = {0,true,'Integer'}; 66 isstokes = {0,true,'Integer'}; 69 67 70 68 %Elements 71 elementonhutter ={NaN,false};72 elementonmacayeal ={NaN,false};73 elementonpattyn ={NaN,false};74 elementonstokes ={NaN,false};69 elementonhutter = {NaN,false}; 70 elementonmacayeal = {NaN,false}; 71 elementonpattyn = {NaN,false}; 72 elementonstokes = {NaN,false}; 75 73 76 74 %Nodes 77 nodeonhutter ={NaN,true,'DoubleMat',1};78 nodeonmacayeal ={NaN,true,'DoubleMat',1};79 nodeonpattyn ={NaN,true,'DoubleMat',1};80 nodeonstokes ={NaN,true,'DoubleMat',1};81 borderstokes ={NaN,true,'DoubleMat',3};75 nodeonhutter = {NaN,true,'DoubleMat',1}; 76 nodeonmacayeal = {NaN,true,'DoubleMat',1}; 77 nodeonpattyn = {NaN,true,'DoubleMat',1}; 78 nodeonstokes = {NaN,true,'DoubleMat',1}; 79 borderstokes = {NaN,true,'DoubleMat',3}; 82 80 83 81 %Stokes 84 stokesreconditioning ={0,true,'Double'};85 shelf_dampening ={0,true,'Integer'};82 stokesreconditioning = {0,true,'Double'}; 83 shelf_dampening = {0,true,'Integer'}; 86 84 87 85 %Penalties 88 penalties ={NaN,true,'DoubleMat',3};89 penalty_offset ={0,true,'Double'};90 penalty_melting ={0,true,'Double'};91 penalty_lock ={0,true,'Integer'};92 segments ={NaN,false};93 segmentmarkers ={NaN,false};94 rifts ={NaN,false};95 riftinfo ={NaN,true,'DoubleMat',3};96 riftproperties ={NaN,false};97 numrifts ={0,false};86 penalties = {NaN,true,'DoubleMat',3}; 87 penalty_offset = {0,true,'Double'}; 88 penalty_melting = {0,true,'Double'}; 89 penalty_lock = {0,true,'Integer'}; 90 segments = {NaN,false}; 91 segmentmarkers = {NaN,false}; 92 rifts = {NaN,false}; 93 riftinfo = {NaN,true,'DoubleMat',3}; 94 riftproperties = {NaN,false}; 95 numrifts = {0,false}; 98 96 99 97 %Projections 100 uppernodes ={NaN,false};101 upperelements ={NaN,true,'DoubleMat',2};102 lowerelements ={NaN,true,'DoubleMat',2};103 lowernodes ={NaN,false};98 uppernodes = {NaN,false}; 99 upperelements = {NaN,true,'DoubleMat',2}; 100 lowerelements = {NaN,true,'DoubleMat',2}; 101 lowernodes = {NaN,false}; 104 102 105 103 %Extrusion 106 numlayers ={0,true,'Integer'};107 extrusionexponent ={0,false};108 elementonbed ={NaN,true,'BooleanMat',2};109 elementonsurface ={NaN,true,'BooleanMat',2};110 nodeonbed ={NaN,true,'BooleanMat',1};111 nodeonsurface ={NaN,true,'BooleanMat',1};112 minh ={0,false};113 firn_layer ={NaN,false};104 numlayers = {0,true,'Integer'}; 105 extrusionexponent = {0,false}; 106 elementonbed = {NaN,true,'BooleanMat',2}; 107 elementonsurface = {NaN,true,'BooleanMat',2}; 108 nodeonbed = {NaN,true,'BooleanMat',1}; 109 nodeonsurface = {NaN,true,'BooleanMat',1}; 110 minh = {0,false}; 111 firn_layer = {NaN,false}; 114 112 115 113 %Extraction 116 extractednodes ={NaN,false};117 extractedelements ={NaN,false};114 extractednodes = {NaN,false}; 115 extractedelements = {NaN,false}; 118 116 119 117 %Materials parameters 120 rho_ice={0,true,'Double'}; 121 rho_water={0,true,'Double'}; 122 rho_firn={0,false}; 123 heatcapacity={0,true,'Double'}; 124 latentheat={0,true,'Double'}; 125 thermalconductivity={0,true,'Double'}; 126 meltingpoint={0,true,'Double'}; 127 referencetemperature={0,true,'Double'}; %for enthalpy 128 beta={0,true,'Double'}; 118 rho_ice = {0,true,'Double'}; 119 rho_water = {0,true,'Double'}; 120 rho_firn = {0,false}; 121 heatcapacity = {0,true,'Double'}; 122 latentheat = {0,true,'Double'}; 123 thermalconductivity = {0,true,'Double'}; 124 meltingpoint = {0,true,'Double'}; 125 referencetemperature = {0,true,'Double'}; %for enthalpy 126 beta = {0,true,'Double'}; 127 mixed_layer_capacity = {0,true,'Double'}; 128 thermal_exchange_velocity = {0,true,'Double'}; 129 min_thermal_constraints = {0,true,'Integer'}; 130 min_mechanical_constraints = {0,true,'Integer'}; 131 stabilize_constraints = {0,true,'Integer'}; 132 133 %Physical parameters 134 g = {0,true,'Double'}; 135 yts = {0,true,'Double'}; 136 drag_type = {0,true,'Integer'}; 137 drag_coefficient = {NaN,true,'DoubleMat',1}; 138 drag_p = {NaN,true,'DoubleMat',2}; 139 drag_q = {NaN,true,'DoubleMat',2}; 140 rheology_B = {NaN,true,'DoubleMat',1}; 141 rheology_n = {NaN,true,'DoubleMat',2}; 142 rheology_law = {0,true,'Integer'}; 143 144 %Geometrical parameters 145 elementoniceshelf = {NaN,true,'BooleanMat',2}; 146 elementonicesheet = {NaN,true,'BooleanMat',2}; 147 elementonwater = {NaN,true,'BooleanMat',2}; 148 nodeoniceshelf = {NaN,true,'DoubleMat',1}; 149 nodeonicesheet = {NaN,true,'DoubleMat',1}; 150 nodeonwater = {NaN,true,'DoubleMat',1}; 151 surface = {NaN,true,'DoubleMat',1}; 152 thickness = {NaN,true,'DoubleMat',1}; 153 thickness_coeff = {NaN,true,'DoubleMat',1}; 154 bed = {NaN,true,'DoubleMat',1}; 155 bathymetry = {NaN,true,'DoubleMat',1}; 156 mask = {NaN,false}; 157 158 %Boundary conditions 159 nodeonboundary = {NaN,false}; 160 pressureload = {NaN,true,'DoubleMat',3}; 161 spcvx = {NaN,true,'DoubleMat',1}; 162 spcvy = {NaN,true,'DoubleMat',1}; 163 spcvz = {NaN,true,'DoubleMat',1}; 164 spctemperature = {NaN,true,'DoubleMat',1}; 165 spcthickness = {NaN,true,'DoubleMat',1}; 166 spcwatercolumn = {NaN,true,'DoubleMat',1}; 167 diagnostic_ref = {NaN,true,'DoubleMat',1}; 168 169 %Observations 170 vx_obs = {NaN,true,'DoubleMat',1}; 171 vy_obs = {NaN,true,'DoubleMat',1}; 172 vel_obs = {NaN,false}; 173 vx_obs_raw = {NaN,false}; 174 vy_obs_raw = {NaN,false}; 175 vx_bal = {NaN,false}; 176 vy_bal = {NaN,false}; 177 vel_bal = {NaN,false}; 178 vel_obs_raw = {NaN,false}; 179 surface_accumulation_rate = {NaN,true,'DoubleMat',1}; 180 surface_ablation_rate = {NaN,true,'DoubleMat',1}; 181 surface_mass_balance = {NaN,true,'DoubleMat',1}; 182 dhdt = {NaN,true,'DoubleMat',1}; 183 geothermalflux = {NaN,true,'DoubleMat',1}; 184 observed_temperature = {NaN,false}; 185 thickness_obs = {NaN,true,'DoubleMat',1}; 186 187 %Forcings 188 forcings = {struct(),false}; 189 190 %Statics parameters 191 eps_res = {0,true,'Double'}; 192 eps_rel = {0,true,'Double'}; 193 eps_abs = {0,true,'Double'}; 194 max_nonlinear_iterations = {0,true,'Double'}; 195 sparsity = {0,true,'Double'}; 196 connectivity = {0,true,'Integer'}; 197 lowmem = {0,true,'Integer'}; 198 viscosity_overshoot = {0,true,'Double'}; 199 200 %Transient 201 dt = {0,true,'Double'}; 202 ndt = {0,true,'Double'}; 203 time_adapt = {0,true,'Integer'}; 204 cfl_coefficient = {0,true,'Double'}; 205 adaptative_cfl = {0,false}; 206 artificial_diffusivity = {0,true,'Integer'}; 207 prognostic_DG = {0,true,'Integer'}; 208 deltaH = {0,false}; 209 DeltaH = {0,false}; 210 deltaT = {0,false}; 211 DeltaT = {0,false}; 212 timeacc = {0,false}; 213 timedec = {0,false}; 214 hydrostatic_adjustment = {0,true,'Integer'}; 215 isprognostic = {0,true,'Integer'}; 216 isdiagnostic = {0,true,'Integer'}; 217 isthermal = {0,true,'Integer'}; 218 %Control 219 control_analysis = {0,true,'Integer'}; 220 control_type = {0,true,'DoubleMat',3}; 221 weights = {[],true,'DoubleMat',1}; 222 nsteps = {0,true,'Integer'}; 223 maxiter = {[],true,'DoubleMat',3}; 224 cm_responses = {[],true,'DoubleMat',3}; 225 tolx = {0,true,'Double'}; 226 optscal = {[],true,'DoubleMat',3}; 227 eps_cm = {0,true,'Double'}; 228 cm_min = {NaN,true,'DoubleMat',3}; 229 cm_max = {NaN,true,'DoubleMat',3}; 230 cm_jump = {[],true,'DoubleMat',3}; 231 cm_gradient = {0,true,'Integer'}; 232 epsvel = {0,true,'Double'}; 233 meanvel = {0,true,'Double'}; 234 num_control_type = {0,true,'Integer'}; 235 num_cm_responses = {0,true,'Integer'}; 236 %Output 237 parameteroutput = {{},true,'StringArray'}; 238 viscousheating = {NaN,false}; 239 pressure_elem = {NaN,false}; 240 stress = {NaN,false}; 241 stress_surface = {NaN,false}; 242 stress_bed = {NaN,false}; 243 deviatoricstress = {NaN,false}; 244 strainrate = {NaN,false}; 245 %Debugging 246 verbose = {0,false}; 247 verbose_binary = {0,true,'Integer'}; 248 element_debug = {0,false}; 249 element_debugid = {NaN,false}; 250 mem_debug = {0,false}; 251 gprof = {0,false}; 252 memoryleaks = {NaN,false}; 253 %Results fields 254 output_frequency = {0,true,'Integer'}; 255 inputfilename = {'',true,'String'}; 256 outputfilename = {'',true,'String'}; 257 results = {struct(),false}; 258 vx = {NaN,true,'DoubleMat',1}; 259 vy = {NaN,true,'DoubleMat',1}; 260 vz = {NaN,true,'DoubleMat',1}; 261 vel = {NaN,false}; 262 temperature = {NaN,true,'DoubleMat',1}; %temperature solution vector 263 waterfraction = {NaN,true,'DoubleMat',1}; 264 gl_melting_rate = {NaN,true,'Double'}; 265 basal_melting_rate = {NaN,true,'DoubleMat',1}; 266 basal_melting_rate_correction = {NaN,true,'DoubleMat',1}; 267 basal_melting_rate_correction_apply = {0,true,'Integer'}; 268 pressure = {NaN,true,'DoubleMat',1}; 269 %Hydrology 270 watercolumn = {NaN,true,'Double'}; 271 hydro_n = {0,true,'Double'}; 272 hydro_CR = {0,true,'Double'}; 273 hydro_p = {0,true,'Double'}; 274 hydro_q = {0,true,'Double'}; 275 hydro_kn = {0,true,'Double'}; 129 276 130 mixed_layer_capacity={0,true,'Double'}; 131 thermal_exchange_velocity={0,true,'Double'}; 132 min_thermal_constraints={0,true,'Integer'}; 133 min_mechanical_constraints={0,true,'Integer'}; 134 stabilize_constraints={0,true,'Integer'}; 135 136 %Physical parameters 137 g={0,true,'Double'}; 138 yts={0,true,'Double'}; 139 drag_type={0,true,'Integer'}; 140 drag_coefficient={NaN,true,'DoubleMat',1}; 141 drag_p={NaN,true,'DoubleMat',2}; 142 drag_q={NaN,true,'DoubleMat',2}; 143 rheology_B={NaN,true,'DoubleMat',1}; 144 rheology_n={NaN,true,'DoubleMat',2}; 145 rheology_law={0,true,'Integer'}; 146 147 %Geometrical parameters 148 elementoniceshelf={NaN,true,'BooleanMat',2}; 149 elementonicesheet={NaN,true,'BooleanMat',2}; 150 elementonwater={NaN,true,'BooleanMat',2}; 151 elementonnuna={NaN,false,'BooleanMat',2}; 152 nodeoniceshelf={NaN,true,'DoubleMat',1}; 153 nodeonicesheet={NaN,true,'DoubleMat',1}; 154 nodeonwater={NaN,true,'DoubleMat',1}; 155 nodeonnuna={NaN,false}; 156 surface={NaN,true,'DoubleMat',1}; 157 thickness={NaN,true,'DoubleMat',1}; 158 thickness_coeff={NaN,true,'DoubleMat',1}; 159 bed={NaN,true,'DoubleMat',1}; 160 bathymetry={NaN,true,'DoubleMat',1}; 161 mask={NaN,false}; 162 163 %Boundary conditions 164 nodeonboundary={NaN,false}; 165 pressureload={NaN,true,'DoubleMat',3}; 166 spcvx={NaN,true,'DoubleMat',1}; 167 spcvy={NaN,true,'DoubleMat',1}; 168 spcvz={NaN,true,'DoubleMat',1}; 169 spctemperature={NaN,true,'DoubleMat',1}; 170 spcthickness={NaN,true,'DoubleMat',1}; 171 spcwatercolumn={NaN,true,'DoubleMat',1}; 172 diagnostic_ref={NaN,true,'DoubleMat',1}; 173 174 %Observations 175 vx_obs={NaN,true,'DoubleMat',1}; 176 vy_obs={NaN,true,'DoubleMat',1}; 177 vel_obs={NaN,false}; 178 vx_obs_raw={NaN,false}; 179 vy_obs_raw={NaN,false}; 180 vx_bal={NaN,false}; 181 vy_bal={NaN,false}; 182 vel_bal={NaN,false}; 183 vel_obs_raw={NaN,false}; 184 surface_accumulation_rate={NaN,true,'DoubleMat',1}; 185 surface_ablation_rate={NaN,true,'DoubleMat',1}; 186 surface_mass_balance={NaN,true,'DoubleMat',1}; 187 dhdt={NaN,true,'DoubleMat',1}; 188 geothermalflux={NaN,true,'DoubleMat',1}; 189 observed_temperature={NaN,false}; 190 thickness_obs={NaN,true,'DoubleMat',1}; 191 192 %Forcings 193 forcings={struct(),false}; 194 195 %Statics parameters 196 eps_res={0,true,'Double'}; 197 eps_rel={0,true,'Double'}; 198 eps_abs={0,true,'Double'}; 199 max_nonlinear_iterations={0,true,'Double'}; 200 sparsity={0,true,'Double'}; 201 connectivity={0,true,'Integer'}; 202 lowmem={0,true,'Integer'}; 203 viscosity_overshoot={0,true,'Double'}; 204 205 %Transient parameters 206 dt={0,true,'Double'}; 207 ndt={0,true,'Double'}; 208 time_adapt={0,true,'Integer'}; 209 cfl_coefficient={1/2,true,'Double'}; 210 adaptative_cfl={0,false}; 211 artificial_diffusivity={0,true,'Integer'}; 212 prognostic_DG={0,true,'Integer'}; 213 deltaH={0,false}; 214 DeltaH={0,false}; 215 deltaT={0,false}; 216 DeltaT={0,false}; 217 timeacc={0,false}; 218 timedec={0,false}; 219 hydrostatic_adjustment={0,true,'Integer'}; 220 221 %Transient flags 222 isprognostic={0,true,'Integer'}; 223 isdiagnostic={0,true,'Integer'}; 224 isthermal={0,true,'Integer'}; 225 226 %Control 227 control_analysis={0,true,'Integer'}; 228 control_type={0,true,'DoubleMat',3}; 229 weights={[],true,'DoubleMat',1}; 230 nsteps={0,true,'Integer'}; 231 maxiter={[],true,'DoubleMat',3}; 232 cm_responses={[],true,'DoubleMat',3}; 233 tolx={0,true,'Double'}; 234 optscal={[],true,'DoubleMat',3}; 235 eps_cm={0,true,'Double'}; 236 cm_min={NaN,true,'DoubleMat',3}; 237 cm_max={NaN,true,'DoubleMat',3}; 238 cm_jump={[],true,'DoubleMat',3}; 239 cm_gradient={0,true,'Integer'}; 240 epsvel={0,true,'Double'}; 241 meanvel={0,true,'Double'}; 242 num_control_type={0,true,'Integer'}; 243 num_cm_responses={0,true,'Integer'}; 244 245 %Output parameters 246 parameteroutput={{},true,'StringArray'}; 247 viscousheating={NaN,false}; 248 pressure_elem={NaN,false}; 249 stress={NaN,false}; 250 stress_surface={NaN,false}; 251 stress_bed={NaN,false}; 252 deviatoricstress={NaN,false}; 253 strainrate={NaN,false}; 254 255 %debugging 256 verbose={0,false}; 257 verbose_binary={0,true,'Integer'}; 258 element_debug={0,false}; 259 element_debugid={NaN,false}; 260 mem_debug={0,false}; 261 gprof={0,false}; 262 memoryleaks={NaN,false}; 263 264 %Results fields 265 output_frequency={0,true,'Integer'}; 266 inputfilename={'',true,'String'}; 267 outputfilename={'',true,'String'}; 268 results={struct(),false}; 269 vx={NaN,true,'DoubleMat',1}; 270 vy={NaN,true,'DoubleMat',1}; 271 vz={NaN,true,'DoubleMat',1}; 272 vel={NaN,false}; 273 temperature={NaN,true,'DoubleMat',1}; %temperature solution vector 274 waterfraction={NaN,true,'DoubleMat',1}; 275 gl_melting_rate={NaN,true,'Double'}; 276 basal_melting_rate={NaN,true,'DoubleMat',1}; 277 basal_melting_rate_correction={NaN,true,'DoubleMat',1}; 278 basal_melting_rate_correction_apply={0,true,'Integer'}; 279 pressure={NaN,true,'DoubleMat',1}; 280 281 %hydrology 282 watercolumn={NaN,true,'Double'}; 283 hydro_n={0,true,'Double'}; 284 hydro_CR={0,true,'Double'}; 285 hydro_p={0,true,'Double'}; 286 hydro_q={0,true,'Double'}; 287 hydro_kn={0,true,'Double'}; 288 289 %Parallelisation parameters 290 cluster={NaN,false}; 291 outlog={'',false}; 292 errlog={'',false}; 293 alloc_cleanup={1,false}; 294 waitonlock={0,true,'Double'}; 295 296 %mesh2grid 297 mesh2grid_parameters={{},false}; 298 mesh2grid_data={NaN,false}; 299 mesh2grid_xm={NaN,false}; 300 mesh2grid_ym={NaN,false}; 277 %Parallelisation 278 cluster = {NaN,false}; 279 outlog = {'',false}; 280 errlog = {'',false}; 281 alloc_cleanup = {1,false}; 282 waitonlock = {0,true,'Double'}; 301 283 302 284 %dummy 303 dummy ={NaN,false};285 dummy = {NaN,false}; 304 286 305 287 %mesh 306 mesh_domainoutline ={'',false};307 mesh_riftoutline ={'',false};308 mesh_resolution ={NaN,false};288 mesh_domainoutline = {'',false}; 289 mesh_riftoutline = {'',false}; 290 mesh_resolution = {NaN,false}; 309 291 310 292 %PETSc and MATLAB solver string 311 petscoptions ={NaN,false};293 petscoptions = {NaN,false}; 312 294 313 295 %Analysis 314 solution_type ={'',false};296 solution_type = {'',false}; 315 297 316 298 %management of large models 317 repository ={'',false};299 repository = {'',false}; 318 300 319 301 %radar power images 320 sarpwr ={NaN,false};321 sarxm ={NaN,false};322 sarym ={NaN,false};302 sarpwr = {NaN,false}; 303 sarxm = {NaN,false}; 304 sarym = {NaN,false}; 323 305 324 306 %qmu 325 variables ={struct(),false};326 responses ={struct(),false};327 qmu_method ={struct(),false};328 qmu_params ={struct(),false};329 dakotaresults ={struct(),false};330 dakotain ={'',false};331 dakotaout ={'',false};332 dakotadat ={'',false};333 qmu_analysis ={0,true,'Integer'};334 part ={[],true,'DoubleMat',2};335 npart ={0,true,'Integer'};336 numberofvariables ={0,true,'Integer'};337 numberofresponses ={0,true,'Integer'};338 variabledescriptors ={{},true,'StringArray'};339 responsedescriptors ={{},true,'StringArray'};340 qmu_mass_flux_profile_directory ={NaN,false};341 qmu_mass_flux_profiles ={NaN,false};342 qmu_mass_flux_segments ={{},true,'MatArray'};343 qmu_relax ={0,false};344 qmu_save_femmodel ={0,true,'Integer'};307 variables = {struct(),false}; 308 responses = {struct(),false}; 309 qmu_method = {struct(),false}; 310 qmu_params = {struct(),false}; 311 dakotaresults = {struct(),false}; 312 dakotain = {'',false}; 313 dakotaout = {'',false}; 314 dakotadat = {'',false}; 315 qmu_analysis = {0,true,'Integer'}; 316 part = {[],true,'DoubleMat',2}; 317 npart = {0,true,'Integer'}; 318 numberofvariables = {0,true,'Integer'}; 319 numberofresponses = {0,true,'Integer'}; 320 variabledescriptors = {{},true,'StringArray'}; 321 responsedescriptors = {{},true,'StringArray'}; 322 qmu_mass_flux_profile_directory = {NaN,false}; 323 qmu_mass_flux_profiles = {NaN,false}; 324 qmu_mass_flux_segments = {{},true,'MatArray'}; 325 qmu_relax = {0,false}; 326 qmu_save_femmodel = {0,true,'Integer'}; 345 327 346 328 %flaim 347 fm_tracks ={'',false};348 fm_flightreqs ={struct(),false};349 fm_criterion ={[],false};350 fm_solution ={'',false};351 fm_quality ={0,false};329 fm_tracks = {'',false}; 330 fm_flightreqs = {struct(),false}; 331 fm_criterion = {[],false}; 332 fm_solution = {'',false}; 333 fm_quality = {0,false}; 352 334 353 335 %grounding line migration: 354 gl_migration ={NaN,true,'Integer'};336 gl_migration = {0,true,'Integer'}; 355 337 356 338 %solution parameters 357 loadresults ={0,false};339 loadresults = {0,false}; 358 340 359 341 %partitioner: 360 adjacency ={[],false};361 vwgt ={[],false};342 adjacency = {[],false}; 343 vwgt = {[],false}; 362 344 %}}} 363 end364 properties(Dependent,Hidden) %Deprecated property365 % {{{366 % We must keep here ALL deprecated properties367 % This ensures that when a model object from a previous version368 % all fields are recovered.369 % loadobj is then used to assign old properties to new properties370 % But if we don't keep the old properties here, they would not be371 % recovered when the model is loaded372 % KEEP IN CHRONOLOGICAL ORDER (OLDER FIRST)373 drag;374 p;375 q;376 B;377 n;378 melting;379 accumulation;380 type;381 numberofgrids;382 numberofgrids2d;383 gridonhutter;384 gridonmacayeal;385 gridonpattyn;386 gridonstokes;387 uppergrids;388 lowergrids;389 gridonbed;390 gridonsurface;391 extractedgrids;392 gridoniceshelf;393 gridonicesheet;394 gridonwater;395 gridonnuna;396 gridonboundary;397 melting_rate;398 accumulation_rate;399 hydro_gamma;400 cm_noisedmp;401 planet;402 spcvelocity;403 % }}}404 345 end 405 346 methods (Static) … … 432 373 end 433 374 methods 434 function md =model(varargin) % {{{1375 function md = model(varargin) % {{{1 435 376 436 377 switch nargin … … 464 405 end 465 406 %}}} 466 function md =activaterepository(md) % {{{1407 function md = activaterepository(md) % {{{1 467 408 %ACTIVATEREPOSITORY - save the model fields separately 468 409 % … … 638 579 end 639 580 end% }}} 640 function mdstruct=struct(md) % {{{1 641 %Cast operator needed because of Dependent Hidden properties 642 mdstruct=struct(); 643 modelprops=properties('model'); 644 645 for i=1:length(modelprops), 646 mdstruct.(modelprops{i})=md.(modelprops{i}); 647 end 648 end 649 %}}} 650 function md=setdefaultparameters(md) % {{{1 581 function md = setdefaultparameters(md) % {{{1 651 582 %SETDEFAULTPARAMETERS - plug default parameters onto model 652 583 % … … 792 723 %time adaptation? 793 724 md.time_adapt=0; 794 md.cfl_coefficient= 1/2;725 md.cfl_coefficient=.5; 795 726 796 727 %Hydrostatic adjustment … … 917 848 end 918 849 %}}} 919 function md =subsasgn(md,index,val) % {{{1850 function md = subsasgn(md,index,val) % {{{1 920 851 921 852 if ~isempty(md.repository), … … 940 871 end 941 872 end %}}} 942 function result =subsref(md,index) % {{{1873 function result = subsref(md,index) % {{{1 943 874 944 875 if length(index)==1, … … 958 889 if(strcmp(index1.subs,'transient')), displaytransient(md);return; end 959 890 if(strcmp(index1.subs,'control')), displaycontrol(md);return; end 960 if(strcmp(index1.subs,'mesh2grid')), displaymesh2grid(md);return; end961 891 if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end 962 892 -
issm/trunk/src/m/model/WriteData.m
r8967 r8987 1 1 function WriteData(md,fid,template,field) 2 %WRITEDATA 2 %WRITEDATA - write model field in binary file 3 3 % 4 4 % Usage: 5 5 % WriteData(md,fid,template,field) 6 6 % 7 % E g: WriteData(md,fid,template,'thickness')8 7 % Example: 8 % WriteData(md,fid,template,'thickness') 9 9 10 10 %first recover data, enum of the data and type of data … … 21 21 22 22 %Now, write the data itself. 23 24 if strcmpi(data_type,'Boolean'),%{{{ 23 if strcmpi(data_type,'Boolean'),% {{{ 25 24 %first write length of record 26 25 fwrite(fid,1+4,'int'); %1 bool+code … … 31 30 %now write integer 32 31 fwrite(fid,data,'uint'); 33 % }}}34 elseif strcmpi(data_type,'Integer'), % {{{32 % }}} 33 elseif strcmpi(data_type,'Integer'), % {{{ 35 34 %first write length of record 36 35 fwrite(fid,4+4,'int'); %1 integer + code … … 41 40 %now write integer 42 41 fwrite(fid,data,'int'); 43 % }}}44 elseif strcmpi(data_type,'Double'), % {{{42 % }}} 43 elseif strcmpi(data_type,'Double'), % {{{ 45 44 %first write length of record 46 45 fwrite(fid,8+4,'int'); %1 double+code … … 51 50 %now write double 52 51 fwrite(fid,data,'double'); 53 % }}}54 elseif strcmpi(data_type,'String'), % {{{52 % }}} 53 elseif strcmpi(data_type,'String'), % {{{ 55 54 %first write length of record 56 55 fwrite(fid,length(data)+4+4,'int'); %string + string size + code … … 62 61 fwrite(fid,length(data),'int'); 63 62 fwrite(fid,data,'char'); 64 % }}}65 elseif strcmpi(data_type,'BooleanMat'), % {{{63 % }}} 64 elseif strcmpi(data_type,'BooleanMat'), % {{{ 66 65 67 66 %matrix type: … … 88 87 fwrite(fid,data','double'); %get to the "c" convention, hence the transpose 89 88 end 90 % }}}91 elseif strcmpi(data_type,'IntMat'), % {{{89 % }}} 90 elseif strcmpi(data_type,'IntMat'), % {{{ 92 91 93 92 %matrix type: … … 114 113 fwrite(fid,data','double'); %get to the "c" convention, hence the transpose 115 114 end 116 % }}}117 elseif strcmpi(data_type,'DoubleMat'), % {{{115 % }}} 116 elseif strcmpi(data_type,'DoubleMat'), % {{{ 118 117 119 118 %matrix type: … … 140 139 fwrite(fid,data','double'); %get to the "c" convention, hence the transpose 141 140 end 142 % }}}143 elseif strcmpi(data_type,'MatArray'), % {{{1141 % }}} 142 elseif strcmpi(data_type,'MatArray'), % {{{1 144 143 145 144 numrecords=numel(data); … … 171 170 fwrite(fid,matrix','double'); 172 171 end 173 % }}}174 elseif strcmpi(data_type,'StringArray'), % {{{1172 % }}} 173 elseif strcmpi(data_type,'StringArray'), % {{{1 175 174 176 175 %first get length of string array: … … 198 197 fwrite(fid,string,'char'); 199 198 end 200 % }}}199 % }}} 201 200 else 202 201 error('WriteData error message: data type not supported yet!'); 203 202 end 204 203 205 function code=TypeToCode(data_type) % {{{1204 function code=TypeToCode(data_type) % {{{1 206 205 %This routine takes the data_type string, and hardcodes it into an integer, which 207 206 %is passed along the record, in order to identify the nature of the dataset being … … 227 226 else 228 227 error('TypeToCode error message: data type not supported yet!'); 229 end% }}}228 end% }}} -
issm/trunk/src/m/qmu/process_qmu_options.m
r7629 r8987 43 43 strcmpi(analysis_type,'thermal') | ... 44 44 strcmpi(analysis_type,'parameters') | ... 45 strcmpi(analysis_type,'mesh') | ...46 strcmpi(analysis_type,'mesh2grid') | ...47 45 strcmpi(analysis_type,'transient') ), 48 46 error(['process_qmu_options error message: analysis_type ' analysis_type ' not supported yet!']);
Note:
See TracChangeset
for help on using the changeset viewer.