Changeset 9646


Ignore:
Timestamp:
09/07/11 09:36:52 (14 years ago)
Author:
seroussi
Message:

added class balancethickness

Location:
issm/trunk/src
Files:
6 added
4 deleted
22 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r9642 r9646  
    3232        HydrologyQEnum,
    3333        HydrologyCREnum,
     34        HydrologyStabilizationEnum,
    3435        SettingsLowmemEnum,
    3536        SettingsIoGatherEnum,
     
    7172        MaskVertexonfloatingiceEnum,
    7273        MaskVertexonwaterEnum,
     74        BalancethicknessSpcthicknessEnum,
     75        BalancethicknessThickeningRateEnum,
     76        BalancethicknessStabilizationEnum,
     77        BalancethicknessRequestedOutputsEnum,
    7378        /*}}}*/
    7479        /*Datasets {{{1*/
     
    427432        YEnum,
    428433        ElementsTypeEnum,
    429         PrognosticDGEnum,
    430434        PenaltiesEnum,
    431435        PressureloadEnum,
     
    438442        NodeonmacayealEnum,
    439443        ZEnum,
    440         SpcthicknessEnum,
    441444        PenaltyLockEnum,
    442445        SpcvxEnum,
     
    447450        NumCmResponsesEnum,
    448451        ElementconnectivityEnum,
    449         ArtificialDiffusivityEnum,
    450452        NumlayersEnum,
    451453        DiagnosticRefEnum,
     
    455457        StokesreconditioningEnum,
    456458        LowerelementsEnum,
    457         DhdtEnum,
    458459        IsprognosticEnum,
    459460        IsdiagnosticEnum,
  • issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp

    r9636 r9646  
    1717                case MaterialsRheologyBEnum : return "rheology_B";
    1818                case MaterialsRheologyBbarEnum : return "rheology_B";
    19                 case DhdtEnum : return "dhdt";
     19                case BalancethicknessThickeningRateEnum: return "dhdt";
    2020                case VxEnum : return "vx";
    2121                case VxObsEnum : return "vx_obs";
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r9642 r9646  
    3636                case HydrologyQEnum : return "HydrologyQ";
    3737                case HydrologyCREnum : return "HydrologyCR";
     38                case HydrologyStabilizationEnum : return "HydrologyStabilization";
    3839                case SettingsLowmemEnum : return "SettingsLowmem";
    3940                case SettingsIoGatherEnum : return "SettingsIoGather";
     
    7576                case MaskVertexonfloatingiceEnum : return "MaskVertexonfloatingice";
    7677                case MaskVertexonwaterEnum : return "MaskVertexonwater";
     78                case BalancethicknessSpcthicknessEnum : return "BalancethicknessSpcthickness";
     79                case BalancethicknessThickeningRateEnum : return "BalancethicknessThickeningRate";
     80                case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization";
     81                case BalancethicknessRequestedOutputsEnum : return "BalancethicknessRequestedOutputs";
    7782                case ConstraintsEnum : return "Constraints";
    7883                case ElementsEnum : return "Elements";
     
    371376                case YEnum : return "Y";
    372377                case ElementsTypeEnum : return "ElementsType";
    373                 case PrognosticDGEnum : return "PrognosticDG";
    374378                case PenaltiesEnum : return "Penalties";
    375379                case PressureloadEnum : return "Pressureload";
     
    382386                case NodeonmacayealEnum : return "Nodeonmacayeal";
    383387                case ZEnum : return "Z";
    384                 case SpcthicknessEnum : return "Spcthickness";
    385388                case PenaltyLockEnum : return "PenaltyLock";
    386389                case SpcvxEnum : return "Spcvx";
     
    391394                case NumCmResponsesEnum : return "NumCmResponses";
    392395                case ElementconnectivityEnum : return "Elementconnectivity";
    393                 case ArtificialDiffusivityEnum : return "ArtificialDiffusivity";
    394396                case NumlayersEnum : return "Numlayers";
    395397                case DiagnosticRefEnum : return "DiagnosticRef";
     
    399401                case StokesreconditioningEnum : return "Stokesreconditioning";
    400402                case LowerelementsEnum : return "Lowerelements";
    401                 case DhdtEnum : return "Dhdt";
    402403                case IsprognosticEnum : return "Isprognostic";
    403404                case IsdiagnosticEnum : return "Isdiagnostic";
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateConstraintsBalancethickness.cpp

    r9405 r9646  
    1010void    CreateConstraintsBalancethickness(Constraints** pconstraints, IoModel* iomodel){
    1111
    12         int    prognostic_DG;   
     12        int    stabilization;   
    1313       
    1414        /*Fetch parameters: */
    15         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     15        iomodel->Constant(&stabilization,BalancethicknessStabilizationEnum);
    1616
    1717        /*Output*/
     
    2525
    2626        /*Do not add constraints in DG*/
    27         if(!prognostic_DG){
    28                 IoModelToConstraintsx(constraints,iomodel,SpcthicknessEnum,BalancethicknessAnalysisEnum);
     27        if(!stabilization==3){
     28                IoModelToConstraintsx(constraints,iomodel,BalancethicknessSpcthicknessEnum,BalancethicknessAnalysisEnum);
    2929        }
    3030
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp

    r9405 r9646  
    1616        int i;
    1717        int element;
    18         int prognostic_DG;
     18        int stabilization;
    1919        int numberofedges;
    2020
    2121        /*Fetch parameters: */
    22         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     22        iomodel->Constant(&stabilization,BalancethicknessStabilizationEnum);
    2323        iomodel->Constant(&numberofedges,NumberOfEdgesEnum);
    2424
     
    3333       
    3434        /*Loads only in DG*/
    35         if (prognostic_DG){
     35        if (stabilization==3){
    3636
    3737                /*Get edges and elements*/
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp

    r9641 r9646  
    2424        int    numberofelements;
    2525        int    numberofvertices;
    26         int    prognostic_DG;
     26        int    stabilization;
    2727
    2828        /*DataSets: */
     
    3333        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    3434        iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
    35         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     35        iomodel->Constant(&stabilization,BalancethicknessStabilizationEnum);
    3636
    3737        /*Recover pointer: */
     
    4242
    4343        /*Continuous Galerkin partition of nodes: */
    44         if(prognostic_DG) continuous_galerkin=false;
     44        if(stabilization==3) continuous_galerkin=false;
    4545        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin);
    4646
    4747        /*Check in 3d*/
    48         if(prognostic_DG && dim==3) _error_("DG 3d not implemented yet");
     48        if(stabilization==3 && dim==3) _error_("DG 3d not implemented yet");
    4949
    5050        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp

    r9641 r9646  
    4545        iomodel->FetchDataToInput(elements,SurfaceforcingsAblationRateEnum);
    4646        iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
    47         iomodel->FetchDataToInput(elements,DhdtEnum);
     47        iomodel->FetchDataToInput(elements,BalancethicknessThickeningRateEnum);
    4848
    4949        if (dim==3){
  • issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp

    r9636 r9646  
    4343        for(i=0;i<num_control_type;i++){
    4444                switch((int)iomodel->Data(ControlTypeEnum)[i]){
    45                         case DhdtEnum: iomodel->FetchData(1,DhdtEnum); break;
     45                        case BalancethicknessThickeningRateEnum: iomodel->FetchData(1,BalancethicknessThickeningRateEnum); break;
    4646                        case VxEnum:   iomodel->FetchData(1,VxEnum); break;
    4747                        case VyEnum:   iomodel->FetchData(1,VyEnum); break;
     
    6666       
    6767        /*Free data: */
    68         iomodel->DeleteData(1+4+5,ElementsEnum,ControlTypeEnum,WeightsEnum,CmMinEnum,CmMaxEnum,DhdtEnum,VxEnum,VyEnum,FrictionCoefficientEnum,MaterialsRheologyBEnum);
     68        iomodel->DeleteData(1+4+5,ElementsEnum,ControlTypeEnum,WeightsEnum,CmMinEnum,CmMaxEnum,BalancethicknessThickeningRateEnum,VxEnum,VyEnum,FrictionCoefficientEnum,MaterialsRheologyBEnum);
    6969}
  • issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r9642 r9646  
    4747        parameters->AddObject(iomodel->CopyConstantObject(ConnectivityEnum));
    4848        parameters->AddObject(iomodel->CopyConstantObject(ConstantsReferencetemperatureEnum));
    49         parameters->AddObject(iomodel->CopyConstantObject(ArtificialDiffusivityEnum));
     49        parameters->AddObject(iomodel->CopyConstantObject(BalancethicknessStabilizationEnum));
     50        parameters->AddObject(iomodel->CopyConstantObject(HydrologyStabilizationEnum));
    5051        parameters->AddObject(iomodel->CopyConstantObject(GroundinglineMeltingRateEnum));
    5152        parameters->AddObject(iomodel->CopyConstantObject(ThermalMaxiterEnum));
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r9642 r9646  
    3434        else if (strcmp(name,"HydrologyQ")==0) return HydrologyQEnum;
    3535        else if (strcmp(name,"HydrologyCR")==0) return HydrologyCREnum;
     36        else if (strcmp(name,"HydrologyStabilization")==0) return HydrologyStabilizationEnum;
    3637        else if (strcmp(name,"SettingsLowmem")==0) return SettingsLowmemEnum;
    3738        else if (strcmp(name,"SettingsIoGather")==0) return SettingsIoGatherEnum;
     
    7374        else if (strcmp(name,"MaskVertexonfloatingice")==0) return MaskVertexonfloatingiceEnum;
    7475        else if (strcmp(name,"MaskVertexonwater")==0) return MaskVertexonwaterEnum;
     76        else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum;
     77        else if (strcmp(name,"BalancethicknessThickeningRate")==0) return BalancethicknessThickeningRateEnum;
     78        else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum;
     79        else if (strcmp(name,"BalancethicknessRequestedOutputs")==0) return BalancethicknessRequestedOutputsEnum;
    7580        else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
    7681        else if (strcmp(name,"Elements")==0) return ElementsEnum;
     
    369374        else if (strcmp(name,"Y")==0) return YEnum;
    370375        else if (strcmp(name,"ElementsType")==0) return ElementsTypeEnum;
    371         else if (strcmp(name,"PrognosticDG")==0) return PrognosticDGEnum;
    372376        else if (strcmp(name,"Penalties")==0) return PenaltiesEnum;
    373377        else if (strcmp(name,"Pressureload")==0) return PressureloadEnum;
     
    380384        else if (strcmp(name,"Nodeonmacayeal")==0) return NodeonmacayealEnum;
    381385        else if (strcmp(name,"Z")==0) return ZEnum;
    382         else if (strcmp(name,"Spcthickness")==0) return SpcthicknessEnum;
    383386        else if (strcmp(name,"PenaltyLock")==0) return PenaltyLockEnum;
    384387        else if (strcmp(name,"Spcvx")==0) return SpcvxEnum;
     
    389392        else if (strcmp(name,"NumCmResponses")==0) return NumCmResponsesEnum;
    390393        else if (strcmp(name,"Elementconnectivity")==0) return ElementconnectivityEnum;
    391         else if (strcmp(name,"ArtificialDiffusivity")==0) return ArtificialDiffusivityEnum;
    392394        else if (strcmp(name,"Numlayers")==0) return NumlayersEnum;
    393395        else if (strcmp(name,"DiagnosticRef")==0) return DiagnosticRefEnum;
     
    397399        else if (strcmp(name,"Stokesreconditioning")==0) return StokesreconditioningEnum;
    398400        else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum;
    399         else if (strcmp(name,"Dhdt")==0) return DhdtEnum;
    400401        else if (strcmp(name,"Isprognostic")==0) return IsprognosticEnum;
    401402        else if (strcmp(name,"Isdiagnostic")==0) return IsdiagnosticEnum;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r9642 r9646  
    51725172                for(i=0;i<num_control_type;i++){
    51735173                        switch((int)iomodel->Data(ControlTypeEnum)[i]){
    5174                                 case DhdtEnum:
    5175                                         if (iomodel->Data(DhdtEnum)){
    5176                                                 for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(DhdtEnum)[penta_vertex_ids[j]-1]/yts;
     5174                                case BalancethicknessThickeningRateEnum:
     5175                                        if (iomodel->Data(BalancethicknessThickeningRateEnum)){
     5176                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(BalancethicknessThickeningRateEnum)[penta_vertex_ids[j]-1]/yts;
    51775177                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
    51785178                                                for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
    5179                                                 this->inputs->AddInput(new ControlInput(DhdtEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
     5179                                                this->inputs->AddInput(new ControlInput(BalancethicknessThickeningRateEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    51805180                                        }
    51815181                                        break;
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r9642 r9646  
    870870        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    871871        this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    872         this->parameters->FindParam(&artdiff,ArtificialDiffusivityEnum);
     872        this->parameters->FindParam(&artdiff,HydrologyStabilizationEnum);
    873873        Input* vx_input=inputs->GetInput(HydrologyWaterVxEnum); _assert_(vx_input);
    874874        Input* vy_input=inputs->GetInput(HydrologyWaterVyEnum); _assert_(vy_input);
     
    13161316        Input* surface_mass_balance_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(surface_mass_balance_input);
    13171317        Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum);          _assert_(basal_melting_input);
    1318         Input* dhdt_input=inputs->GetInput(DhdtEnum);                                       _assert_(dhdt_input);
     1318        Input* dhdt_input=inputs->GetInput(BalancethicknessThickeningRateEnum);                                       _assert_(dhdt_input);
    13191319       
    13201320        /* Start  looping on the number of gaussian points: */
     
    13591359        Input* surface_mass_balance_input=inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(surface_mass_balance_input);
    13601360        Input* basal_melting_input=inputs->GetInput(BasalforcingsMeltingRateEnum);          _assert_(basal_melting_input);
    1361         Input* dhdt_input=inputs->GetInput(DhdtEnum);                                       _assert_(dhdt_input);
     1361        Input* dhdt_input=inputs->GetInput(BalancethicknessThickeningRateEnum);                                       _assert_(dhdt_input);
    13621362
    13631363        /* Start  looping on the number of gaussian points: */
     
    26962696                        GradjBMacAyeal(gradient);
    26972697                        break;
    2698                 case DhdtEnum:
     2698                case BalancethicknessThickeningRateEnum:
    26992699                        GradjDhDtBalancedthickness(gradient);
    27002700                        break;
     
    32853285                for(i=0;i<num_control_type;i++){
    32863286                        switch((int)iomodel->Data(ControlTypeEnum)[i]){
    3287                                 case DhdtEnum:
    3288                                         if (iomodel->Data(DhdtEnum)){
    3289                                                 for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(DhdtEnum)[tria_vertex_ids[j]-1]/yts;
     3287                                case BalancethicknessThickeningRateEnum:
     3288                                        if (iomodel->Data(BalancethicknessThickeningRateEnum)){
     3289                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(BalancethicknessThickeningRateEnum)[tria_vertex_ids[j]-1]/yts;
    32903290                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
    32913291                                                for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
    3292                                                 this->inputs->AddInput(new ControlInput(DhdtEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
     3292                                                this->inputs->AddInput(new ControlInput(BalancethicknessThickeningRateEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    32933293                                        }
    32943294                                        break;
  • issm/trunk/src/c/shared/Numerics/UnitConversion.cpp

    r9628 r9646  
    5858                case VelEnum:         scale=yts;break; //m/yr
    5959                case VelObsEnum:      scale=yts;break; //m/yr
    60                 case DhdtEnum:        scale=yts;break; //m/yr
     60                case BalancethicknessThickeningRateEnum:  scale=yts;break; //m/yr
    6161                case BasalforcingsMeltingRateEnum:        scale=yts;break; //m/yr
    6262                case BasalforcingsMeltingRateCorrectionEnum: scale=yts;break; //m/yr
  • issm/trunk/src/m/classes/hydrology.m

    r9617 r9646  
    1212                q              = modelfield('default',0,'marshall',true,'format','Double');
    1313                kn             = modelfield('default',0,'marshall',true,'format','Double');
     14                stabilization          = modelfield('default',0,'marshall',true,'format','Integer');
    1415        end
    1516        methods
     
    4445                        obj.q=1;                 
    4546                        obj.kn=0;
     47
     48                        %Type of stabilization to use 0:nothing 1:artificial_diffusivity
     49                        obj.stabilization=1;
    4650                end % }}}
    4751        end
  • issm/trunk/src/m/classes/model/model.m

    r9642 r9646  
    3030                 materials = modelfield('default',0,'marshall',true);
    3131                 mask = modelfield('default',0,'marshall',true);
     32                 balancethickness = modelfield('default',0,'marshall',true);
    3233
    3334                 %FIXME: all other fields should belong to other classes
     
    122123                 spcvy          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    123124                 spcvz          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    124                  spcthickness   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    125125                 diagnostic_ref = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    126126
     
    130130                 vel_obs                   = modelfield('default',NaN,'marshall',false);
    131131
    132                  dhdt                      = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    133132                 thickness_obs             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    134133
     
    143142
    144143                 %Transient
    145                  artificial_diffusivity = modelfield('default',0,'marshall',true,'format','Integer');
    146144                 isprognostic = modelfield('default',0,'marshall',true,'format','Boolean');
    147145                 isdiagnostic = modelfield('default',0,'marshall',true,'format','Boolean');
     
    411409                         if isfield(structmd,'nodeonicesheet'), md.mask.vertexongroundedice=structmd.nodeonicesheet; end
    412410                         if isfield(structmd,'nodeonwater'), md.mask.vertexonwater=structmd.nodeonwater; end
     411                         if isfield(structmd,'spcthickness'), md.balancethickness.spcthickness=structmd.spcthickness; end
     412                         if isfield(structmd,'artificial_diffusivity'), md.balancethickness.stabilization=structmd.artificial_diffusivity; end
     413                         if isfield(structmd,'dhdt'), md.balancethickness.thickening_rate=structmd.dhdt; end
    413414
    414415                         %Field changes
     
    532533                         md.materials=materials;
    533534                         md.mask=mask;
    534 
    535                          %Physical parameters
     535                         md.balancethickness=balancethickness;
    536536
    537537                         %Solver parameters
     
    592592                         %parameter is often used.
    593593                         md.min_mechanical_constraints=0;
    594 
    595                          %the artificial diffusivity is used in prognostic to avoid
    596                          %numerical wiggles of the solution.
    597                          md.artificial_diffusivity=1;
    598594
    599595                         %Solution activated for transient runs. By default we do a
  • issm/trunk/src/m/classes/prognostic.m

    r9642 r9646  
    5151
    5252                        disp(sprintf('\n      transient:'));
    53                         fielddisplay(obj,'stabilization','0->no, 1->artificial_diffusivity, 3-:discontinuous Galerkin');
     53                        fielddisplay(obj,'stabilization','0->no, 1->artificial_diffusivity, 3->discontinuous Galerkin');
    5454
    5555                        disp(sprintf('\n      boundary conditions:'));
  • issm/trunk/src/m/model/collapse.m

    r9642 r9646  
    3232        md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.numlayers);
    3333end;
    34 if ~isnan(md.dhdt), md.dhdt=project2d(md,md.dhdt,md.numlayers); end;
     34if ~isnan(md.balancethickness.thickening_rate), md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.numlayers); end;
    3535
    3636%results
  • issm/trunk/src/m/model/extrude.m

    r9642 r9646  
    137137md.surfaceforcings.accumulation_rate=project3d(md,'vector',md.surfaceforcings.accumulation_rate,'type','node');
    138138md.surfaceforcings.ablation_rate=project3d(md,'vector',md.surfaceforcings.ablation_rate,'type','node');
    139 md.dhdt=project3d(md,'vector',md.dhdt,'type','node');
     139md.balancethickness.thickening_rate=project3d(md,'vector',md.balancethickness.thickening_rate,'type','node');
    140140
    141141%results
  • issm/trunk/src/m/model/ismodelselfconsistent.m

    r9642 r9646  
    163163%}}}
    164164%FLAGS (0 or 1){{{1
    165 if ~ismember(md.artificial_diffusivity,[0 1 2]),
    166         message('model not consistent: artificial_diffusivity should be a scalar (0 or 1 or 2)');
    167 end
    168165if ~ismember(md.prognostic.stabilization,[0 1 3]),
    169166        message('model not consistent: prognostic.stabilization should be a scalar (0 or 1 or 3)');
     
    171168if ~ismember(md.thermal.stabilization,[0 1 2]),
    172169        message('model not consistent: thermal.stabilization should be a scalar (0 or 1 or 2)');
     170end
     171if ~ismember(md.balancethickness.stabilization,[0 1 3]),
     172        message('model not consistent: balancethickness.stabilization should be a scalar (0 or 1 or 3)');
    173173end
    174174if ~ismember(md.settings.lowmem,[0 1]),
     
    245245        if any(md.thickness<=0),
    246246                pos=find(md.thickness<=0);
    247                 if any(isnan(md.spcthickness(pos))),
     247                if any(isnan(md.balancethickness.spcthickness(pos))),
    248248                        message(['model not consistent: model ' md.miscellaneous.name ' has some nodes with 0 thickness']);
    249249                end
     
    567567                        % {{{2
    568568                        %VELOCITIES MELTING AND ACCUMULATION
    569                         fields={'vx','vy','basalforcings.melting_rate','dhdt'};
     569                        fields={'vx','vy','basalforcings.melting_rate','balancethickness.thickeningrate'};
    570570                        checksize(md,fields,[md.numberofnodes 1]);
    571571                        checknan(md,fields);
  • issm/trunk/src/m/utils/BC/SetIceSheetBC.m

    r9642 r9646  
    5050        disp('      no basalforcings.melting_rate specified: values set as zero');
    5151end
    52 if isnan(md.dhdt),
    53         md.dhdt=zeros(md.numberofnodes,1);
    54         disp('      no dhdt specified: values set as zero');
     52if isnan(md.balancethickness.thickening_rate),
     53        md.balancethickness.thickening_rate=zeros(md.numberofnodes,1);
     54        disp('      no balancethickness.thickening_rate specified: values set as zero');
    5555end
    5656
  • issm/trunk/src/m/utils/BC/SetIceShelfBC.m

    r9642 r9646  
    8282        disp('      no basalforcings.melting_rate specified: values set as zero');
    8383end
    84 if isnan(md.dhdt),
    85         md.dhdt=zeros(md.numberofnodes,1);
    86         disp('      no dhdt specified: values set as zero');
     84if isnan(md.balancethickness.thickening_rate),
     85        md.balancethickness.thickening_rate=zeros(md.numberofnodes,1);
     86        disp('      no balancethickness.thickening_rate specified: values set as zero');
    8787end
    8888
  • issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m

    r9642 r9646  
    9393        disp('      no basalforcings.melting_rate specified: values set as zero');
    9494end
    95 if isnan(md.dhdt),
    96         md.dhdt=zeros(md.numberofnodes,1);
    97         disp('      no dhdt specified: values set as zero');
     95if isnan(md.balancethickness.thickening_rate),
     96        md.balancethickness.thickening_rate=zeros(md.numberofnodes,1);
     97        disp('      no balancethickness.thickening_rate specified: values set as zero');
    9898end
    9999
Note: See TracChangeset for help on using the changeset viewer.