Ignore:
Timestamp:
09/06/11 16:36:00 (14 years ago)
Author:
seroussi
Message:

implemented thermal

File:
1 edited

Legend:

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

    r9630 r9632  
    2323                 settings  = modelfield('default',0,'marshall',true);
    2424                 radaroverlay = modelfield('default',0,'marshall',false);
     25                 thermal   = modelfield('default',0,'marshall',true);
    2526                 miscellaneous = modelfield('default',0,'marshall',true);
    2627                 timestepping = modelfield('default',0,'marshall',true);
     
    111112                 mixed_layer_capacity       = modelfield('default',0,'marshall',true,'format','Double');
    112113                 thermal_exchange_velocity  = modelfield('default',0,'marshall',true,'format','Double');
    113                  min_thermal_constraints    = modelfield('default',0,'marshall',true,'format','Integer');
    114114                 min_mechanical_constraints = modelfield('default',0,'marshall',true,'format','Integer');
    115                  stabilize_constraints      = modelfield('default',0,'marshall',true,'format','Integer');
    116115
    117116                 %Physical parameters
     
    140139                 spcvy          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    141140                 spcvz          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    142                  spctemperature = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    143141                 spcthickness   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    144142                 diagnostic_ref = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
     
    409407                         if isfield(structmd,'hydro_CR'), md.hydrology.CR=structmd.hydro_CR; end
    410408                         if isfield(structmd,'hydro_kn'), md.hydrology.kn=structmd.hydro_kn; end
     409                         if isfield(structmd,'spctemperature'), md.thermal.spctemperature=structmd.spctemperature; end
     410                         if isfield(structmd,'min_thermal_constraints'), md.thermal.penalty_threshold=structmd.min_thermal_constraints; end
     411                         if isfield(structmd,'artificial_diffusivity'), md.thermal.stabilization=structmd.artificial_diffusivity; end
     412                         if isfield(structmd,'max_nonlinear_iterations'), md.thermal.maxiter=structmd.max_nonlinear_iterations; end
     413                         if isfield(structmd,'stabilize_constraints'), md.thermal.penalty_lock=structmd.stabilize_constraints; end
     414                         if isfield(structmd,'penalty_offset'), md.thermal.penalty_factor=structmd.penalty_offset; end
    411415                         if isfield(structmd,'name'), md.miscellaneous.name=structmd.name; end
    412416                         if isfield(structmd,'notes'), md.miscellaneous.notes=structmd.notes; end
     
    530534                         md.settings=settings;
    531535                         md.radaroverlay=radaroverlay;
     536                         md.thermal=thermal;
    532537                         md.miscellaneous=miscellaneous;
    533538                         md.timestepping=timestepping;
     
    621626                         %a few constraints remain unstable. For thermal computation, this
    622627                         %parameter is often used.
    623                          md.min_thermal_constraints=0;
    624628                         md.min_mechanical_constraints=0;
    625629
     
    709713                                 if(strcmp(index1.subs,'diagnostic')), displaydiagnostic(md);return; end
    710714                                 if(strcmp(index1.subs,'prognostic')), displayprognostic(md);return; end
    711                                  if(strcmp(index1.subs,'thermal')), displaythermal(md);return; end
    712715                                 if(strcmp(index1.subs,'transient')), displaytransient(md);return; end
    713716                                 if(strcmp(index1.subs,'control')), displaycontrol(md);return; end
Note: See TracChangeset for help on using the changeset viewer.