Changeset 27031


Ignore:
Timestamp:
05/31/22 06:20:44 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: moving MLHO to MOLHO

Location:
issm/trunk-jpl
Files:
86 edited
2 moved

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp

    r26989 r27031  
    5252                case FSApproximationEnum:
    5353                        return CreateKMatrixFS(element);
    54       case MLHOApproximationEnum:
     54      case MOLHOApproximationEnum:
    5555                // a more accurate option, but integrate in the vertical direction numerically.
    56                 //      return CreateKMatrixMLHOVerticalIntergrated(element);
    57                         return CreateKMatrixMLHO(element);
     56                //      return CreateKMatrixMOLHOVerticalIntergrated(element);
     57                        return CreateKMatrixMOLHO(element);
    5858                case NoneApproximationEnum:
    5959                        return NULL;
     
    220220        return Ke;
    221221}/*}}}*/
    222 ElementMatrix* AdjointHorizAnalysis::CreateKMatrixMLHO(Element* element){/*{{{*/
     222ElementMatrix* AdjointHorizAnalysis::CreateKMatrixMOLHO(Element* element){/*{{{*/
    223223
    224224        /* Check if ice in element */
     
    292292      vyshear_input->GetInputValue(&vyshear,gauss);
    293293
    294                 element->material->ViscosityMLHOAdjoint(&viscosity[0],dim,xyz_list,gauss,vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input);
     294                element->material->ViscosityMOLHOAdjoint(&viscosity[0],dim,xyz_list,gauss,vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input);
    295295
    296296                effmu = 2.0*(1-n)/2.0/n;
     
    353353   return Ke;
    354354}/*}}}*/
    355 ElementMatrix* AdjointHorizAnalysis::CreateKMatrixMLHOVerticalIntergrated(Element* element){/*{{{*/
     355ElementMatrix* AdjointHorizAnalysis::CreateKMatrixMOLHOVerticalIntergrated(Element* element){/*{{{*/
    356356
    357357        /* Check if ice in element */
     
    433433
    434434                   /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy (for a given zeta)*/
    435                         element->StrainRateMLHO(&epsilon[0],xyz_list,gauss,
     435                        element->StrainRateMOLHO(&epsilon[0],xyz_list,gauss,
    436436                  vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input,zeta);
    437437                        epsilon_eff=sqrt(epsilon[0]*epsilon[0] + epsilon[1]*epsilon[1] + epsilon[2]*epsilon[2]
     
    618618                case FSApproximationEnum:
    619619                        return CreatePVectorFS(element);
    620       case MLHOApproximationEnum:
    621                         return CreatePVectorMLHO(element);
     620      case MOLHOApproximationEnum:
     621                        return CreatePVectorMOLHO(element);
    622622                case NoneApproximationEnum:
    623623                        return NULL;
     
    11051105
    11061106}/*}}}*/
    1107 ElementVector* AdjointHorizAnalysis::CreatePVectorMLHO(Element* element){/*{{{*/
     1107ElementVector* AdjointHorizAnalysis::CreatePVectorMOLHO(Element* element){/*{{{*/
    11081108
    11091109        /*Intermediaries*/
     
    11431143
    11441144        /*Initialize Element vector and vectors*/
    1145         ElementVector* pe    = basalelement->NewElementVector(MLHOApproximationEnum);
     1145        ElementVector* pe    = basalelement->NewElementVector(MOLHOApproximationEnum);
    11461146        IssmDouble*    basis = xNew<IssmDouble>(numnodes);
    11471147
     
    12121212                                                }
    12131213                                                else {
    1214                                                         _error_("2D vertical is not implemented for MLHO");
     1214                                                        _error_("2D vertical is not implemented for MOLHO");
    12151215                                                }
    12161216                                        }
     
    12401240                                                }
    12411241                                                else{
    1242                                                         _error_("2D vertical is not implemented for MLHO");
     1242                                                        _error_("2D vertical is not implemented for MOLHO");
    12431243                                                }
    12441244                                        }
     
    12691269                                                }
    12701270                                                else{
    1271                                                         _error_("2D vertical is not implemented for MLHO");
     1271                                                        _error_("2D vertical is not implemented for MOLHO");
    12721272                                                }
    12731273                                        }
     
    12951295                                                }
    12961296                                                else{
    1297                                                         _error_("2D vertical is not implemented for MLHO");
     1297                                                        _error_("2D vertical is not implemented for MOLHO");
    12981298                                                }
    12991299                                        }
     
    13191319                                                }
    13201320                                                else{
    1321                                                         _error_("2D vertical is not implemented for MLHO");
     1321                                                        _error_("2D vertical is not implemented for MOLHO");
    13221322                                                }
    13231323                                        }
     
    16691669                                case L1L2ApproximationEnum:GradientJDragL1L2(element,gradient,control_interp,control_index); break;
    16701670                                case HOApproximationEnum:  GradientJDragHO( element,gradient,control_interp,control_index); break;
    1671                                 case MLHOApproximationEnum:  GradientJDragMLHO( element,gradient,control_interp,control_index); break;
     1671                                case MOLHOApproximationEnum:  GradientJDragMOLHO( element,gradient,control_interp,control_index); break;
    16721672                                case FSApproximationEnum:  GradientJDragFS( element,gradient,control_interp,control_index); break;
    16731673                                case NoneApproximationEnum: /*Gradient is 0*/                    break;
     
    16901690                                case L1L2ApproximationEnum:GradientJBbarL1L2(element,gradient,control_interp,control_index); break;
    16911691                                case HOApproximationEnum:  GradientJBbarHO( element,gradient,control_interp,control_index); break;
    1692                                 case MLHOApproximationEnum:  GradientJBbarMLHO( element,gradient,control_interp,control_index); break;
     1692                                case MOLHOApproximationEnum:  GradientJBbarMOLHO( element,gradient,control_interp,control_index); break;
    16931693                                case FSApproximationEnum:  GradientJBbarFS( element,gradient,control_interp,control_index); break;
    16941694                                case NoneApproximationEnum: /*Gradient is 0*/                    break;
     
    17001700                                case SSAApproximationEnum: GradientJBSSA(element,gradient,control_interp,control_index); break;
    17011701                                case HOApproximationEnum:  GradientJBHO( element,gradient,control_interp,control_index); break;
    1702                         //      case MLHOApproximationEnum:  GradientJBMLHO( element,gradient,control_interp,control_index); break;
     1702                        //      case MOLHOApproximationEnum:  GradientJBMOLHO( element,gradient,control_interp,control_index); break;
    17031703                                case FSApproximationEnum:  GradientJBFS( element,gradient,control_interp,control_index); break;
    17041704                                case NoneApproximationEnum: /*Gradient is 0*/                    break;
     
    18101810        this->GradientJBbarSSA(element,gradient,control_interp,control_index);
    18111811}/*}}}*/
    1812 void           AdjointHorizAnalysis::GradientJBbarMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index){/*{{{*/
     1812void           AdjointHorizAnalysis::GradientJBbarMOLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index){/*{{{*/
    18131813
    18141814   if(control_interp!=P1Enum) _error_("not implemented yet...");
     
    18931893                        zeta=0.5*(gauss_seg->coord1+1);
    18941894
    1895                         basalelement->StrainRateMLHO(&epsilon[0],xyz_list,gauss,
     1895                        basalelement->StrainRateMOLHO(&epsilon[0],xyz_list,gauss,
    18961896                  vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input,zeta);
    18971897
    1898                         basalelement->dViscositydBMLHO(&dmudB,dim,xyz_list,gauss,vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input,zeta);
     1898                        basalelement->dViscositydBMOLHO(&dmudB,dim,xyz_list,gauss,vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input,zeta);
    18991899
    19001900                        e1[0] = 2.0*epsilon[0]+epsilon[1];
     
    22512251        delete gauss;
    22522252}/*}}}*/
    2253 void           AdjointHorizAnalysis::GradientJBMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index){/*{{{*/
     2253void           AdjointHorizAnalysis::GradientJBMOLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index){/*{{{*/
    22542254        _error_("not implemented yet...");
    22552255}/*}}}*/
     
    26512651        delete friction;
    26522652}/*}}}*/
    2653 void           AdjointHorizAnalysis::GradientJDragMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index){/*{{{*/
     2653void           AdjointHorizAnalysis::GradientJDragMOLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index){/*{{{*/
    26542654
    26552655        /*return if floating (gradient is 0)*/
     
    32723272                InputUpdateFromSolutionFS(solution,element);
    32733273        }
    3274         else if (approximation==MLHOApproximationEnum) {
    3275                 InputUpdateFromSolutionMLHO(solution, element);
     3274        else if (approximation==MOLHOApproximationEnum) {
     3275                InputUpdateFromSolutionMOLHO(solution, element);
    32763276        }
    32773277        else{
     
    34203420        xDelete<int>(doflist);
    34213421}/*}}}*/
    3422 void           AdjointHorizAnalysis::InputUpdateFromSolutionMLHO(IssmDouble* solution,Element* element){/*{{{*/
     3422void           AdjointHorizAnalysis::InputUpdateFromSolutionMOLHO(IssmDouble* solution,Element* element){/*{{{*/
    34233423        int  i;
    34243424        int* doflist=NULL;
     
    34333433
    34343434        /*Fetch dof list and allocate solution vectors*/
    3435         element->GetDofListLocal(&doflist,MLHOApproximationEnum,GsetEnum);
     3435        element->GetDofListLocal(&doflist,MOLHOApproximationEnum,GsetEnum);
    34363436        IssmDouble* values    = xNew<IssmDouble>(numdof);
    34373437        IssmDouble* lambdax   = xNew<IssmDouble>(numnodes);
  • issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.h

    r26478 r27031  
    2828                ElementMatrix* CreateKMatrixFS(Element* element);
    2929                ElementMatrix* CreateKMatrixHO(Element* element);
    30                 ElementMatrix* CreateKMatrixMLHO(Element* element);
    31                 ElementMatrix* CreateKMatrixMLHOVerticalIntergrated(Element* element);
     30                ElementMatrix* CreateKMatrixMOLHO(Element* element);
     31                ElementMatrix* CreateKMatrixMOLHOVerticalIntergrated(Element* element);
    3232                ElementMatrix* CreateKMatrixL1L2(Element* element);
    3333                ElementMatrix* CreateKMatrixSSA(Element* element);
     
    3636                ElementVector* CreatePVectorL1L2(Element* element);
    3737                ElementVector* CreatePVectorHO(Element* element);
    38                 ElementVector* CreatePVectorMLHO(Element* element);
     38                ElementVector* CreatePVectorMOLHO(Element* element);
    3939                ElementVector* CreatePVectorSSA(Element* element);
    4040                void           GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
     
    4545                void           GradientJBbarL1L2(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    4646                void           GradientJBbarHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    47                 void           GradientJBbarMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
     47                void           GradientJBbarMOLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    4848                void           GradientJBbarSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    4949                void           GradientJBFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    5050                void           GradientJBGradient(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    5151                void           GradientJBHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    52                 void           GradientJBMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
     52                void           GradientJBMOLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    5353                void           GradientJBSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    5454                void           GradientJDragFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
     
    5656                void           GradientJDragL1L2(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    5757                void           GradientJDragHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    58                 void           GradientJDragMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
     58                void           GradientJDragMOLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    5959                void           GradientJDragSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
    6060                void           GradientJDragHydroFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
     
    6666                void           InputUpdateFromSolutionFS(IssmDouble* solution,Element* element);
    6767                void           InputUpdateFromSolutionHoriz(IssmDouble* solution,Element* element);
    68                 void           InputUpdateFromSolutionMLHO(IssmDouble* solution,Element* element);
     68                void           InputUpdateFromSolutionMOLHO(IssmDouble* solution,Element* element);
    6969                void           UpdateConstraints(FemModel* femmodel);
    7070};
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r26825 r27031  
    3131        IssmDouble rho_ice;
    3232        IssmDouble FSreconditioning;
    33         bool       isSIA,isSSA,isL1L2,isMLHO,isHO,isFS,iscoupling;
     33        bool       isSIA,isSSA,isL1L2,isMOLHO,isHO,isFS,iscoupling;
    3434        bool       spcpresent = false;
    3535        int        Mx,Nx;
     
    5959        iomodel->FindConstant(&isSSA,"md.flowequation.isSSA");
    6060        iomodel->FindConstant(&isL1L2,"md.flowequation.isL1L2");
    61         iomodel->FindConstant(&isMLHO,"md.flowequation.isMLHO");
     61        iomodel->FindConstant(&isMOLHO,"md.flowequation.isMOLHO");
    6262        iomodel->FindConstant(&isHO,"md.flowequation.isHO");
    6363        iomodel->FindConstant(&isFS,"md.flowequation.isFS");
    6464
    6565        /*Is this model only SIA??*/
    66         if(!isSSA && !isHO && !isFS && !isL1L2 && !isMLHO) return;
     66        if(!isSSA && !isHO && !isFS && !isL1L2 && !isMOLHO) return;
    6767
    6868        /*Do we have coupling*/
    69         if((isSIA?1.:0.) + (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
     69        if((isSIA?1.:0.) + (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMOLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
    7070         iscoupling = true;
    7171        else
     
    7878                if(isSSA)       iomodel->FindConstant(&finiteelement,"md.flowequation.fe_SSA");
    7979                else if(isL1L2) finiteelement = P1Enum;
    80                 else if(isMLHO) finiteelement = P1Enum;
     80                else if(isMOLHO) finiteelement = P1Enum;
    8181                else if(isHO)   iomodel->FindConstant(&finiteelement,"md.flowequation.fe_HO");
    8282                else if(isFS){  iomodel->FindConstant(&finiteelement,"md.flowequation.fe_FS");
     
    188188                }
    189189                else{
    190                         if(!isMLHO){
     190                        if(!isMOLHO){
    191191                                IoModelToConstraintsx(constraints,iomodel,"md.stressbalance.spcvx",StressbalanceAnalysisEnum,finiteelement,0);
    192192                                if(iomodel->domaintype!=Domain2DverticalEnum){
     
    194194                                }
    195195                        }
    196                         else{//MLHO
     196                        else{//MOLHO
    197197                                IoModelToConstraintsx(constraints,iomodel,"md.stressbalance.spcvx_base",StressbalanceAnalysisEnum,finiteelement,0);
    198198                                IoModelToConstraintsx(constraints,iomodel,"md.stressbalance.spcvx_shear",StressbalanceAnalysisEnum,finiteelement,1);
     
    462462        int         count;
    463463        int         penpair_ids[2];
    464         bool        isSSA,isL1L2,isMLHO,isHO,isFS;
     464        bool        isSSA,isL1L2,isMOLHO,isHO,isFS;
    465465        int         numpenalties,numrifts,numriftsegments;
    466466        IssmDouble *riftinfo       = NULL;
     
    470470        /*Fetch parameters: */
    471471        iomodel->FindConstant(&isL1L2,"md.flowequation.isL1L2");
    472         iomodel->FindConstant(&isMLHO,"md.flowequation.isMLHO");
     472        iomodel->FindConstant(&isMOLHO,"md.flowequation.isMOLHO");
    473473        iomodel->FindConstant(&isFS,"md.flowequation.isFS");
    474474        iomodel->FindConstant(&isSSA,"md.flowequation.isSSA");
     
    477477
    478478        /*Is this SIA only?*/
    479         if(!isSSA && !isHO && !isFS && !isL1L2 && !isMLHO) return;
     479        if(!isSSA && !isHO && !isFS && !isL1L2 && !isMOLHO) return;
    480480
    481481        /*Initialize counter: */
     
    522522
    523523        /*Intermediary*/
    524         bool isSSA,isL1L2,isMLHO,isHO,isFS,iscoupling;
     524        bool isSSA,isL1L2,isMOLHO,isHO,isFS,iscoupling;
    525525        int  finiteelement=-1,approximation=-1;
    526526
     
    528528        iomodel->FindConstant(&isSSA,"md.flowequation.isSSA");
    529529        iomodel->FindConstant(&isL1L2,"md.flowequation.isL1L2");
    530         iomodel->FindConstant(&isMLHO,"md.flowequation.isMLHO");
     530        iomodel->FindConstant(&isMOLHO,"md.flowequation.isMOLHO");
    531531        iomodel->FindConstant(&isHO,"md.flowequation.isHO");
    532532        iomodel->FindConstant(&isFS,"md.flowequation.isFS");
    533533
    534534        /*Now, check that we have non SIA elements */
    535         if(!isSSA && !isL1L2 && !isMLHO && !isHO && !isFS) return;
     535        if(!isSSA && !isL1L2 && !isMOLHO && !isHO && !isFS) return;
    536536
    537537        /*Do we have coupling*/
    538         if( (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
     538        if( (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMOLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
    539539         iscoupling = true;
    540540        else
     
    553553                        finiteelement = P1Enum;
    554554                }
    555                 else if(isMLHO){
    556                         approximation = MLHOApproximationEnum;
     555                else if(isMOLHO){
     556                        approximation = MOLHOApproximationEnum;
    557557                        finiteelement = P1Enum;
    558558                }
     
    630630                         break;
    631631                case L1L2ApproximationEnum: numdofs = 2; break;
    632                 case MLHOApproximationEnum: numdofs = 4; break;
     632                case MOLHOApproximationEnum: numdofs = 4; break;
    633633                case HOApproximationEnum:
    634634                         switch(domaintype){
     
    695695        int    FrictionCoupling;
    696696        int*   finiteelement_list=NULL;
    697         bool   isSSA,isL1L2,isMLHO,isHO,isFS,iscoupling;
     697        bool   isSSA,isL1L2,isMOLHO,isHO,isFS,iscoupling;
    698698        bool   control_analysis;
    699699        bool   dakota_analysis;
     
    703703        iomodel->FindConstant(&isSSA,"md.flowequation.isSSA");
    704704        iomodel->FindConstant(&isL1L2,"md.flowequation.isL1L2");
    705         iomodel->FindConstant(&isMLHO,"md.flowequation.isMLHO");
     705        iomodel->FindConstant(&isMOLHO,"md.flowequation.isMOLHO");
    706706        iomodel->FindConstant(&isHO,"md.flowequation.isHO");
    707707        iomodel->FindConstant(&isFS,"md.flowequation.isFS");
     
    713713
    714714        /*return if no processing required*/
    715         if(!isSSA && !isL1L2 && !isMLHO && !isHO && !isFS) return;
     715        if(!isSSA && !isL1L2 && !isMOLHO && !isHO && !isFS) return;
    716716
    717717        /*Fetch data needed and allocate vectors: */
     
    720720
    721721        /*Do we have coupling*/
    722         if( (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
     722        if( (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMOLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
    723723         iscoupling = true;
    724724        else
     
    729729                if(isSSA)       iomodel->FindConstant(&finiteelement,"md.flowequation.fe_SSA");
    730730                else if(isL1L2) finiteelement = P1Enum;
    731                 else if(isMLHO) finiteelement = P1Enum;
     731                else if(isMOLHO) finiteelement = P1Enum;
    732732                else if(isHO)   iomodel->FindConstant(&finiteelement,"md.flowequation.fe_HO");
    733733                else if(isFS)   iomodel->FindConstant(&finiteelement,"md.flowequation.fe_FS");
     
    781781        iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum,0.);
    782782        iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum,0.);
    783         /*MLHO*/
    784         if(isMLHO){
     783        /*MOLHO*/
     784        if(isMOLHO){
    785785                iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxShearEnum,0.);
    786786                iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyShearEnum,0.);
    787                 /*3D MLHO also need to have VxBase and VyBase for reconstruting Vx and Vy*/
     787                /*3D MOLHO also need to have VxBase and VyBase for reconstruting Vx and Vy*/
    788788                if (iomodel->domaintype==Domain3DEnum) {
    789789                        iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxBaseEnum,0.);
     
    990990        parameters->AddObject(iomodel->CopyConstantObject("md.flowequation.isSSA",FlowequationIsSSAEnum));
    991991        parameters->AddObject(iomodel->CopyConstantObject("md.flowequation.isL1L2",FlowequationIsL1L2Enum));
    992         parameters->AddObject(iomodel->CopyConstantObject("md.flowequation.isMLHO",FlowequationIsMLHOEnum));
     992        parameters->AddObject(iomodel->CopyConstantObject("md.flowequation.isMOLHO",FlowequationIsMOLHOEnum));
    993993        parameters->AddObject(iomodel->CopyConstantObject("md.flowequation.isHO",FlowequationIsHOEnum));
    994994        parameters->AddObject(iomodel->CopyConstantObject("md.flowequation.isFS",FlowequationIsFSEnum));
     
    10931093
    10941094        /*Intermediaries*/
    1095         bool isSSA,isL1L2,isMLHO,isHO,isFS;
     1095        bool isSSA,isL1L2,isMOLHO,isHO,isFS;
    10961096        bool conserve_loads = true;
    10971097        int  newton,domaintype,fe_FS;
     
    11001100        femmodel->parameters->FindParam(&isSSA,FlowequationIsSSAEnum);
    11011101        femmodel->parameters->FindParam(&isL1L2,FlowequationIsL1L2Enum);
    1102         femmodel->parameters->FindParam(&isMLHO,FlowequationIsMLHOEnum);
     1102        femmodel->parameters->FindParam(&isMOLHO,FlowequationIsMOLHOEnum);
    11031103        femmodel->parameters->FindParam(&isHO,FlowequationIsHOEnum);
    11041104        femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
     
    11071107        femmodel->parameters->FindParam(&newton,StressbalanceIsnewtonEnum);
    11081108
    1109         if(isFS && !(isSSA || isHO || isL1L2 || isMLHO)){
     1109        if(isFS && !(isSSA || isHO || isL1L2 || isMOLHO)){
    11101110                femmodel->SetCurrentConfiguration(StressbalanceAnalysisEnum);
    11111111
     
    11291129                 solutionsequence_nonlinear(femmodel,conserve_loads);
    11301130        }
    1131         else if(!isFS && (isSSA || isHO || isL1L2 || isMLHO)){
     1131        else if(!isFS && (isSSA || isHO || isL1L2 || isMOLHO)){
    11321132                femmodel->SetCurrentConfiguration(StressbalanceAnalysisEnum);
    11331133                if(newton>0)
     
    11431143                }
    11441144        }
    1145         else if ((isSSA || isL1L2 || isMLHO || isHO) && isFS){
     1145        else if ((isSSA || isL1L2 || isMOLHO || isHO) && isFS){
    11461146                if(VerboseSolution()) _printf0_("   computing coupling between lower order models and FS\n");
    11471147                solutionsequence_FScoupling_nonlinear(femmodel,conserve_loads);
     
    11951195                case L1L2ApproximationEnum:
    11961196                        return CreateKMatrixL1L2(element);
    1197                 case MLHOApproximationEnum:
    1198                         return CreateKMatrixMLHO(element);
     1197                case MOLHOApproximationEnum:
     1198                        return CreateKMatrixMOLHO(element);
    11991199                case HOApproximationEnum:
    12001200                        return CreateKMatrixHO(element);
     
    12241224                case L1L2ApproximationEnum:
    12251225                        return CreatePVectorL1L2(element);
    1226                 case MLHOApproximationEnum:
    1227                         return CreatePVectorMLHO(element);
     1226                case MOLHOApproximationEnum:
     1227                        return CreatePVectorMOLHO(element);
    12281228                case HOApproximationEnum:
    12291229                        return CreatePVectorHO(element);
     
    12531253                        GetSolutionFromInputsHoriz(solution,element);
    12541254                        return;
    1255                 case MLHOApproximationEnum:
    1256                         GetSolutionFromInputsMLHO(solution,element);
     1255                case MOLHOApproximationEnum:
     1256                        GetSolutionFromInputsMOLHO(solution,element);
    12571257                        return;
    12581258                case SSAHOApproximationEnum: case HOFSApproximationEnum: case SSAFSApproximationEnum:
     
    13351335                        InputUpdateFromSolutionL1L2(solution,element);
    13361336                        return;
    1337                 case MLHOApproximationEnum:
    1338                         InputUpdateFromSolutionMLHO(solution,element);
     1337                case MOLHOApproximationEnum:
     1338                        InputUpdateFromSolutionMOLHO(solution,element);
    13391339                        return;
    13401340                case SSAHOApproximationEnum:
     
    27602760}/*}}}*/
    27612761
    2762 /*MLHO*/
    2763 ElementMatrix* StressbalanceAnalysis::CreateKMatrixMLHO(Element* element){/*{{{*/
     2762/*MOLHO*/
     2763ElementMatrix* StressbalanceAnalysis::CreateKMatrixMOLHO(Element* element){/*{{{*/
    27642764
    27652765        /* Check if ice in element */
     
    27842784
    27852785        /*compute all stiffness matrices for this element*/
    2786         ElementMatrix* Ke1=CreateKMatrixMLHOViscous(basalelement);
    2787         ElementMatrix* Ke2=CreateKMatrixMLHOFriction(basalelement);
     2786        ElementMatrix* Ke1=CreateKMatrixMOLHOViscous(basalelement);
     2787        ElementMatrix* Ke2=CreateKMatrixMOLHOFriction(basalelement);
    27882788        ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2);
    27892789
     
    27942794        return Ke;
    27952795}/*}}}*/
    2796 ElementMatrix* StressbalanceAnalysis::CreateKMatrixMLHOFriction(Element* element){/*{{{*/
     2796ElementMatrix* StressbalanceAnalysis::CreateKMatrixMOLHOFriction(Element* element){/*{{{*/
    27972797
    27982798        if(element->IsAllFloating()) return NULL;
     
    28212821
    28222822        /*Initialize Element matrix and vectors*/
    2823         ElementMatrix* Ke = element->NewElementMatrix(MLHOApproximationEnum);
     2823        ElementMatrix* Ke = element->NewElementMatrix(MOLHOApproximationEnum);
    28242824        IssmDouble*    basis  = xNew<IssmDouble>(numnodes);
    28252825
     
    28762876        return Ke;
    28772877}/*}}}*/
    2878 ElementMatrix* StressbalanceAnalysis::CreateKMatrixMLHOViscous(Element* element){/*{{{*/
     2878ElementMatrix* StressbalanceAnalysis::CreateKMatrixMOLHOViscous(Element* element){/*{{{*/
    28792879
    28802880        /* Check if ice in element */
     
    28912891
    28922892        /*Initialize Element matrix and vectors*/
    2893         ElementMatrix* Ke     = element->NewElementMatrix(MLHOApproximationEnum);
     2893        ElementMatrix* Ke     = element->NewElementMatrix(MOLHOApproximationEnum);
    28942894        IssmDouble*    dbasis = xNew<IssmDouble>(2*numnodes); // like SSA
    28952895        IssmDouble*    basis  = xNew<IssmDouble>(numnodes); // like SSA
     
    29152915                thickness_input->GetInputValue(&thickness, gauss);
    29162916                n_input->GetInputValue(&n,gauss);
    2917                 element->material->ViscosityMLHO(&viscosity[0],dim,xyz_list,gauss,vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input);
     2917                element->material->ViscosityMOLHO(&viscosity[0],dim,xyz_list,gauss,vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input);
    29182918
    29192919                for(int i=0;i<numnodes;i++){//shape functions on tria element
     
    29812981
    29822982        /*Transform Coordinate System*/
    2983         //basalelement->TransformStiffnessMatrixCoord(Ke,XYMLHOEnum);
     2983        //basalelement->TransformStiffnessMatrixCoord(Ke,XYMOLHOEnum);
    29842984
    29852985        /*Clean up and return*/
     
    29902990        return Ke;
    29912991}/*}}}*/
    2992 ElementVector* StressbalanceAnalysis::CreatePVectorMLHO(Element* element){/*{{{*/
     2992ElementVector* StressbalanceAnalysis::CreatePVectorMOLHO(Element* element){/*{{{*/
    29932993
    29942994        /* Check if ice in element */
     
    30133013
    30143014        /*compute all load vectors for this element*/
    3015         ElementVector* pe1=CreatePVectorMLHODrivingStress(basalelement);
    3016         ElementVector* pe2=CreatePVectorMLHOFront(basalelement);
     3015        ElementVector* pe1=CreatePVectorMOLHODrivingStress(basalelement);
     3016        ElementVector* pe2=CreatePVectorMOLHOFront(basalelement);
    30173017        ElementVector* pe =new ElementVector(pe1,pe2);
    30183018
     
    30233023        return pe;
    30243024}/*}}}*/
    3025 ElementVector* StressbalanceAnalysis::CreatePVectorMLHODrivingStress(Element* element){/*{{{*/
     3025ElementVector* StressbalanceAnalysis::CreatePVectorMOLHODrivingStress(Element* element){/*{{{*/
    30263026
    30273027        /*Intermediaries */
     
    30333033
    30343034        /*Initialize Element vector and vectors*/
    3035         ElementVector* pe    = element->NewElementVector(MLHOApproximationEnum);
     3035        ElementVector* pe    = element->NewElementVector(MOLHOApproximationEnum);
    30363036        IssmDouble*    basis = xNew<IssmDouble>(numnodes);
    30373037
     
    30623062
    30633063        /*Transform coordinate system*/
    3064         //element->TransformLoadVectorCoord(pe,XYMLHOEnum);
     3064        //element->TransformLoadVectorCoord(pe,XYMOLHOEnum);
    30653065
    30663066        /*Clean up and return*/
     
    30703070        return pe;
    30713071}/*}}}*/
    3072 ElementVector* StressbalanceAnalysis::CreatePVectorMLHOFront(Element* element){/*{{{*/
     3072ElementVector* StressbalanceAnalysis::CreatePVectorMOLHOFront(Element* element){/*{{{*/
    30733073
    30743074        /*If no front, return NULL*/
     
    30863086
    30873087        /*Initialize Element vector and other vectors*/
    3088         ElementVector* pe    = element->NewElementVector(MLHOApproximationEnum);
     3088        ElementVector* pe    = element->NewElementVector(MOLHOApproximationEnum);
    30893089        IssmDouble*    basis = xNew<IssmDouble>(numnodes);
    30903090
     
    31353135
    31363136        /*Transform coordinate system*/
    3137         //element->TransformLoadVectorCoord(pe,XYMLHOEnum);
     3137        //element->TransformLoadVectorCoord(pe,XYMOLHOEnum);
    31383138
    31393139        /*Clean up and return*/
     
    31443144        return pe;
    31453145}/*}}}*/
    3146 void           StressbalanceAnalysis::InputUpdateFromSolutionMLHO(IssmDouble* solution,Element* element){/*{{{*/
     3146void           StressbalanceAnalysis::InputUpdateFromSolutionMOLHO(IssmDouble* solution,Element* element){/*{{{*/
    31473147
    31483148        int         i,dim,domaintype;
     
    31973197
    31983198        /*Fetch dof list and allocate solution vectors*/
    3199         basalelement->GetDofListLocal(&doflist,MLHOApproximationEnum,GsetEnum);
     3199        basalelement->GetDofListLocal(&doflist,MOLHOApproximationEnum,GsetEnum);
    32003200        IssmDouble* values    = xNew<IssmDouble>(numdof);
    32013201        IssmDouble* vbx       = xNew<IssmDouble>(numnodes);
     
    32203220
    32213221   /*Ok, we have vx and vy in values, fill in vx and vy arrays: */
    3222    for(i=0;i<numnodes;i++){ //numnodes of the 2D mesh in which the MLHO is written
     3222   for(i=0;i<numnodes;i++){ //numnodes of the 2D mesh in which the MOLHO is written
    32233223      vbx[i] =values[i*4+0]; //base vx
    32243224      vshx[i]=values[i*4+1]; //shear vx
     
    32573257   switch(domaintype){
    32583258      case Domain2DhorizontalEnum:
    3259                         for(i=0;i<numnodes;i++){ //numnodes of the 2D mesh in which the MLHO is written
     3259                        for(i=0;i<numnodes;i++){ //numnodes of the 2D mesh in which the MOLHO is written
    32603260                                vx[i]=vbx[i]+vshx[i]*(n[i]+1)/(n[i]+2);
    32613261                                vy[i]=vby[i]+vshy[i]*(n[i]+1)/(n[i]+2);
     
    32693269                   basalelement->GetInputListOnNodes(&H[0],ThicknessEnum,0.);
    32703270                   basalelement->GetInputListOnNodes(&s[0],SurfaceEnum,0.);
    3271                         element->Recover3DMLHOInput(VxEnum, numnodes, vbx, vshx, n, H, s);
    3272                         element->Recover3DMLHOInput(VyEnum, numnodes, vby, vshy, n, H, s);
     3271                        element->Recover3DMOLHOInput(VxEnum, numnodes, vbx, vshx, n, H, s);
     3272                        element->Recover3DMOLHOInput(VyEnum, numnodes, vby, vshy, n, H, s);
    32733273                        break;
    32743274                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
     
    32943294        if(basalelement->IsSpawnedElement()){basalelement->DeleteMaterials(); delete basalelement;};
    32953295}/*}}}*/
    3296 void           StressbalanceAnalysis::GetSolutionFromInputsMLHO(Vector<IssmDouble>* solution,Element* element){/*{{{*/
     3296void           StressbalanceAnalysis::GetSolutionFromInputsMOLHO(Vector<IssmDouble>* solution,Element* element){/*{{{*/
    32973297
    32983298        IssmDouble   vbx,vby,vshx,vshy;
     
    33133313        int numdof   = numnodes*dofpernode;
    33143314        element->GetInputValue(&approximation,ApproximationEnum);
    3315         if(approximation!=MLHOApproximationEnum) _error_("mesh "<<EnumToStringx(approximation)<<" not supported here");
     3315        if(approximation!=MOLHOApproximationEnum) _error_("mesh "<<EnumToStringx(approximation)<<" not supported here");
    33163316
    33173317        /*Fetch dof list and allocate solution vector*/
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h

    r26155 r27031  
    5757                ElementVector* CreatePVectorL1L2DrivingStress(Element* element);
    5858                void           InputUpdateFromSolutionL1L2(IssmDouble* solution,Element* element);
    59                 /*MLHO*/
    60                 ElementMatrix* CreateKMatrixMLHO(Element* element);
    61                 ElementMatrix* CreateKMatrixMLHOFriction(Element* element);
    62                 ElementMatrix* CreateKMatrixMLHOViscous(Element* element);
    63                 ElementVector* CreatePVectorMLHO(Element* element);
    64                 ElementVector* CreatePVectorMLHOFront(Element* element);
    65                 ElementVector* CreatePVectorMLHODrivingStress(Element* element);
    66                 void           InputUpdateFromSolutionMLHO(IssmDouble* solution,Element* element);
    67                 void           GetSolutionFromInputsMLHO(Vector<IssmDouble>* solution,Element* element);
     59                /*MOLHO*/
     60                ElementMatrix* CreateKMatrixMOLHO(Element* element);
     61                ElementMatrix* CreateKMatrixMOLHOFriction(Element* element);
     62                ElementMatrix* CreateKMatrixMOLHOViscous(Element* element);
     63                ElementVector* CreatePVectorMOLHO(Element* element);
     64                ElementVector* CreatePVectorMOLHOFront(Element* element);
     65                ElementVector* CreatePVectorMOLHODrivingStress(Element* element);
     66                void           InputUpdateFromSolutionMOLHO(IssmDouble* solution,Element* element);
     67                void           GetSolutionFromInputsMOLHO(Vector<IssmDouble>* solution,Element* element);
    6868                /*HO*/
    6969                ElementMatrix* CreateJacobianMatrixHO(Element* element);
  • issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp

    r26047 r27031  
    1010
    1111        /*Intermediaries*/
    12         bool       isSIA,isSSA,isL1L2,isMLHO,isHO,isFS,iscoupling;
     12        bool       isSIA,isSSA,isL1L2,isMOLHO,isHO,isFS,iscoupling;
    1313
    1414        /*Fetch parameters: */
     
    1616        iomodel->FindConstant(&isSSA,"md.flowequation.isSSA");
    1717        iomodel->FindConstant(&isL1L2,"md.flowequation.isL1L2");
    18         iomodel->FindConstant(&isMLHO,"md.flowequation.isMLHO");
     18        iomodel->FindConstant(&isMOLHO,"md.flowequation.isMOLHO");
    1919        iomodel->FindConstant(&isHO,"md.flowequation.isHO");
    2020        iomodel->FindConstant(&isFS,"md.flowequation.isFS");
     
    2424
    2525        /*Do we have coupling*/
    26         if((isSIA?1.:0.) + (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
     26        if((isSIA?1.:0.) + (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMOLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
    2727         iscoupling = true;
    2828        else
  • issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp

    r26825 r27031  
    1212
    1313        /*Intermediary*/
    14         bool        isSIA,isSSA,isL1L2,isMLHO,isHO,isFS,iscoupling;
     14        bool        isSIA,isSSA,isL1L2,isMOLHO,isHO,isFS,iscoupling;
    1515        int         Mz,Nz;
    1616        IssmDouble *spcvz = NULL;
     
    2323        iomodel->FindConstant(&isSSA,"md.flowequation.isSSA");
    2424        iomodel->FindConstant(&isL1L2,"md.flowequation.isL1L2");
    25         iomodel->FindConstant(&isMLHO,"md.flowequation.isMLHO");
     25        iomodel->FindConstant(&isMOLHO,"md.flowequation.isMOLHO");
    2626        iomodel->FindConstant(&isHO,"md.flowequation.isHO");
    2727        iomodel->FindConstant(&isFS,"md.flowequation.isFS");
    2828
    2929        /*Do we have coupling*/
    30         if((isSIA?1.:0.) + (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
     30        if((isSIA?1.:0.) + (isSSA?1.:0.) + (isL1L2?1.:0.) + (isMOLHO?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
    3131         iscoupling = true;
    3232        else
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r27020 r27031  
    10411041}
    10421042/*}}}*/
    1043 void       Element::dViscositydBMLHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input, Input* vxshear_input ,Input* vyshear_input,Input* thickness_input,Input* n_input, IssmDouble zeta){/*{{{*/
     1043void       Element::dViscositydBMOLHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input, Input* vxshear_input ,Input* vyshear_input,Input* thickness_input,Input* n_input, IssmDouble zeta){/*{{{*/
    10441044
    10451045        /*Intermediaries*/
     
    10511051
    10521052        /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
    1053    this->StrainRateMLHO(&epsilon[0],xyz_list,gauss,
     1053   this->StrainRateMOLHO(&epsilon[0],xyz_list,gauss,
    10541054                                vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input,zeta);
    10551055   eps_eff=sqrt(epsilon[0]*epsilon[0] + epsilon[1]*epsilon[1] + epsilon[2]*epsilon[2]
     
    46194619
    46204620}/*}}}*/
    4621 void       Element::StrainRateMLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input,IssmDouble zeta){/*{{{*/
    4622         /*Compute the 2d Blatter/MLHO Strain Rate (5 components) for a given vertical coordinate (zeta):
     4621void       Element::StrainRateMOLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input,IssmDouble zeta){/*{{{*/
     4622        /*Compute the 2d Blatter/MOLHO Strain Rate (5 components) for a given vertical coordinate (zeta):
    46234623         *
    46244624         * epsilon=[exx eyy exy exz eyz]
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r26983 r27031  
    8686                void               dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    8787                void               dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    88                 void               dViscositydBMLHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input, Input* vxshear_input ,Input* vyshear_input,Input* thickness_input,Input* n_input, IssmDouble zeta);
     88                void               dViscositydBMOLHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input, Input* vxshear_input ,Input* vyshear_input,Input* thickness_input,Input* n_input, IssmDouble zeta);
    8989                void               dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    9090                void               Echo();
     
    190190                void               StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    191191                void               StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    192                 void               StrainRateMLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input,IssmDouble zeta);
     192                void               StrainRateMOLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input,IssmDouble zeta);
    193193                void               StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    194194                void               StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input);
     
    351351                virtual void       PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding)=0;
    352352                virtual int        PressureInterpolation()=0;
    353       virtual void       Recover3DMLHOInput(int targetVel_enum, int numnodes, IssmDouble* vb,  IssmDouble* vsh, IssmDouble* n, IssmDouble* H, IssmDouble* s){_error_("not implemented yet");};
     353      virtual void       Recover3DMOLHOInput(int targetVel_enum, int numnodes, IssmDouble* vb,  IssmDouble* vsh, IssmDouble* n, IssmDouble* H, IssmDouble* s){_error_("not implemented yet");};
    354354                virtual void       ReduceMatrices(ElementMatrix* Ke,ElementVector* pe)=0;
    355355                virtual void       ResetFSBasalBoundaryCondition()=0;
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r26998 r27031  
    32823282}
    32833283/*}}}*/
    3284 void       Penta::Recover3DMLHOInput(int targetVel_enum, int numnodes, IssmDouble* vb,  IssmDouble* vsh, IssmDouble* n, IssmDouble* H, IssmDouble* s){/*{{{*/
     3284void       Penta::Recover3DMOLHOInput(int targetVel_enum, int numnodes, IssmDouble* vb,  IssmDouble* vsh, IssmDouble* n, IssmDouble* H, IssmDouble* s){/*{{{*/
    32853285   /* Recover the velocity acording to v=vb+(1-\zeta^{n+1})vsh, where \zeta=(s-z)/H
    32863286    * The variables vb, vsh, n, H and s are all from the 2D horizontal mesh(Tria), with "numnodes" DOFs
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r26830 r27031  
    170170                void           PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding);
    171171                int            PressureInterpolation();
    172       void           Recover3DMLHOInput(int targetVel_enum, int numnodes, IssmDouble* vb,  IssmDouble* vsh, IssmDouble* n, IssmDouble* H, IssmDouble* s);
     172      void           Recover3DMOLHOInput(int targetVel_enum, int numnodes, IssmDouble* vb,  IssmDouble* vsh, IssmDouble* n, IssmDouble* H, IssmDouble* s);
    173173                void           ReduceMatrices(ElementMatrix* Ke,ElementVector* pe);
    174174                void           ResetFSBasalBoundaryCondition(void);
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r27024 r27031  
    32193219        this->parameters->FindParam(&temp,FlowequationIsSSAEnum); iomodel->AddConstant(new IoConstant(temp,"md.flowequation.isSSA"));
    32203220        this->parameters->FindParam(&temp,FlowequationIsL1L2Enum); iomodel->AddConstant(new IoConstant(temp,"md.flowequation.isL1L2"));
    3221         this->parameters->FindParam(&temp,FlowequationIsMLHOEnum); iomodel->AddConstant(new IoConstant(temp,"md.flowequation.isMLHO"));
     3221        this->parameters->FindParam(&temp,FlowequationIsMOLHOEnum); iomodel->AddConstant(new IoConstant(temp,"md.flowequation.isMOLHO"));
    32223222        this->parameters->FindParam(&temp,FlowequationIsHOEnum); iomodel->AddConstant(new IoConstant(temp,"md.flowequation.isHO"));
    32233223        this->parameters->FindParam(&temp,FlowequationIsFSEnum); iomodel->AddConstant(new IoConstant(temp,"md.flowequation.isFS"));
  • issm/trunk-jpl/src/c/classes/Loads/Penpair.cpp

    r26292 r27031  
    355355                                default: _error_("Approximation "<<EnumToStringx(approximation1)<<" not supported yet");
    356356                        }
    357                 case MLHOApproximationEnum:
    358                         switch(approximation1){
    359                                 case MLHOApproximationEnum:   return PenaltyCreateKMatrixStressbalanceSSAHO(kmax);
     357                case MOLHOApproximationEnum:
     358                        switch(approximation1){
     359                                case MOLHOApproximationEnum:   return PenaltyCreateKMatrixStressbalanceSSAHO(kmax);
    360360                                default: _error_("Approximation "<<EnumToStringx(approximation1)<<" not supported yet");
    361361                        }
  • issm/trunk-jpl/src/c/classes/Materials/Material.h

    r26478 r27031  
    5151                virtual void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0;
    5252                virtual void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
    53                 virtual void       ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input)=0;
    54                 virtual void       ViscosityMLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input)=0;
     53                virtual void       ViscosityMOLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input)=0;
     54                virtual void       ViscosityMOLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input)=0;
    5555                virtual void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf)=0;
    5656                virtual void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp

    r26478 r27031  
    567567        *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
    568568}/*}}}*/
    569 void  Matestar::ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/
    570         _error_("not implemented yet");
    571 }/*}}}*/
    572 void  Matestar::ViscosityMLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/
     569void  Matestar::ViscosityMOLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/
     570        _error_("not implemented yet");
     571}/*}}}*/
     572void  Matestar::ViscosityMOLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/
    573573        _error_("not implemented yet");
    574574}/*}}}*/
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.h

    r26478 r27031  
    7676                void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
    7777                void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    78                 void       ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input);
    79                 void       ViscosityMLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input);
     78                void       ViscosityMOLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input);
     79                void       ViscosityMOLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input);
    8080                void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf);
    8181                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
  • issm/trunk-jpl/src/c/classes/Materials/Matice.cpp

    r26866 r27031  
    734734        *pviscosity=viscosity;
    735735}/*}}}*/
    736 void  Matice::ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/
     736void  Matice::ViscosityMOLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/
    737737
    738738        /*Intermediaries*/
     
    755755
    756756                /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy (for a given zeta)*/
    757                 element->StrainRateMLHO(&epsilon[0],xyz_list,gauss,
     757                element->StrainRateMOLHO(&epsilon[0],xyz_list,gauss,
    758758                                                vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input,zeta);
    759759                epsilon_eff=sqrt(epsilon[0]*epsilon[0] + epsilon[1]*epsilon[1] + epsilon[2]*epsilon[2]
     
    795795        delete gauss_seg;
    796796}/*}}}*/
    797 void  Matice::ViscosityMLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/
     797void  Matice::ViscosityMOLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){/*{{{*/
    798798
    799799        /* To compute the additional 5 terms in the viscosity appear in the adjoint equation*/
     
    817817
    818818                /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy (for a given zeta)*/
    819                 element->StrainRateMLHO(&epsilon[0],xyz_list,gauss,
     819                element->StrainRateMOLHO(&epsilon[0],xyz_list,gauss,
    820820                                                vxbase_input,vybase_input,vxshear_input,vyshear_input,thickness_input,n_input,zeta);
    821821                epsilon_eff=sqrt(epsilon[0]*epsilon[0] + epsilon[1]*epsilon[1] + epsilon[2]*epsilon[2]
  • issm/trunk-jpl/src/c/classes/Materials/Matice.h

    r26478 r27031  
    7878                void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
    7979                void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    80                 void       ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input);
    81                 void       ViscosityMLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input);
     80                void       ViscosityMOLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input);
     81                void       ViscosityMOLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input);
    8282                void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf);
    8383                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
  • issm/trunk-jpl/src/c/classes/Materials/Matlitho.h

    r26478 r27031  
    7272                void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");};
    7373                void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
    74                 void       ViscosityMLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){_error_("not supported");};
    75                 void       ViscosityMLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){_error_("not supported");};
     74                void       ViscosityMOLHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){_error_("not supported");};
     75                void       ViscosityMOLHOAdjoint(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input){_error_("not supported");};
    7676                void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf){_error_("not supported");};
    7777                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
  • issm/trunk-jpl/src/c/classes/Node.cpp

    r26468 r27031  
    118118                                this->HardDeactivate();
    119119                        }
    120                         if(in_approximation==MLHOApproximationEnum && !reCast<int>(iomodel->Data("md.mesh.vertexonbase")[io_index])){
     120                        if(in_approximation==MOLHOApproximationEnum && !reCast<int>(iomodel->Data("md.mesh.vertexonbase")[io_index])){
    121121                                this->HardDeactivate();
    122122                        }
  • issm/trunk-jpl/src/c/cores/stressbalance_core.cpp

    r26155 r27031  
    1919        bool       dakota_analysis,control_analysis;
    2020        int        domaintype;
    21         bool       isSIA,isSSA,isL1L2,isMLHO,isHO,isFS,isNitsche;
     21        bool       isSIA,isSSA,isL1L2,isMOLHO,isHO,isFS,isNitsche;
    2222        bool       save_results;
    2323        int        solution_type;
     
    3131        femmodel->parameters->FindParam(&isSSA,FlowequationIsSSAEnum);
    3232        femmodel->parameters->FindParam(&isL1L2,FlowequationIsL1L2Enum);
    33         femmodel->parameters->FindParam(&isMLHO,FlowequationIsMLHOEnum);
     33        femmodel->parameters->FindParam(&isMOLHO,FlowequationIsMOLHOEnum);
    3434        femmodel->parameters->FindParam(&isHO,FlowequationIsHOEnum);
    3535        femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
     
    7575
    7676        /*Compute stressbalance for SSA L1L2 HO and FS*/
    77         if(isSSA || isL1L2 || isMLHO || isHO || isFS){
     77        if(isSSA || isL1L2 || isMOLHO || isHO || isFS){
    7878                analysis = new StressbalanceAnalysis();
    7979                analysis->Core(femmodel);
     
    8282
    8383        /*Compute vertical velocities*/
    84         if (domaintype==Domain3DEnum && (isSIA || isSSA || isL1L2 || isMLHO || isHO)){
     84        if (domaintype==Domain3DEnum && (isSIA || isSSA || isL1L2 || isMOLHO || isHO)){
    8585
    8686                /*We need basal melt rates for vertical velocity*/
  • issm/trunk-jpl/src/c/modules/SurfaceAbsVelMisfitx/SurfaceAbsVelMisfitx.cpp

    r26457 r27031  
    6666        Input* vyobs_input  = NULL;
    6767
    68         /*Read SurfaceEnum from 2D models:SSA, L1L2, MLHO*/
     68        /*Read SurfaceEnum from 2D models:SSA, L1L2, MOLHO*/
    6969        if (domaintype == Domain2DhorizontalEnum) {
    7070                vx_input = topelement->GetInput(VxSurfaceEnum);                                 _assert_(vx_input);
  • issm/trunk-jpl/src/c/modules/SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.cpp

    r26457 r27031  
    7474   Input* vyobs_input  = NULL;
    7575
    76    /*Read SurfaceEnum from 2D models:SSA, L1L2, MLHO*/
     76   /*Read SurfaceEnum from 2D models:SSA, L1L2, MOLHO*/
    7777   if (domaintype == Domain2DhorizontalEnum) {
    7878      vx_input = topelement->GetInput(VxSurfaceEnum);             _assert_(vx_input);
  • issm/trunk-jpl/src/c/modules/SurfaceLogVelMisfitx/SurfaceLogVelMisfitx.cpp

    r26457 r27031  
    6868   Input* vyobs_input  = NULL;
    6969
    70    /*Read SurfaceEnum from 2D models:SSA, L1L2, MLHO*/
     70   /*Read SurfaceEnum from 2D models:SSA, L1L2, MOLHO*/
    7171   if (domaintype == Domain2DhorizontalEnum) {
    7272      vx_input = topelement->GetInput(VxSurfaceEnum);             _assert_(vx_input);
  • issm/trunk-jpl/src/c/modules/SurfaceLogVxVyMisfitx/SurfaceLogVxVyMisfitx.cpp

    r26457 r27031  
    6868   Input* vyobs_input  = NULL;
    6969
    70    /*Read SurfaceEnum from 2D models:SSA, L1L2, MLHO*/
     70   /*Read SurfaceEnum from 2D models:SSA, L1L2, MOLHO*/
    7171   if (domaintype == Domain2DhorizontalEnum) {
    7272      vx_input = topelement->GetInput(VxSurfaceEnum);             _assert_(vx_input);
  • issm/trunk-jpl/src/c/modules/SurfaceRelVelMisfitx/SurfaceRelVelMisfitx.cpp

    r26457 r27031  
    6868   Input* vyobs_input  = NULL;
    6969
    70    /*Read SurfaceEnum from 2D models:SSA, L1L2, MLHO*/
     70   /*Read SurfaceEnum from 2D models:SSA, L1L2, MOLHO*/
    7171   if (domaintype == Domain2DhorizontalEnum) {
    7272      vx_input = topelement->GetInput(VxSurfaceEnum);             _assert_(vx_input);
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r26983 r27031  
    113113syn keyword cConstant CalvingMinthicknessEnum
    114114syn keyword cConstant CalvingTestSpeedfactorEnum
     115syn keyword cConstant CalvingTestIndependentRateEnum
    115116syn keyword cConstant CalvingUseParamEnum
    116117syn keyword cConstant CalvingScaleThetaEnum
     
    175176syn keyword cConstant FlowequationIsHOEnum
    176177syn keyword cConstant FlowequationIsL1L2Enum
    177 syn keyword cConstant FlowequationIsMLHOEnum
     178syn keyword cConstant FlowequationIsMOLHOEnum
    178179syn keyword cConstant FlowequationIsSIAEnum
    179180syn keyword cConstant FlowequationIsSSAEnum
     
    658659syn keyword cConstant CalvingCalvingrateEnum
    659660syn keyword cConstant CalvingHabFractionEnum
     661syn keyword cConstant CalvingAblationrateEnum
    660662syn keyword cConstant CalvingMeltingrateEnum
    661663syn keyword cConstant CalvingStressThresholdFloatingiceEnum
     
    13831385syn keyword cConstant JEnum
    13841386syn keyword cConstant L1L2ApproximationEnum
    1385 syn keyword cConstant MLHOApproximationEnum
     1387syn keyword cConstant MOLHOApproximationEnum
    13861388syn keyword cConstant L2ProjectionBaseAnalysisEnum
    13871389syn keyword cConstant L2ProjectionEPLAnalysisEnum
     
    16221624syn keyword cType Cfsurfacesquare
    16231625syn keyword cType Channel
    1624 syn keyword cType classes
    16251626syn keyword cType Constraint
    16261627syn keyword cType Constraints
     
    16291630syn keyword cType ControlInput
    16301631syn keyword cType Covertree
     1632syn keyword cType DataSetParam
    16311633syn keyword cType DatasetInput
    1632 syn keyword cType DataSetParam
    16331634syn keyword cType Definition
    16341635syn keyword cType DependentObject
     
    16431644syn keyword cType ElementInput
    16441645syn keyword cType ElementMatrix
     1646syn keyword cType ElementVector
    16451647syn keyword cType Elements
    1646 syn keyword cType ElementVector
    16471648syn keyword cType ExponentialVariogram
    16481649syn keyword cType ExternalResult
     
    16511652syn keyword cType Friction
    16521653syn keyword cType Gauss
    1653 syn keyword cType GaussianVariogram
    1654 syn keyword cType gaussobjects
    16551654syn keyword cType GaussPenta
    16561655syn keyword cType GaussSeg
    16571656syn keyword cType GaussTetra
    16581657syn keyword cType GaussTria
     1658syn keyword cType GaussianVariogram
    16591659syn keyword cType GenericExternalResult
    16601660syn keyword cType GenericOption
     
    16721672syn keyword cType IssmDirectApplicInterface
    16731673syn keyword cType IssmParallelDirectApplicInterface
    1674 syn keyword cType krigingobjects
    16751674syn keyword cType Load
    16761675syn keyword cType Loads
     
    16831682syn keyword cType Matice
    16841683syn keyword cType Matlitho
    1685 syn keyword cType matrixobjects
    16861684syn keyword cType MatrixParam
    16871685syn keyword cType Misfit
     
    16961694syn keyword cType Observations
    16971695syn keyword cType Option
     1696syn keyword cType OptionUtilities
    16981697syn keyword cType Options
    1699 syn keyword cType OptionUtilities
    17001698syn keyword cType Param
    17011699syn keyword cType Parameters
     
    17111709syn keyword cType Regionaloutput
    17121710syn keyword cType Results
     1711syn keyword cType RiftStruct
    17131712syn keyword cType Riftfront
    1714 syn keyword cType RiftStruct
    17151713syn keyword cType SealevelGeometry
    17161714syn keyword cType Seg
    17171715syn keyword cType SegInput
     1716syn keyword cType SegRef
    17181717syn keyword cType Segment
    1719 syn keyword cType SegRef
    17201718syn keyword cType SpcDynamic
    17211719syn keyword cType SpcStatic
     
    17361734syn keyword cType Vertex
    17371735syn keyword cType Vertices
     1736syn keyword cType classes
     1737syn keyword cType gaussobjects
     1738syn keyword cType krigingobjects
     1739syn keyword cType matrixobjects
    17381740syn keyword cType AdjointBalancethickness2Analysis
    17391741syn keyword cType AdjointBalancethicknessAnalysis
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27026 r27031  
    170170        FlowequationIsHOEnum,
    171171        FlowequationIsL1L2Enum,
    172         FlowequationIsMLHOEnum,
     172        FlowequationIsMOLHOEnum,
    173173        FlowequationIsSIAEnum,
    174174        FlowequationIsSSAEnum,
     
    13841384        JEnum,
    13851385        L1L2ApproximationEnum,
    1386         MLHOApproximationEnum,
     1386        MOLHOApproximationEnum,
    13871387        L2ProjectionBaseAnalysisEnum,
    13881388        L2ProjectionEPLAnalysisEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r26983 r27031  
    115115                case CalvingMinthicknessEnum : return "CalvingMinthickness";
    116116                case CalvingTestSpeedfactorEnum : return "CalvingTestSpeedfactor";
     117                case CalvingTestIndependentRateEnum : return "CalvingTestIndependentRate";
    117118                case CalvingUseParamEnum : return "CalvingUseParam";
    118119                case CalvingScaleThetaEnum : return "CalvingScaleTheta";
     
    177178                case FlowequationIsHOEnum : return "FlowequationIsHO";
    178179                case FlowequationIsL1L2Enum : return "FlowequationIsL1L2";
    179                 case FlowequationIsMLHOEnum : return "FlowequationIsMLHO";
     180                case FlowequationIsMOLHOEnum : return "FlowequationIsMOLHO";
    180181                case FlowequationIsSIAEnum : return "FlowequationIsSIA";
    181182                case FlowequationIsSSAEnum : return "FlowequationIsSSA";
     
    660661                case CalvingCalvingrateEnum : return "CalvingCalvingrate";
    661662                case CalvingHabFractionEnum : return "CalvingHabFraction";
     663                case CalvingAblationrateEnum : return "CalvingAblationrate";
    662664                case CalvingMeltingrateEnum : return "CalvingMeltingrate";
    663665                case CalvingStressThresholdFloatingiceEnum : return "CalvingStressThresholdFloatingice";
     
    13851387                case JEnum : return "J";
    13861388                case L1L2ApproximationEnum : return "L1L2Approximation";
    1387                 case MLHOApproximationEnum : return "MLHOApproximation";
     1389                case MOLHOApproximationEnum : return "MOLHOApproximation";
    13881390                case L2ProjectionBaseAnalysisEnum : return "L2ProjectionBaseAnalysis";
    13891391                case L2ProjectionEPLAnalysisEnum : return "L2ProjectionEPLAnalysis";
  • issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim

    r26983 r27031  
    106106syn keyword juliaConstC CalvingMinthicknessEnum
    107107syn keyword juliaConstC CalvingTestSpeedfactorEnum
     108syn keyword juliaConstC CalvingTestIndependentRateEnum
    108109syn keyword juliaConstC CalvingUseParamEnum
    109110syn keyword juliaConstC CalvingScaleThetaEnum
     
    168169syn keyword juliaConstC FlowequationIsHOEnum
    169170syn keyword juliaConstC FlowequationIsL1L2Enum
    170 syn keyword juliaConstC FlowequationIsMLHOEnum
     171syn keyword juliaConstC FlowequationIsMOLHOEnum
    171172syn keyword juliaConstC FlowequationIsSIAEnum
    172173syn keyword juliaConstC FlowequationIsSSAEnum
     
    651652syn keyword juliaConstC CalvingCalvingrateEnum
    652653syn keyword juliaConstC CalvingHabFractionEnum
     654syn keyword juliaConstC CalvingAblationrateEnum
    653655syn keyword juliaConstC CalvingMeltingrateEnum
    654656syn keyword juliaConstC CalvingStressThresholdFloatingiceEnum
     
    13761378syn keyword juliaConstC JEnum
    13771379syn keyword juliaConstC L1L2ApproximationEnum
    1378 syn keyword juliaConstC MLHOApproximationEnum
     1380syn keyword juliaConstC MOLHOApproximationEnum
    13791381syn keyword juliaConstC L2ProjectionBaseAnalysisEnum
    13801382syn keyword juliaConstC L2ProjectionEPLAnalysisEnum
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r26983 r27031  
    115115              else if (strcmp(name,"CalvingMinthickness")==0) return CalvingMinthicknessEnum;
    116116              else if (strcmp(name,"CalvingTestSpeedfactor")==0) return CalvingTestSpeedfactorEnum;
     117              else if (strcmp(name,"CalvingTestIndependentRate")==0) return CalvingTestIndependentRateEnum;
    117118              else if (strcmp(name,"CalvingUseParam")==0) return CalvingUseParamEnum;
    118119              else if (strcmp(name,"CalvingScaleTheta")==0) return CalvingScaleThetaEnum;
     
    136137              else if (strcmp(name,"CumBslcOceanPartition")==0) return CumBslcOceanPartitionEnum;
    137138              else if (strcmp(name,"CumGmtslc")==0) return CumGmtslcEnum;
    138               else if (strcmp(name,"CumGmslc")==0) return CumGmslcEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"DamageC1")==0) return DamageC1Enum;
     142              if (strcmp(name,"CumGmslc")==0) return CumGmslcEnum;
     143              else if (strcmp(name,"DamageC1")==0) return DamageC1Enum;
    143144              else if (strcmp(name,"DamageC2")==0) return DamageC2Enum;
    144145              else if (strcmp(name,"DamageC3")==0) return DamageC3Enum;
     
    180181              else if (strcmp(name,"FlowequationIsHO")==0) return FlowequationIsHOEnum;
    181182              else if (strcmp(name,"FlowequationIsL1L2")==0) return FlowequationIsL1L2Enum;
    182               else if (strcmp(name,"FlowequationIsMLHO")==0) return FlowequationIsMLHOEnum;
     183              else if (strcmp(name,"FlowequationIsMOLHO")==0) return FlowequationIsMOLHOEnum;
    183184              else if (strcmp(name,"FlowequationIsSIA")==0) return FlowequationIsSIAEnum;
    184185              else if (strcmp(name,"FlowequationIsSSA")==0) return FlowequationIsSSAEnum;
     
    259260              else if (strcmp(name,"InversionAlgorithm")==0) return InversionAlgorithmEnum;
    260261              else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
    261               else if (strcmp(name,"InversionControlScalingFactors")==0) return InversionControlScalingFactorsEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum;
     265              if (strcmp(name,"InversionControlScalingFactors")==0) return InversionControlScalingFactorsEnum;
     266              else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum;
    266267              else if (strcmp(name,"InversionDxmin")==0) return InversionDxminEnum;
    267268              else if (strcmp(name,"InversionGatol")==0) return InversionGatolEnum;
     
    382383              else if (strcmp(name,"SamplingSeed")==0) return SamplingSeedEnum;
    383384              else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
    384               else if (strcmp(name,"SolidearthPartitionIce")==0) return SolidearthPartitionIceEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"SolidearthPartitionHydro")==0) return SolidearthPartitionHydroEnum;
     388              if (strcmp(name,"SolidearthPartitionIce")==0) return SolidearthPartitionIceEnum;
     389              else if (strcmp(name,"SolidearthPartitionHydro")==0) return SolidearthPartitionHydroEnum;
    389390              else if (strcmp(name,"SolidearthPartitionOcean")==0) return SolidearthPartitionOceanEnum;
    390391              else if (strcmp(name,"SolidearthNpartIce")==0) return SolidearthNpartIceEnum;
     
    505506              else if (strcmp(name,"SmbK")==0) return SmbKEnum;
    506507              else if (strcmp(name,"SmbLapseRates")==0) return SmbLapseRatesEnum;
    507               else if (strcmp(name,"SmbNumBasins")==0) return SmbNumBasinsEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"SmbNumElevationBins")==0) return SmbNumElevationBinsEnum;
     511              if (strcmp(name,"SmbNumBasins")==0) return SmbNumBasinsEnum;
     512              else if (strcmp(name,"SmbNumElevationBins")==0) return SmbNumElevationBinsEnum;
    512513              else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
    513514              else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum;
     
    628629              else if (strcmp(name,"BasalforcingsFloatingiceMeltingRate")==0) return BasalforcingsFloatingiceMeltingRateEnum;
    629630              else if (strcmp(name,"BasalforcingsGeothermalflux")==0) return BasalforcingsGeothermalfluxEnum;
    630               else if (strcmp(name,"BasalforcingsGroundediceMeltingRate")==0) return BasalforcingsGroundediceMeltingRateEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"BasalforcingsLinearBasinId")==0) return BasalforcingsLinearBasinIdEnum;
     634              if (strcmp(name,"BasalforcingsGroundediceMeltingRate")==0) return BasalforcingsGroundediceMeltingRateEnum;
     635              else if (strcmp(name,"BasalforcingsLinearBasinId")==0) return BasalforcingsLinearBasinIdEnum;
    635636              else if (strcmp(name,"BasalforcingsPerturbationMeltingRate")==0) return BasalforcingsPerturbationMeltingRateEnum;
    636637              else if (strcmp(name,"BasalforcingsSpatialDeepwaterElevation")==0) return BasalforcingsSpatialDeepwaterElevationEnum;
     
    675676              else if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum;
    676677              else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum;
     678              else if (strcmp(name,"CalvingAblationrate")==0) return CalvingAblationrateEnum;
    677679              else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum;
    678680              else if (strcmp(name,"CalvingStressThresholdFloatingice")==0) return CalvingStressThresholdFloatingiceEnum;
     
    750752              else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
    751753              else if (strcmp(name,"FrictionPressureAdjustedTemperature")==0) return FrictionPressureAdjustedTemperatureEnum;
    752               else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
    753               else if (strcmp(name,"FrictionSedimentCompressibilityCoefficient")==0) return FrictionSedimentCompressibilityCoefficientEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"FrictionTillFrictionAngle")==0) return FrictionTillFrictionAngleEnum;
     757              if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
     758              else if (strcmp(name,"FrictionSedimentCompressibilityCoefficient")==0) return FrictionSedimentCompressibilityCoefficientEnum;
     759              else if (strcmp(name,"FrictionTillFrictionAngle")==0) return FrictionTillFrictionAngleEnum;
    758760              else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum;
    759761              else if (strcmp(name,"Frictionf")==0) return FrictionfEnum;
     
    873875              else if (strcmp(name,"SealevelBarystaticIceWeights")==0) return SealevelBarystaticIceWeightsEnum;
    874876              else if (strcmp(name,"SealevelBarystaticIceArea")==0) return SealevelBarystaticIceAreaEnum;
    875               else if (strcmp(name,"SealevelBarystaticIceLatbar")==0) return SealevelBarystaticIceLatbarEnum;
    876               else if (strcmp(name,"SealevelBarystaticIceLongbar")==0) return SealevelBarystaticIceLongbarEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"SealevelBarystaticIceLoad")==0) return SealevelBarystaticIceLoadEnum;
     880              if (strcmp(name,"SealevelBarystaticIceLatbar")==0) return SealevelBarystaticIceLatbarEnum;
     881              else if (strcmp(name,"SealevelBarystaticIceLongbar")==0) return SealevelBarystaticIceLongbarEnum;
     882              else if (strcmp(name,"SealevelBarystaticIceLoad")==0) return SealevelBarystaticIceLoadEnum;
    881883              else if (strcmp(name,"SealevelBarystaticHydroMask")==0) return SealevelBarystaticHydroMaskEnum;
    882884              else if (strcmp(name,"SealevelBarystaticHydroWeights")==0) return SealevelBarystaticHydroWeightsEnum;
     
    996998              else if (strcmp(name,"SmbGdnini")==0) return SmbGdniniEnum;
    997999              else if (strcmp(name,"SmbGsp")==0) return SmbGspEnum;
    998               else if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
    999               else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
     1003              if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
     1004              else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
     1005              else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
    10041006              else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum;
    10051007              else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
     
    11191121              else if (strcmp(name,"VxSurface")==0) return VxSurfaceEnum;
    11201122              else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
    1121               else if (strcmp(name,"VyBase")==0) return VyBaseEnum;
    1122               else if (strcmp(name,"Vy")==0) return VyEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
     1126              if (strcmp(name,"VyBase")==0) return VyBaseEnum;
     1127              else if (strcmp(name,"Vy")==0) return VyEnum;
     1128              else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
    11271129              else if (strcmp(name,"VyObs")==0) return VyObsEnum;
    11281130              else if (strcmp(name,"VyShear")==0) return VyShearEnum;
     
    12421244              else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum;
    12431245              else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
    1244               else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
    1245               else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"Outputdefinition9")==0) return Outputdefinition9Enum;
     1249              if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
     1250              else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
     1251              else if (strcmp(name,"Outputdefinition9")==0) return Outputdefinition9Enum;
    12501252              else if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
    12511253              else if (strcmp(name,"InputsEND")==0) return InputsENDEnum;
     
    13651367              else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum;
    13661368              else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
    1367               else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
    1368               else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
    13691369         else stage=12;
    13701370   }
    13711371   if(stage==12){
    1372               if (strcmp(name,"GenericExternalResult")==0) return GenericExternalResultEnum;
     1372              if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
     1373              else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
     1374              else if (strcmp(name,"GenericExternalResult")==0) return GenericExternalResultEnum;
    13731375              else if (strcmp(name,"Gradient1")==0) return Gradient1Enum;
    13741376              else if (strcmp(name,"Gradient2")==0) return Gradient2Enum;
     
    14181420              else if (strcmp(name,"J")==0) return JEnum;
    14191421              else if (strcmp(name,"L1L2Approximation")==0) return L1L2ApproximationEnum;
    1420               else if (strcmp(name,"MLHOApproximation")==0) return MLHOApproximationEnum;
     1422              else if (strcmp(name,"MOLHOApproximation")==0) return MOLHOApproximationEnum;
    14211423              else if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum;
    14221424              else if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum;
     
    14881490              else if (strcmp(name,"Nodal")==0) return NodalEnum;
    14891491              else if (strcmp(name,"Nodalvalue")==0) return NodalvalueEnum;
    1490               else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
    1491               else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
    14921492         else stage=13;
    14931493   }
    14941494   if(stage==13){
    1495               if (strcmp(name,"None")==0) return NoneEnum;
     1495              if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
     1496              else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
     1497              else if (strcmp(name,"None")==0) return NoneEnum;
    14961498              else if (strcmp(name,"Numberedcostfunction")==0) return NumberedcostfunctionEnum;
    14971499              else if (strcmp(name,"NyeCO2")==0) return NyeCO2Enum;
     
    16111613              else if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum;
    16121614              else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum;
    1613               else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
    1614               else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
    16151615         else stage=14;
    16161616   }
    16171617   if(stage==14){
    1618               if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
     1618              if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
     1619              else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
     1620              else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
    16191621              else if (strcmp(name,"Tria")==0) return TriaEnum;
    16201622              else if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
  • issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp

    r26850 r27031  
    345345                case 2: return SSAApproximationEnum;
    346346                case 3: return L1L2ApproximationEnum;
    347                 case 4: return MLHOApproximationEnum;
     347                case 4: return MOLHOApproximationEnum;
    348348                case 5: return HOApproximationEnum;
    349349                case 6: return FSApproximationEnum;
     
    360360                case 2: return SSAApproximationEnum;
    361361                case 3: return L1L2ApproximationEnum;
    362                 case 4: return MLHOApproximationEnum;
     362                case 4: return MOLHOApproximationEnum;
    363363                case 5: return HOApproximationEnum;
    364364                case 6: return FSApproximationEnum;
  • issm/trunk-jpl/src/m/boundaryconditions/SetMOLHOBC.m

    r27030 r27031  
    1 function md=SetMLHOBC(md)
    2 %SETMLHOBC - Create the boundary conditions for stressbalance for MLHO: VxBase, VyBase, VxShear, VyShear
     1function md=SetMOLHOBC(md)
     2%SETMOLHOBC - Create the boundary conditions for stressbalance for MOLHO: VxBase, VyBase, VxShear, VyShear
    33%
    44%   Usage:
    5 %      md=SetMLHOBC(md)
     5%      md=SetMOLHOBC(md)
    66%
    77
    88
    99%node on Dirichlet
    10 if md.flowequation.isMLHO
     10if md.flowequation.isMOLHO
    1111        md.stressbalance.spcvx_base=md.stressbalance.spcvx;
    1212        md.stressbalance.spcvy_base=md.stressbalance.spcvy;
  • issm/trunk-jpl/src/m/boundaryconditions/SetMOLHOBC.py

    r27030 r27031  
    11import numpy as np
    22
    3 
    4 def SetMLHOBC(md):
     3def SetMOLHOBC(md):
    54    """
    6     SETMLHOBC - Create the boundary conditions for stressbalance for MLHO: VxBase, VyBase, VxShear, VyShear
     5    SETMOLHOBC - Create the boundary conditions for stressbalance for MOLHO: VxBase, VyBase, VxShear, VyShear
    76
    87       Usage:
  • issm/trunk-jpl/src/m/classes/flowequation.js

    r26305 r27031  
    2222                fielddisplay(this,'isSSA','is the Shelfy-Stream Approximation (SSA) used ?');
    2323                fielddisplay(this,'isL1L2','is the L1L2 approximation used ?');
    24                 fielddisplay(this,'isMLHO','is the Mono-Layer Higher-Order approximation used?');
     24                fielddisplay(this,'isMOLHO','is the MOno-Layer Higher-Order (MOLHO) approximation used?');
    2525                fielddisplay(this,'isHO','is the Higher-Order (HO) approximation used ?');
    2626                fielddisplay(this,'isFS','are the Full-FS (FS) equations used ?');
     
    4141
    4242        }// }}}
    43     this.extrude = function(md) {//{{{
    44         this.element_equation=project3d(md,'vector',this.element_equation,'type','element');
    45         this.vertex_equation=project3d(md,'vector',this.vertex_equation,'type','node');
    46         this.borderSSA=project3d(md,'vector',this.borderSSA,'type','node');
    47         this.borderHO=project3d(md,'vector',this.borderHO,'type','node');
    48         this.borderFS=project3d(md,'vector',this.borderFS,'type','node');
    49         return this;
     43        this.extrude = function(md) {//{{{
     44                this.element_equation=project3d(md,'vector',this.element_equation,'type','element');
     45                this.vertex_equation=project3d(md,'vector',this.vertex_equation,'type','node');
     46                this.borderSSA=project3d(md,'vector',this.borderSSA,'type','node');
     47                this.borderHO=project3d(md,'vector',this.borderHO,'type','node');
     48                this.borderFS=project3d(md,'vector',this.borderFS,'type','node');
     49                return this;
    5050    }//}}}
    5151                this.checkconsistency = function(md,solution,analyses) {//{{{
     
    5959                        checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0, 1]);
    6060                        checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0, 1]);
    61                         checkfield(md,'fieldname','flowequation.isMLHO','numel',[1],'values',[0, 1]);
     61                        checkfield(md,'fieldname','flowequation.isMOLHO','numel',[1],'values',[0, 1]);
    6262                        checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0, 1]);
    6363                        checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0, 1]);
     
    9393                        else throw Error('Case not supported yet');
    9494                       
    95                         if (!(this.isSIA | this.isSSA | this.isL1L2 | this.isMLHO | this.isHO | this.isFS)){
     95                        if (!(this.isSIA | this.isSSA | this.isL1L2 | this.isMOLHO | this.isHO | this.isFS)){
    9696                                checkmessage(md,['no element types set for this model']);
    9797                        }
     
    108108                        WriteData(fid,prefix,'object',this,'fieldname','isSSA','format','Boolean');
    109109                        WriteData(fid,prefix,'object',this,'fieldname','isL1L2','format','Boolean');
    110                         WriteData(fid,prefix,'object',this,'fieldname','isMLHO','format','Boolean');
     110                        WriteData(fid,prefix,'object',this,'fieldname','isMOLHO','format','Boolean');
    111111                        WriteData(fid,prefix,'object',this,'fieldname','isHO','format','Boolean');
    112112                        WriteData(fid,prefix,'object',this,'fieldname','isFS','format','Boolean');
     
    138138        this.isSSA                          = 0;
    139139        this.isL1L2                         = 0;
    140         this.isMLHO                         = 0;
     140        this.isMOLHO                         = 0;
    141141        this.isHO                           = 0;
    142142        this.isFS                           = 0;
  • issm/trunk-jpl/src/m/classes/flowequation.m

    r26555 r27031  
    99                isSSA                          = 0;
    1010                isL1L2                         = 0;
    11                 isMLHO                         = 0;
     11                isMOLHO                         = 0;
    1212                isHO                           = 0;
    1313                isFS                           = 0;
     
    6060                                if isfield(objstruct,'borderpattyn'),  self.borderHO  = objstruct.borderpattyn;   end;
    6161                                if isfield(objstruct,'borderstokes'),  self.borderFS  = objstruct.borderstokes;   end;
    62                         end
    63 
    64                         %Nov 6 2021
    65                         if any(self.vertex_equation==4)
    66                                 disp(['Monolayer Higher-Order (MLHO) detected in md.flowequation, this is still under development. Please double check your settings.']);
    67                         end
     62
     63                                %May 31 2022
     64                                if isfield(objstruct,'isMLHO')
     65                                        self.isMOLHO = objstruct.isMLHO;
     66                                end
     67                        end
     68
    6869
    6970                end% }}}
     
    104105                        md = checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0 1]);
    105106                        md = checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0 1]);
    106                         md = checkfield(md,'fieldname','flowequation.isMLHO','numel',[1],'values',[0 1]);
     107                        md = checkfield(md,'fieldname','flowequation.isMOLHO','numel',[1],'values',[0 1]);
    107108                        md = checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0 1]);
    108109                        md = checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0 1]);
     
    135136                                error('Case not supported yet');
    136137                        end
    137                         if ~(self.isSIA || self.isSSA || self.isL1L2 || self.isMLHO || self.isHO || self.isFS),
     138                        if ~(self.isSIA || self.isSSA || self.isL1L2 || self.isMOLHO || self.isHO || self.isFS),
    138139                                md = checkmessage(md,['no element types set for this model']);
    139140                        end
     
    153154                        fielddisplay(self,'isSSA','is the Shelfy-Stream Approximation (SSA) used?');
    154155                        fielddisplay(self,'isL1L2','is the L1L2 approximation used?');
    155                         fielddisplay(self,'isMLHO','is the Mono-Layer Higher-Order approximation used?');
     156                        fielddisplay(self,'isMOLHO','is the MOno-Layer Higher-Order (MOLHO) approximation used?');
    156157                        fielddisplay(self,'isHO','is the Higher-Order (HO) approximation used?');
    157158                        fielddisplay(self,'isFS','are the Full-FS (FS) equations used?');
     
    172173                        WriteData(fid,prefix,'object',self,'fieldname','isSSA','format','Boolean');
    173174                        WriteData(fid,prefix,'object',self,'fieldname','isL1L2','format','Boolean');
    174                         WriteData(fid,prefix,'object',self,'fieldname','isMLHO','format','Boolean');
     175                        WriteData(fid,prefix,'object',self,'fieldname','isMOLHO','format','Boolean');
    175176                        WriteData(fid,prefix,'object',self,'fieldname','isHO','format','Boolean');
    176177                        WriteData(fid,prefix,'object',self,'fieldname','isFS','format','Boolean');
     
    197198                        writejsdouble(fid,[modelname '.flowequation.isSSA'],self.isSSA);
    198199                        writejsdouble(fid,[modelname '.flowequation.isL1L2'],self.isL1L2);
    199                         writejsdouble(fid,[modelname '.flowequation.isMLHO'],self.isMLHO);
     200                        writejsdouble(fid,[modelname '.flowequation.isMOLHO'],self.isMOLHO);
    200201                        writejsdouble(fid,[modelname '.flowequation.isHO'],self.isHO);
    201202                        writejsdouble(fid,[modelname '.flowequation.isFS'],self.isFS);
  • issm/trunk-jpl/src/m/classes/flowequation.py

    r26446 r27031  
    1919        self.isSSA = 0
    2020        self.isL1L2 = 0
    21         self.isMLHO = 0
     21        self.isMOLHO = 0
    2222        self.isHO = 0
    2323        self.isFS = 0
     
    4646        s += '{}\n'.format(fielddisplay(self, 'isSSA', "is the Shelfy-Stream Approximation (SSA) used?"))
    4747        s += '{}\n'.format(fielddisplay(self, 'isL1L2', "are L1L2 equations used?"))
    48         s += '{}\n'.format(fielddisplay(self, 'isMLHO', "are Mono-layer Higher-Order equations used?"))
     48        s += '{}\n'.format(fielddisplay(self, 'isMOLHO', "are MOno-layer Higher-Order (MOLHO) equations used?"))
    4949        s += '{}\n'.format(fielddisplay(self, 'isHO', "is the Higher-Order (HO) approximation used?"))
    5050        s += '{}\n'.format(fielddisplay(self, 'isFS', "are the Full-FS (FS) equations used?"))
     
    9090        md = checkfield(md, 'fieldname', 'flowequation.isSSA', 'numel', [1], 'values', [0, 1])
    9191        md = checkfield(md, 'fieldname', 'flowequation.isL1L2', 'numel', [1], 'values', [0, 1])
    92         md = checkfield(md, 'fieldname', 'flowequation.isMLHO', 'numel', [1], 'values', [0, 1])
     92        md = checkfield(md, 'fieldname', 'flowequation.isMOLHO', 'numel', [1], 'values', [0, 1])
    9393        md = checkfield(md, 'fieldname', 'flowequation.isHO', 'numel', [1], 'values', [0, 1])
    9494        md = checkfield(md, 'fieldname', 'flowequation.isFS', 'numel', [1], 'values', [0, 1])
     
    121121            raise RuntimeError('Case not supported yet')
    122122
    123         if not (self.isSIA or self.isSSA or self.isL1L2 or self.isMLHO or self.isHO or self.isFS):
     123        if not (self.isSIA or self.isSSA or self.isL1L2 or self.isMOLHO or self.isHO or self.isFS):
    124124            md.checkmessage("no element types set for this model")
    125125        if 'StressbalanceSIAAnalysis' in analyses:
     
    134134        WriteData(fid, prefix, 'object', self, 'fieldname', 'isSSA', 'format', 'Boolean')
    135135        WriteData(fid, prefix, 'object', self, 'fieldname', 'isL1L2', 'format', 'Boolean')
    136         WriteData(fid, prefix, 'object', self, 'fieldname', 'isMLHO', 'format', 'Boolean')
     136        WriteData(fid, prefix, 'object', self, 'fieldname', 'isMOLHO', 'format', 'Boolean')
    137137        WriteData(fid, prefix, 'object', self, 'fieldname', 'isHO', 'format', 'Boolean')
    138138        WriteData(fid, prefix, 'object', self, 'fieldname', 'isFS', 'format', 'Boolean')
  • issm/trunk-jpl/src/m/classes/inversion.m

    r26478 r27031  
    104104                        %Only SSA, HO and FS are supported right now
    105105                        if strcmp(solution,'StressbalanceSolution')
    106                                 if ~(md.flowequation.isSSA || md.flowequation.isMLHO || md.flowequation.isHO || md.flowequation.isFS || md.flowequation.isL1L2),
    107                                         md = checkmessage(md,['inversion can only be performed for SSA, MLHO, HO or FS ice flow models']);
     106                                if ~(md.flowequation.isSSA || md.flowequation.isMOLHO || md.flowequation.isHO || md.flowequation.isFS || md.flowequation.isL1L2),
     107                                        md = checkmessage(md,['inversion can only be performed for SSA, MOLHO, HO or FS ice flow models']);
    108108                                end
    109109                        end
  • issm/trunk-jpl/src/m/classes/inversion.py

    r26870 r27031  
    151151        # Only SSA, HO and FS are supported right now
    152152        if solution == 'StressbalanceSolution':
    153             if not (md.flowequation.isSSA or md.flowequation.isMLHO or md.flowequation.isHO or md.flowequation.isFS or md.flowequation.isL1L2):
    154                 md.checkmessage("'inversion can only be performed for SSA, MLHO, HO or FS ice flow models")
     153            if not (md.flowequation.isSSA or md.flowequation.isMOLHO or md.flowequation.isHO or md.flowequation.isFS or md.flowequation.isL1L2):
     154                md.checkmessage("'inversion can only be performed for SSA, MOLHO, HO or FS ice flow models")
    155155        if solution == 'BalancethicknessSolution':
    156156            md = checkfield(md, 'fieldname', 'inversion.thickness_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1)
  • issm/trunk-jpl/src/m/classes/stressbalance.m

    r26555 r27031  
    3636                        self.loadingforce=project3d(md,'vector',self.loadingforce,'type','node');
    3737
    38                         % for MLHO
    39                         if md.flowequation.isMLHO
     38                        % for MOLHO
     39                        if md.flowequation.isMOLHO
    4040                                self.spcvx_base=project3d(md,'vector',self.spcvx_base,'type','node');
    4141                                self.spcvy_base=project3d(md,'vector',self.spcvy_base,'type','node');
     
    134134                                md = checkfield(md,'fieldname','stressbalance.FSreconditioning','>',0);
    135135                        end
    136                         % CHECK THIS ONLY WORKS FOR MLHO
    137                         if md.flowequation.isMLHO
     136                        % CHECK THIS ONLY WORKS FOR MOLHO
     137                        if md.flowequation.isMOLHO
    138138                                md = checkfield(md,'fieldname','stressbalance.spcvx_base','Inf',1,'timeseries',1);
    139139                                md = checkfield(md,'fieldname','stressbalance.spcvy_base','Inf',1,'timeseries',1);
     
    169169                        fielddisplay(self,'spcvz','z-axis velocity constraint (NaN means no constraint) [m/yr]');
    170170
    171                         disp(sprintf('\n      %s','MLHO boundary conditions:'));
     171                        disp(sprintf('\n      %s','MOLHO boundary conditions:'));
    172172                        fielddisplay(self,'spcvx_base','x-axis basal velocity constraint (NaN means no constraint) [m/yr]');
    173173                        fielddisplay(self,'spcvy_base','y-axis basal velocity constraint (NaN means no constraint) [m/yr]');
     
    226226                        end
    227227                        WriteData(fid,prefix,'data',outputs,'name','md.stressbalance.requested_outputs','format','StringArray');
    228                         % for MLHO
    229                         if (md.flowequation.isMLHO)
     228                        % for MOLHO
     229                        if (md.flowequation.isMOLHO)
    230230                                WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','spcvx_base','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    231231                                WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','spcvy_base','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
  • issm/trunk-jpl/src/m/classes/stressbalance.py

    r26555 r27031  
    5959        s += '{}\n'.format(fielddisplay(self, 'spcvz', 'z-axis velocity constraint (NaN means no constraint) [m / yr]'))
    6060        s += '{}\n'.format(fielddisplay(self, 'icefront', 'segments on ice front list (last column 0: Air, 1: Water, 2: Ice'))
    61         s += '      MLHO boundary conditions:\n'
     61        s += '      MOLHO boundary conditions:\n'
    6262        s += '{}\n'.format(fielddisplay(self, 'spcvx_base', 'x-axis basal velocity constraint (NaN means no constraint) [m / yr]'))
    6363        s += '{}\n'.format(fielddisplay(self, 'spcvy_base', 'y-axis basal velocity constraint (NaN means no constraint) [m / yr]'))
     
    8686        self.loadingforce = project3d(md, 'vector', self.loadingforce, 'type', 'node')
    8787
    88         if md.flowequation.isMLHO:
     88        if md.flowequation.isMOLHO:
    8989            self.spcvx_base = project3d(md, 'vector', self.spcvx_base, 'type', 'node')
    9090            self.spcvy_base = project3d(md, 'vector', self.spcvy_base, 'type', 'node')
     
    176176            if np.any(np.logical_not(np.isnan(md.stressbalance.referential[pos, :]))):
    177177                md.checkmessage("no referential should be specified for basal vertices of grounded ice")
    178         if md.flowequation.isMLHO:
     178        if md.flowequation.isMOLHO:
    179179            md = checkfield(md, 'fieldname', 'stressbalance.spcvx_base', 'Inf', 1, 'timeseries', 1)
    180180            md = checkfield(md, 'fieldname', 'stressbalance.spcvy_base', 'Inf', 1, 'timeseries', 1)
     
    215215            outputs = outputscopy
    216216        WriteData(fid, prefix, 'data', outputs, 'name', 'md.stressbalance.requested_outputs', 'format', 'StringArray')
    217         # MLHO
    218         if md.flowequation.isMLHO:
     217        # MOLHO
     218        if md.flowequation.isMOLHO:
    219219            WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'spcvx_base', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
    220220            WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'spcvy_base', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
  • issm/trunk-jpl/src/m/parameterization/setflowequation.js

    r25609 r27031  
    33//
    44//   This routine works like plotmodel: it works with an even number of inputs
    5 //   'SIA','SSA','L1L2','MLHO','HO','FS' and 'fill' are the possible options
     5//   'SIA','SSA','L1L2','MOLHO','HO','FS' and 'fill' are the possible options
    66//   that must be followed by the corresponding exp file or flags list
    77//   It can either be a domain file (argus type, .exp extension), or an array of element flags.
     
    1111//   a string 'all' will be considered as the entire domain
    1212//   You can specify the type of coupling, 'penalties' or 'tiling', to use with the input 'coupling'
    13 //   NB: L1L2 and MLHO cannot currently be coupled to any other ice flow model
     13//   NB: L1L2 and MOLHO cannot currently be coupled to any other ice flow model
    1414//
    1515//   Usage:
     
    3838        HOflag   = FlagElements(md,options.getfieldvalue('HO',''));
    3939        L1L2flag = FlagElements(md,options.getfieldvalue('L1L2',''));
    40         MLHOflag = FlagElements(md,options.getfieldvalue('MLHO',''));
     40        MOLHOflag = FlagElements(md,options.getfieldvalue('MOLHO',''));
    4141        FSflag   = FlagElements(md,options.getfieldvalue('FS',''));
    4242        filltype = options.getfieldvalue('fill','none');
     
    5555
    5656        //check that each element has at least one flag
    57         for(var i=0;i<md.mesh.numberofelements;i++)if((SIAflag[i] + SSAflag[i] + HOflag[i] + L1L2flag[i] + MLHOflag[i] + FSflag[i])==0)
     57        for(var i=0;i<md.mesh.numberofelements;i++)if((SIAflag[i] + SSAflag[i] + HOflag[i] + L1L2flag[i] + MOLHOflag[i] + FSflag[i])==0)
    5858        throw Error("elements type not assigned, supported models are 'SIA','SSA','HO' and 'FS'");
    5959
    6060        //check that each element has only one flag
    61         if (ArrayAnyAboveStrict(ArrayXPY(SIAflag,SSAflag,HOflag,L1L2flag,MLHOflag),1)){
     61        if (ArrayAnyAboveStrict(ArrayXPY(SIAflag,SSAflag,HOflag,L1L2flag,MOLHOflag),1)){
    6262                console.log('setflowequation warning message: some elements have several types, higher order type is used for them')
    6363
     
    7171        //check that L1L2 is not coupled to any other model for now
    7272        if (ArrayAnyEqual(L1L2flag,1) & ArrayAnyEqual(ArrayOr(SIAflag,SSAflag,HOflag,FSflag),1)) throw Error('L1L2 cannot be coupled to any other model');
    73         if (ArrayAnyEqual(MLHOflag,1) & ArrayAnyEqual(ArrayOr(SIAflag,SSAflag,HOflag,FSflag),1)) throw Error('MLHO cannot be coupled to any other model');
     73        if (ArrayAnyEqual(MOLHOflag,1) & ArrayAnyEqual(ArrayOr(SIAflag,SSAflag,HOflag,FSflag),1)) throw Error('MOLHO cannot be coupled to any other model');
    7474
    7575        //Check that no HO or FS for 2d mesh
     
    100100        for(var i=0;i<pos.length;i++) for(var j=0;j<md.mesh.elements[0].length;j++) nodeonL1L2[md.mesh.elements[pos[i]][j]-1]=1;
    101101
    102         nodeonMLHO=NewArrayFill(md.mesh.numberofvertices,0);
    103         pos=ArrayFind(MLHOflag,1);
    104         for(var i=0;i<pos.length;i++) for(var j=0;j<md.mesh.elements[0].length;j++) nodeonMLHO[md.mesh.elements[pos[i]][j]-1]=1;
     102        nodeonMOLHO=NewArrayFill(md.mesh.numberofvertices,0);
     103        pos=ArrayFind(MOLHOflag,1);
     104        for(var i=0;i<pos.length;i++) for(var j=0;j<md.mesh.elements[0].length;j++) nodeonMOLHO[md.mesh.elements[pos[i]][j]-1]=1;
    105105
    106106        nodeonFS=NewArrayFill(md.mesh.numberofvertices,0);
     
    262262        pos=ArrayFind(SSAflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=2;
    263263        pos=ArrayFind(L1L2flag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=3;
    264         pos=ArrayFind(MLHOflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=4;
     264        pos=ArrayFind(MOLHOflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=4;
    265265        pos=ArrayFind(HOflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=5;
    266266        pos=ArrayFind(FSflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=6;
     
    281281        pos=ArrayFind(nodeonSSA,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=2;
    282282        pos=ArrayFind(nodeonL1L2,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=3;
    283         pos=ArrayFind(nodeonMLHO,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=4;
     283        pos=ArrayFind(nodeonMOLHO,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=4;
    284284        pos=ArrayFind(nodeonHO,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=5;
    285285        pos=ArrayFind(nodeonFS,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=6;
     
    301301        md.flowequation.isSSA  = ArrayAnyEqual(md.flowequation.element_equation,2);
    302302        md.flowequation.isL1L2 = ArrayAnyEqual(md.flowequation.element_equation,3);
    303         md.flowequation.isMLHO = ArrayAnyEqual(md.flowequation.element_equation,4);
     303        md.flowequation.isMOLHO = ArrayAnyEqual(md.flowequation.element_equation,4);
    304304        md.flowequation.isHO   = ArrayAnyEqual(md.flowequation.element_equation,5);
    305305        md.flowequation.isFS   = ArrayAnyEqual(md.flowequation.element_equation,6);
  • issm/trunk-jpl/src/m/parameterization/setflowequation.m

    r26352 r27031  
    33%
    44%   This routine works like plotmodel: it works with an even number of inputs
    5 %   'SIA','SSA','L1L2','MLHO','HO','FS' and 'fill' are the possible options
     5%   'SIA','SSA','L1L2','MOLHO','HO','FS' and 'fill' are the possible options
    66%   that must be followed by the corresponding exp file or flags list
    77%   It can either be a domain file (argus type, .exp extension), or an array of element flags.
     
    1111%   a string 'all' will be considered as the entire domain
    1212%   You can specify the type of coupling, 'penalties' or 'tiling', to use with the input 'coupling'
    13 %   NB: L1L2 and MLHO cannot currently be coupled to any other ice flow model
     13%   NB: L1L2 and MOLHO cannot currently be coupled to any other ice flow model
    1414%
    1515%   Usage:
     
    3939HOflag   = FlagElements(md,getfieldvalue(options,'HO',''));
    4040L1L2flag = FlagElements(md,getfieldvalue(options,'L1L2',''));
    41 MLHOflag = FlagElements(md,getfieldvalue(options,'MLHO',''));
     41MOLHOflag = FlagElements(md,getfieldvalue(options,'MOLHO',''));
    4242FSflag   = FlagElements(md,getfieldvalue(options,'FS',''));
    4343filltype = getfieldvalue(options,'fill','none');
     
    5454
    5555%check that each element has at least one flag
    56 if any(SIAflag+SSAflag+HOflag+L1L2flag+MLHOflag+FSflag==0),
     56if any(SIAflag+SSAflag+HOflag+L1L2flag+MOLHOflag+FSflag==0),
    5757        error('elements type not assigned, supported models are ''SIA'',''SSA'',''HO'' and ''FS''')
    5858end
    5959
    6060%check that each element has only one flag
    61 if any(SIAflag+SSAflag+HOflag+L1L2flag+MLHOflag+FSflag>1),
     61if any(SIAflag+SSAflag+HOflag+L1L2flag+MOLHOflag+FSflag>1),
    6262        disp('setflowequation.m: Warning: some elements have several types, higher order type is used for them')
    6363        SIAflag(find(SIAflag & SSAflag))=0;
     
    7070        error('L1L2 cannot be coupled to any other model');
    7171end
    72 if any(MLHOflag) & any(SIAflag | SSAflag | HOflag | FSflag)
    73         error('MLHO cannot be coupled to any other model');
     72if any(MOLHOflag) & any(SIAflag | SSAflag | HOflag | FSflag)
     73        error('MOLHO cannot be coupled to any other model');
    7474end
    7575
     
    9191nodeonHO=zeros(md.mesh.numberofvertices,1);   nodeonHO(md.mesh.elements(find(HOflag),:))=1;
    9292nodeonL1L2=zeros(md.mesh.numberofvertices,1); nodeonL1L2(md.mesh.elements(find(L1L2flag),:))=1;
    93 nodeonMLHO=zeros(md.mesh.numberofvertices,1); nodeonMLHO(md.mesh.elements(find(MLHOflag),:))=1;
     93nodeonMOLHO=zeros(md.mesh.numberofvertices,1); nodeonMOLHO(md.mesh.elements(find(MOLHOflag),:))=1;
    9494nodeonFS=zeros(md.mesh.numberofvertices,1);
    9595noneflag=zeros(md.mesh.numberofelements,1);
     
    248248md.flowequation.element_equation(find(SSAflag))=2;
    249249md.flowequation.element_equation(find(L1L2flag))=3;
    250 md.flowequation.element_equation(find(MLHOflag))=4;
     250md.flowequation.element_equation(find(MOLHOflag))=4;
    251251md.flowequation.element_equation(find(HOflag))=5;
    252252md.flowequation.element_equation(find(FSflag))=6;
     
    264264pos=find(nodeonSSA);  md.flowequation.vertex_equation(pos)=2;
    265265pos=find(nodeonL1L2); md.flowequation.vertex_equation(pos)=3;
    266 pos=find(nodeonMLHO); md.flowequation.vertex_equation(pos)=4;
     266pos=find(nodeonMOLHO); md.flowequation.vertex_equation(pos)=4;
    267267pos=find(nodeonHO);   md.flowequation.vertex_equation(pos)=5;
    268268pos=find(nodeonFS);   md.flowequation.vertex_equation(pos)=6;
     
    287287md.flowequation.isSSA  = double(any(md.flowequation.element_equation == 2));
    288288md.flowequation.isL1L2 = double(any(md.flowequation.element_equation == 3));
    289 md.flowequation.isMLHO = double(any(md.flowequation.element_equation == 4));
     289md.flowequation.isMOLHO = double(any(md.flowequation.element_equation == 4));
    290290md.flowequation.isHO   = double(any(md.flowequation.element_equation == 5));
    291291md.flowequation.isFS   = double(any(md.flowequation.element_equation == 6));
  • issm/trunk-jpl/src/m/parameterization/setflowequation.py

    r26352 r27031  
    99
    1010    This routine works like plotmodel: it works with an even number of inputs
    11     'SIA', 'SSA', 'HO', 'L1L2', 'MLHO', 'FS' and 'fill' are the possible
     11    'SIA', 'SSA', 'HO', 'L1L2', 'MOLHO', 'FS' and 'fill' are the possible
    1212    options that must be followed by the corresponding exp file or flags list.
    1313    It can either be a domain file (argus type, .exp extension), or an array of
     
    4545    HOflag = FlagElements(md, options.getfieldvalue('HO', ''))
    4646    L1L2flag = FlagElements(md, options.getfieldvalue('L1L2', ''))
    47     MLHOflag = FlagElements(md, options.getfieldvalue('MLHO', ''))
     47    MOLHOflag = FlagElements(md, options.getfieldvalue('MOLHO', ''))
    4848    FSflag = FlagElements(md, options.getfieldvalue('FS', ''))
    4949    filltype = options.getfieldvalue('fill', 'none')
     
    5757        HOflag = ~SIAflag & ~SSAflag & ~FSflag
    5858    #check that each element has at least one flag
    59     if not any(SIAflag + SSAflag + L1L2flag + MLHOflag + HOflag + FSflag):
     59    if not any(SIAflag + SSAflag + L1L2flag + MOLHOflag + HOflag + FSflag):
    6060        raise TypeError("elements type not assigned, supported models are 'SIA', 'SSA', 'HO' and 'FS'")
    6161
    6262    #check that each element has only one flag
    63     if any(SIAflag + SSAflag + L1L2flag + MLHOflag + HOflag + FSflag > 1):
     63    if any(SIAflag + SSAflag + L1L2flag + MOLHOflag + HOflag + FSflag > 1):
    6464        print('Warning: setflowequation.py: some elements have several types, higher order type is used for them')
    6565        SIAflag[np.where(np.logical_and(SIAflag, SSAflag))] = False
     
    6767        SSAflag[np.where(np.logical_and(SSAflag, HOflag))] = False
    6868
    69         #check that L1L2 and MLHO is not coupled to any other model for now
     69        #check that L1L2 and MOLHO is not coupled to any other model for now
    7070        if any(L1L2flag) and any(SIAflag + SSAflag + HOflag + FSflag):
    7171            raise TypeError('L1L2 cannot be coupled to any other model')
    72         if any(MLHOflag) and any(SIAflag + SSAflag + HOflag + FSflag):
    73             raise TypeError('MLHO cannot be coupled to any other model')
     72        if any(MOLHOflag) and any(SIAflag + SSAflag + HOflag + FSflag):
     73            raise TypeError('MOLHO cannot be coupled to any other model')
    7474
    7575        #Check that no HO or FS for 2d mesh
     
    8989    nodeonL1L2 = np.zeros(md.mesh.numberofvertices, bool)
    9090    nodeonL1L2[md.mesh.elements[np.where(L1L2flag), :] - 1] = True
    91     nodeonMLHO = np.zeros(md.mesh.numberofvertices, bool)
    92     nodeonMLHO[md.mesh.elements[np.where(MLHOflag), :] - 1] = True
     91    nodeonMOLHO = np.zeros(md.mesh.numberofvertices, bool)
     92    nodeonMOLHO[md.mesh.elements[np.where(MOLHOflag), :] - 1] = True
    9393    nodeonHO = np.zeros(md.mesh.numberofvertices, bool)
    9494    nodeonHO[md.mesh.elements[np.where(HOflag), :] - 1] = True
     
    241241    md.flowequation.element_equation[np.where(SSAflag)] = 2
    242242    md.flowequation.element_equation[np.where(L1L2flag)] = 3
    243     md.flowequation.element_equation[np.where(MLHOflag)] = 4
     243    md.flowequation.element_equation[np.where(MOLHOflag)] = 4
    244244    md.flowequation.element_equation[np.where(HOflag)] = 5
    245245    md.flowequation.element_equation[np.where(FSflag)] = 6
     
    259259    pos = np.where(nodeonL1L2)
    260260    md.flowequation.vertex_equation[pos] = 3
    261     pos = np.where(nodeonMLHO)
     261    pos = np.where(nodeonMOLHO)
    262262    md.flowequation.vertex_equation[pos] = 4
    263263    pos = np.where(nodeonHO)
     
    283283    md.flowequation.isSSA = any(md.flowequation.element_equation == 2)
    284284    md.flowequation.isL1L2= any(md.flowequation.element_equation == 3)
    285     md.flowequation.isMLHO= any(md.flowequation.element_equation == 4)
     285    md.flowequation.isMOLHO= any(md.flowequation.element_equation == 4)
    286286    md.flowequation.isHO = any(md.flowequation.element_equation == 5)
    287287    md.flowequation.isFS = any(md.flowequation.element_equation == 6)
  • issm/trunk-jpl/src/m/plot/plot_elementstype.m

    r25609 r27031  
    3737        end
    3838end
    39 legend(p,'None','SIA','SSA','L1L2','MLHO','HO',...
     39legend(p,'None','SIA','SSA','L1L2','MOLHO','HO',...
    4040                'SSAHO','FS','SSAFS','HOFS');
    4141
  • issm/trunk-jpl/test/NightlyRun/test127.m

    r26555 r27031  
    1 %Test Name: SquareShelfConstrainedStressMLHO2d
     1%Test Name: SquareShelfConstrainedStressMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',50000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelfConstrained.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',2);
    77
    88%output
    9 %FIXME compute the stress components for MLHO
     9%FIXME compute the stress components for MOLHO
    1010md.stressbalance.requested_outputs={'default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase','MassFlux1','MassFlux2','MassFlux3','MassFlux4','MassFlux5','MassFlux6'};
    1111%md.stressbalance.requested_outputs={'default','DeviatoricStressxx','DeviatoricStressyy','DeviatoricStressxy','MassFlux1','MassFlux2','MassFlux3','MassFlux4','MassFlux5','MassFlux6'};
     
    1818        massfluxatgate('name','MassFlux6','profilename',['../Exp/MassFlux6.exp'],'definitionstring','Outputdefinition6')...
    1919        };
    20 md=SetMLHOBC(md);
     20md=SetMOLHOBC(md);
    2121md=solve(md,'Stressbalance');
    2222
  • issm/trunk-jpl/test/NightlyRun/test127.py

    r26584 r27031  
    1 #Test Name: SquareShelfConstrainedStressMLHO2d
     1#Test Name: SquareShelfConstrainedStressMOLHO2d
    22from model import *
    33from socket import gethostname
     
    99from massfluxatgate import massfluxatgate
    1010from generic import generic
    11 from SetMLHOBC import SetMLHOBC
     11from SetMOLHOBC import SetMOLHOBC
    1212
    1313md = triangle(model(), '../Exp/Square.exp', 50000)
    1414md = setmask(md, 'all', '')
    1515md = parameterize(md, '../Par/SquareShelfConstrained.py')
    16 md = setflowequation(md, 'MLHO', 'all')
     16md = setflowequation(md, 'MOLHO', 'all')
    1717md.cluster = generic('name', gethostname(), 'np', 2)
    1818#outputs
    19 #FIXME compute the stress components for MLHO
     19#FIXME compute the stress components for MOLHO
    2020md.stressbalance.requested_outputs = ['default', 'VxSurface', 'VySurface', 'VxShear', 'VyShear', 'VxBase', 'VyBase', 'MassFlux1', 'MassFlux2', 'MassFlux3', 'MassFlux4', 'MassFlux5', 'MassFlux6']
    2121#md.stressbalance.requested_outputs = ['default', 'DeviatoricStressxx', 'DeviatoricStressyy', 'DeviatoricStressxy', 'MassFlux1', 'MassFlux2', 'MassFlux3', 'MassFlux4', 'MassFlux5', 'MassFlux6']
     
    2626                                   massfluxatgate('name', 'MassFlux5', 'profilename', '../Exp/MassFlux5.exp', 'definitionstring', 'Outputdefinition5'),
    2727                                   massfluxatgate('name', 'MassFlux6', 'profilename', '../Exp/MassFlux6.exp', 'definitionstring', 'Outputdefinition6')]
    28 md = SetMLHOBC(md)
     28md = SetMOLHOBC(md)
    2929md = solve(md, 'Stressbalance')
    3030
  • issm/trunk-jpl/test/NightlyRun/test128.m

    r26555 r27031  
    1 %Test Name: SquareShelfConstrainedTranMLHO2d
     1%Test Name: SquareShelfConstrainedTranMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelfConstrained.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77md.transient.requested_outputs={'IceVolume','VxShear','VyShear','VxBase','VyBase','VxSurface','VySurface'};
    88
    9 md=SetMLHOBC(md);
     9md=SetMOLHOBC(md);
    1010md=solve(md,'Transient');
    1111
  • issm/trunk-jpl/test/NightlyRun/test128.py

    r26897 r27031  
    1 #Test Name: SquareShelfConstrainedTranMLHO2d
     1#Test Name: SquareShelfConstrainedTranMOLHO2d
    22from model import *
    3 from SetMLHOBC import SetMLHOBC
     3from SetMOLHOBC import SetMOLHOBC
    44from socket import gethostname
    55from triangle import *
     
    1313md = setmask(md, 'all', '')
    1414md = parameterize(md, '../Par/SquareShelfConstrained.py')
    15 md = setflowequation(md, 'MLHO', 'all')
     15md = setflowequation(md, 'MOLHO', 'all')
    1616md.cluster = generic('name', gethostname(), 'np', 3)
    1717md.transient.requested_outputs = ['IceVolume','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase']
    1818
    19 md = SetMLHOBC(md)
     19md = SetMOLHOBC(md)
    2020md = solve(md, 'Transient')
    2121
  • issm/trunk-jpl/test/NightlyRun/test129.m

    r26555 r27031  
    1 %Test Name: SquareShelfConstrainedRestartTranMLHO2d
     1%Test Name: SquareShelfConstrainedRestartTranMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelfConstrained.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',1);
    77md.transient.requested_outputs={'IceVolume','TotalSmb','VxShear','VyShear','VxBase','VyBase','VxSurface','VySurface'};
     
    1414md.settings.output_frequency=2;
    1515
    16 md=SetMLHOBC(md);
     16md=SetMOLHOBC(md);
    1717md=solve(md,'Transient');
    1818md2=solve(md,'Transient','restart',1);
  • issm/trunk-jpl/test/NightlyRun/test129.py

    r26897 r27031  
    1 #Test Name: SquareShelfConstrainedRestartTranMLHO2d
     1#Test Name: SquareShelfConstrainedRestartTranMOLHO2d
    22from model import *
    33from socket import gethostname
    4 from SetMLHOBC import SetMLHOBC
     4from SetMOLHOBC import SetMOLHOBC
    55from triangle import *
    66from setmask import *
     
    1414md = setmask(md, 'all', '')
    1515md = parameterize(md, '../Par/SquareShelfConstrained.py')
    16 md = setflowequation(md, 'MLHO', 'all')
     16md = setflowequation(md, 'MOLHO', 'all')
    1717md.cluster = generic('name', gethostname(), 'np', 1)
    1818md.transient.requested_outputs = ['IceVolume', 'TotalSmb', 'VxShear','VyShear','VxBase','VyBase','VxSurface','VySurface']
     
    2424md.timestepping.final_time = 19
    2525md.settings.output_frequency = 2
    26 md = SetMLHOBC(md)
     26md = SetMOLHOBC(md)
    2727
    2828md = solve(md, 'Transient')
  • issm/trunk-jpl/test/NightlyRun/test248.m

    r26555 r27031  
    1 %Test Name: SquareShelfStressMLHO2d
     1%Test Name: SquareShelfStressMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77md.stressbalance.requested_outputs={'default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase'};
    8 md=SetMLHOBC(md);
     8md=SetMOLHOBC(md);
    99md=solve(md,'Stressbalance');
    1010
  • issm/trunk-jpl/test/NightlyRun/test248.py

    r26897 r27031  
    1 #Test Name: SquareShelfStressMLHO2d
     1#Test Name: SquareShelfStressMOLHO2d
    22from model import *
    33from socket import gethostname
     
    77from setflowequation import setflowequation
    88from solve import solve
    9 from SetMLHOBC import SetMLHOBC
     9from SetMOLHOBC import SetMOLHOBC
    1010
    1111md = triangle(model(), '../Exp/Square.exp', 150000)
    1212md = setmask(md, 'all', '')
    1313md = parameterize(md, '../Par/SquareShelf.py')
    14 md = setflowequation(md, 'MLHO', 'all')
     14md = setflowequation(md, 'MOLHO', 'all')
    1515md.cluster = generic('name', gethostname(), 'np', 3)
    1616md.stressbalance.requested_outputs = ['default', 'VxSurface', 'VySurface', 'VxShear', 'VyShear', 'VxBase', 'VyBase']
    17 md = SetMLHOBC(md)
     17md = SetMOLHOBC(md)
    1818md = solve(md, 'Stressbalance')
    1919
  • issm/trunk-jpl/test/NightlyRun/test249.m

    r26555 r27031  
    1 %Test Name: SquareShelfTranMLHO2d
     1%Test Name: SquareShelfTranMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77md.transient.requested_outputs={'default','FloatingArea','GroundedArea','TotalGroundedBmb','TotalFloatingBmb'};
    88md.basalforcings.floatingice_melting_rate(:)=1;
    9 md=SetMLHOBC(md);
     9md=SetMOLHOBC(md);
    1010md=solve(md,'Transient');
    1111
  • issm/trunk-jpl/test/NightlyRun/test249.py

    r26897 r27031  
    1 #Test Name: SquareShelfTranMLHO2d
     1#Test Name: SquareShelfTranMOLHO2d
    22
    33from model import *
     
    99from solve import solve
    1010from generic import generic
    11 from SetMLHOBC import SetMLHOBC
     11from SetMOLHOBC import SetMOLHOBC
    1212
    1313md = triangle(model(), '../Exp/Square.exp', 150000)
     
    1515md = parameterize(md, '../Par/SquareShelf.py')
    1616md.basalforcings.floatingice_melting_rate[:] = 1.
    17 md = setflowequation(md, 'MLHO', 'all')
     17md = setflowequation(md, 'MOLHO', 'all')
    1818md.cluster = generic('name', gethostname(), 'np', 3)
    1919md.transient.requested_outputs = ['default', 'FloatingArea', 'GroundedArea', 'TotalFloatingBmb', 'TotalGroundedBmb']
    20 md = SetMLHOBC(md)
     20md = SetMOLHOBC(md)
    2121md = solve(md, 'Transient')
    2222
  • issm/trunk-jpl/test/NightlyRun/test254.m

    r26555 r27031  
    1 %Test Name: SquareShelfConstrainedMLHO
     1%Test Name: SquareShelfConstrainedMOLHO
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77
     
    5858
    5959md.stressbalance.requested_outputs={'default','VySurface','VyShear','VyBase'};
    60 md=SetMLHOBC(md);
     60md=SetMOLHOBC(md);
    6161md=solve(md,'Stressbalance');
    6262
  • issm/trunk-jpl/test/NightlyRun/test254.py

    r26637 r27031  
    1 #Test Name: SquareShelfConstrainedMLHO
     1#Test Name: SquareShelfConstrainedMOLHO
    22from model import *
    33from socket import gethostname
     
    99from paterson import paterson
    1010from solve import solve
    11 from SetMLHOBC import SetMLHOBC
     11from SetMOLHOBC import SetMOLHOBC
    1212from generic import generic
    1313
     
    1515md = setmask(md, 'all', '')
    1616md = parameterize(md, '../Par/SquareShelf.py')
    17 md = setflowequation(md, 'MLHO', 'all')
     17md = setflowequation(md, 'MOLHO', 'all')
    1818md.cluster = generic('name', gethostname(), 'np', 3)
    1919
     
    7171
    7272md.stressbalance.requested_outputs = ['default', 'VySurface', 'VyShear', 'VyBase']
    73 md = SetMLHOBC(md)
     73md = SetMOLHOBC(md)
    7474md = solve(md, 'Stressbalance')
    7575
  • issm/trunk-jpl/test/NightlyRun/test255.m

    r26555 r27031  
    1 %Test Name: SquareShelfStressMLHO2dTransientIncrHydro
     1%Test Name: SquareShelfStressMOLHO2dTransientIncrHydro
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77md.masstransport.hydrostatic_adjustment='Incremental';
    8 md=SetMLHOBC(md);
     8md=SetMOLHOBC(md);
    99md=solve(md,'Transient');
    1010
  • issm/trunk-jpl/test/NightlyRun/test255.py

    r26637 r27031  
    1 #Test Name: SquareShelfStressMLHO2dTransientIncrHydro
     1#Test Name: SquareShelfStressMOLHO2dTransientIncrHydro
    22from model import *
    33from socket import gethostname
     
    77from setflowequation import setflowequation
    88from solve import solve
    9 from SetMLHOBC import SetMLHOBC
     9from SetMOLHOBC import SetMOLHOBC
    1010
    1111md = triangle(model(), '../Exp/Square.exp', 150000.)
    1212md = setmask(md, 'all', '')
    1313md = parameterize(md, '../Par/SquareShelf.py')
    14 md = setflowequation(md, 'MLHO', 'all')
     14md = setflowequation(md, 'MOLHO', 'all')
    1515md.cluster = generic('name', gethostname(), 'np', 3)
    1616md.masstransport.hydrostatic_adjustment = 'Incremental'
    17 md = SetMLHOBC(md)
     17md = SetMOLHOBC(md)
    1818md = solve(md, 'Transient')
    1919
  • issm/trunk-jpl/test/NightlyRun/test256.m

    r26555 r27031  
    1 %Test Name: SquareShelfStressMLHO2dTransientIncrNonHydro
     1%Test Name: SquareShelfStressMOLHO2dTransientIncrNonHydro
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.geometry.base=md.geometry.base+50.; md.geometry.surface=md.geometry.surface+50.;
    77md.cluster=generic('name',oshostname(),'np',1);
    88md.masstransport.hydrostatic_adjustment='Incremental';
    9 md=SetMLHOBC(md);
     9md=SetMOLHOBC(md);
    1010md=solve(md,'Transient');
    1111
  • issm/trunk-jpl/test/NightlyRun/test256.py

    r26897 r27031  
    1 #Test Name: SquareShelfStressMLHO2dTransientIncrNonHydro
     1#Test Name: SquareShelfStressMOLHO2dTransientIncrNonHydro
    22from model import *
    33from socket import gethostname
     
    77from setflowequation import setflowequation
    88from solve import solve
    9 from SetMLHOBC import SetMLHOBC
     9from SetMOLHOBC import SetMOLHOBC
    1010
    1111
     
    1313md = setmask(md, 'all', '')
    1414md = parameterize(md, '../Par/SquareShelf.py')
    15 md = setflowequation(md, 'MLHO', 'all')
     15md = setflowequation(md, 'MOLHO', 'all')
    1616md.geometry.base = md.geometry.base + 50.
    1717md.geometry.surface = md.geometry.surface + 50.
    1818md.cluster = generic('name', gethostname(), 'np', 1)
    1919md.masstransport.hydrostatic_adjustment = 'Incremental'
    20 md = SetMLHOBC(md)
     20md = SetMOLHOBC(md)
    2121md = solve(md, 'Transient')
    2222
  • issm/trunk-jpl/test/NightlyRun/test330.m

    r26555 r27031  
    1 %Test Name: SquareSheetConstrainedStressMLHO2d
     1%Test Name: SquareSheetConstrainedStressMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'','');
    44md=parameterize(md,'../Par/SquareSheetConstrained.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77md.stressbalance.requested_outputs={'default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase'};
    8 md=SetMLHOBC(md);
     8md=SetMOLHOBC(md);
    99md=solve(md,'Stressbalance');
    1010
  • issm/trunk-jpl/test/NightlyRun/test330.py

    r26637 r27031  
    1 #Test Name: SquareSheetConstrainedStressMLHO2d
     1#Test Name: SquareSheetConstrainedStressMOLHO2d
    22from model import *
    33from socket import gethostname
     
    77from setflowequation import setflowequation
    88from solve import solve
    9 from SetMLHOBC import SetMLHOBC
     9from SetMOLHOBC import SetMOLHOBC
    1010
    1111
     
    1313md = setmask(md, '', '')
    1414md = parameterize(md, '../Par/SquareSheetConstrained.py')
    15 md = setflowequation(md, 'MLHO', 'all')
     15md = setflowequation(md, 'MOLHO', 'all')
    1616md.cluster = generic('name', gethostname(), 'np', 3)
    1717md.stressbalance.requested_outputs = ['default', 'VxSurface', 'VySurface', 'VxShear', 'VyShear', 'VxBase', 'VyBase']
    18 md = SetMLHOBC(md)
     18md = SetMOLHOBC(md)
    1919md = solve(md, 'Stressbalance')
    2020
  • issm/trunk-jpl/test/NightlyRun/test332.m

    r26555 r27031  
    1 %Test Name: SquareSheetConstrainedTranMLHO2d
     1%Test Name: SquareSheetConstrainedTranMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'','');
    44md=parameterize(md,'../Par/SquareSheetConstrained.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    7 md=SetMLHOBC(md);
     7md=SetMOLHOBC(md);
    88md=solve(md,'Transient');
    99
  • issm/trunk-jpl/test/NightlyRun/test332.py

    r26637 r27031  
    1 #Test Name: SquareSheetConstrainedTranMLHO2d
     1#Test Name: SquareSheetConstrainedTranMOLHO2d
    22from model import *
    33from socket import gethostname
     
    77from setflowequation import setflowequation
    88from solve import solve
    9 from SetMLHOBC import SetMLHOBC
     9from SetMOLHOBC import SetMOLHOBC
    1010
    1111md = triangle(model(), '../Exp/Square.exp', 150000.)
    1212md = setmask(md, '', '')
    1313md = parameterize(md, '../Par/SquareSheetConstrained.py')
    14 md = setflowequation(md, 'MLHO', 'all')
     14md = setflowequation(md, 'MOLHO', 'all')
    1515md.cluster = generic('name', gethostname(), 'np', 3)
    16 md = SetMLHOBC(md)
     16md = SetMOLHOBC(md)
    1717md = solve(md, 'Transient')
    1818
  • issm/trunk-jpl/test/NightlyRun/test333.m

    r26555 r27031  
    1 %Test Name: SquareSheetConstrainedCMDragMLHO
     1%Test Name: SquareSheetConstrainedCMDragMOLHO
    22md=triangle(model(),'../Exp/Square.exp',200000.);
    33md=setmask(md,'','');
    44md=parameterize(md,'../Par/SquareSheetConstrained.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66
    77%control parameters
     
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
    21 md=SetMLHOBC(md);
     21md=SetMOLHOBC(md);
    2222md=solve(md,'Stressbalance');
    2323
  • issm/trunk-jpl/test/NightlyRun/test333.py

    r26897 r27031  
    1 #Test Name: SquareSheetConstrainedCMDragMLHO
     1#Test Name: SquareSheetConstrainedCMDragMOLHO
    22import numpy as np
    33from model import *
     
    88from setflowequation import setflowequation
    99from solve import solve
    10 from SetMLHOBC import SetMLHOBC
     10from SetMOLHOBC import SetMOLHOBC
    1111
    1212
     
    1414md = setmask(md, '', '')
    1515md = parameterize(md, '../Par/SquareSheetConstrained.py')
    16 md = setflowequation(md, 'MLHO', 'all')
     16md = setflowequation(md, 'MOLHO', 'all')
    1717
    1818#control parameters
     
    3333
    3434md.cluster = generic('name', gethostname(), 'np', 3)
    35 md = SetMLHOBC(md)
     35md = SetMOLHOBC(md)
    3636md = solve(md, 'Stressbalance')
    3737
  • issm/trunk-jpl/test/NightlyRun/test334.m

    r26555 r27031  
    1 %Test Name: SquareShelfCMBMLHO
     1%Test Name: SquareShelfCMBMOLHO
    22md=triangle(model(),'../Exp/Square.exp',200000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66
    77%control parameters
     
    2020
    2121md.cluster=generic('name',oshostname(),'np',3);
    22 md=SetMLHOBC(md);
     22md=SetMOLHOBC(md);
    2323md=solve(md,'Stressbalance');
    2424
  • issm/trunk-jpl/test/NightlyRun/test334.py

    r26897 r27031  
    1 #Test Name: SquareShelfCMBMLHO
     1#Test Name: SquareShelfCMBMOLHO
    22from model import *
    33from socket import gethostname
     
    99from solve import solve
    1010from generic import generic
    11 from SetMLHOBC import SetMLHOBC
     11from SetMOLHOBC import SetMOLHOBC
    1212
    1313md = triangle(model(), '../Exp/Square.exp', 200000)
    1414md = setmask(md, 'all', '')
    1515md = parameterize(md, '../Par/SquareShelf.py')
    16 md = setflowequation(md, 'MLHO', 'all')
     16md = setflowequation(md, 'MOLHO', 'all')
    1717
    1818# control parameters
     
    3333
    3434md.cluster = generic('name', gethostname(), 'np', 3)
    35 md = SetMLHOBC(md)
     35md = SetMOLHOBC(md)
    3636md = solve(md, 'Stressbalance')
    3737
  • issm/trunk-jpl/test/NightlyRun/test335.m

    r26555 r27031  
    1 %Test Name: SquareSheetConstrainedStressMLHO3d
     1%Test Name: SquareSheetConstrainedStressMOLHO3d
    22md=triangle(model(),'../Exp/Square.exp',200000.);
    33md=setmask(md,'','');
    44md=parameterize(md,'../Par/SquareSheetConstrained.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md = extrude(md, 5, 1);
    77md.cluster=generic('name',oshostname(),'np',3);
    88md.stressbalance.requested_outputs={'default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase'};
    9 md=SetMLHOBC(md);
     9md=SetMOLHOBC(md);
    1010md=solve(md,'Stressbalance');
    1111
  • issm/trunk-jpl/test/NightlyRun/test335.py

    r26637 r27031  
    1 #Test Name: SquareSheetConstrainedStressMLHO2d
     1#Test Name: SquareSheetConstrainedStressMOLHO2d
    22from model import *
    33from socket import gethostname
     
    77from setflowequation import setflowequation
    88from solve import solve
    9 from SetMLHOBC import SetMLHOBC
     9from SetMOLHOBC import SetMOLHOBC
    1010
    1111
     
    1313md = setmask(md, '', '')
    1414md = parameterize(md, '../Par/SquareSheetConstrained.py')
    15 md = setflowequation(md, 'MLHO', 'all')
    16 md = SetMLHOBC(md)
     15md = setflowequation(md, 'MOLHO', 'all')
     16md = SetMOLHOBC(md)
    1717md.extrude(5, 1.)
    1818md.cluster = generic('name', gethostname(), 'np', 3)
  • issm/trunk-jpl/test/NightlyRun/test446.m

    r26555 r27031  
    1 %Test Name: SquareSheetShelfStressMLHO2d
     1%Test Name: SquareSheetShelfStressMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'../Exp/SquareShelf.exp','');
    44md=parameterize(md,'../Par/SquareSheetShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77md.stressbalance.requested_outputs={'default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase'};
    8 md=SetMLHOBC(md);
     8md=SetMOLHOBC(md);
    99md=solve(md,'Stressbalance');
    1010
  • issm/trunk-jpl/test/NightlyRun/test446.py

    r26897 r27031  
    1 #Test Name: SquareSheetShelfStressMLHO2d
     1#Test Name: SquareSheetShelfStressMOLHO2d
    22from model import *
    33from socket import gethostname
     
    77from setflowequation import setflowequation
    88from solve import solve
    9 from SetMLHOBC import SetMLHOBC
     9from SetMOLHOBC import SetMOLHOBC
    1010
    1111md = triangle(model(), '../Exp/Square.exp', 150000.)
    1212md = setmask(md, '../Exp/SquareShelf.exp', '')
    1313md = parameterize(md, '../Par/SquareSheetShelf.py')
    14 md = setflowequation(md, 'MLHO', 'all')
     14md = setflowequation(md, 'MOLHO', 'all')
    1515md.cluster = generic('name', gethostname(), 'np', 3)
    1616md.stressbalance.requested_outputs = ['default', 'VxSurface', 'VySurface', 'VxShear', 'VyShear', 'VxBase', 'VyBase']
    17 md = SetMLHOBC(md);
     17md = SetMOLHOBC(md);
    1818md = solve(md, 'Stressbalance')
    1919
  • issm/trunk-jpl/test/NightlyRun/test447.m

    r26555 r27031  
    1 %Test Name: SquareSheetShelfTranMLHO2d
     1%Test Name: SquareSheetShelfTranMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',150000.);
    33md=setmask(md,'../Exp/SquareShelf.exp','');
     
    1313md.transient.isthermal=0;
    1414md.transient.isgroundingline=1;
    15 md=setflowequation(md,'MLHO','all');
     15md=setflowequation(md,'MOLHO','all');
    1616md.cluster=generic('name',oshostname(),'np',3);
    1717md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb'};
    18 md=SetMLHOBC(md);
     18md=SetMOLHOBC(md);
    1919md=solve(md,'Transient');
    2020
  • issm/trunk-jpl/test/NightlyRun/test447.py

    r26637 r27031  
    1 #Test Name: SquareSheetShelfTranMLHO2d
     1#Test Name: SquareSheetShelfTranMOLHO2d
    22import numpy as np
    33from model import *
     
    88from setflowequation import setflowequation
    99from solve import solve
    10 from SetMLHOBC import SetMLHOBC
     10from SetMOLHOBC import SetMOLHOBC
    1111from frictioncoulomb import frictioncoulomb
    1212from generic import generic
     
    2525md.transient.isthermal = False
    2626md.transient.isgroundingline = True
    27 md = setflowequation(md, 'MLHO', 'all')
     27md = setflowequation(md, 'MOLHO', 'all')
    2828md.cluster = generic('name', gethostname(), 'np', 3)
    2929md.transient.requested_outputs = ['default', 'GroundedArea', 'FloatingArea', 'TotalFloatingBmb', 'TotalGroundedBmb', 'TotalSmb']
    30 md = SetMLHOBC(md)
     30md = SetMOLHOBC(md)
    3131md = solve(md, 'Transient')
    3232
  • issm/trunk-jpl/test/NightlyRun/test448.m

    r26555 r27031  
    1 %Test Name: RoundSheetShelfGLMigrationMLHO2d
     1%Test Name: RoundSheetShelfGLMigrationMOLHO2d
    22radius=1.e6;
    33shelfextent=2.e5;
     
    1616md=setmask(md,flags,'');
    1717md=parameterize(md,'../Par/RoundSheetShelf.par');
    18 md=setflowequation(md,'MLHO','all');
     18md=setflowequation(md,'MOLHO','all');
    1919md.cluster=generic('name',oshostname(),'np',3);
    2020
     
    2525md.transient.isgroundingline=1;
    2626
    27 md=SetMLHOBC(md);
     27md=SetMOLHOBC(md);
    2828%test different grounding line dynamics.
    2929md.groundingline.migration='AggressiveMigration';
  • issm/trunk-jpl/test/NightlyRun/test448.py

    r26897 r27031  
    1 #Test Name: RoundSheetShelfGLMigrationMLHO2d
     1#Test Name: RoundSheetShelfGLMigrationMOLHO2d
    22import numpy as np
    33from model import *
     
    88from setflowequation import setflowequation
    99from solve import solve
    10 from SetMLHOBC import SetMLHOBC
     10from SetMOLHOBC import SetMOLHOBC
    1111
    1212
     
    2828md = setmask(md, flags, '')
    2929md = parameterize(md, '../Par/RoundSheetShelf.py')
    30 md = setflowequation(md, 'MLHO', 'all')
     30md = setflowequation(md, 'MOLHO', 'all')
    3131md.cluster = generic('name', gethostname(), 'np', 3)
    3232
     
    3939#test different grounding line dynamics.
    4040md.groundingline.migration = 'AggressiveMigration'
    41 md = SetMLHOBC(md)
     41md = SetMOLHOBC(md)
    4242md = solve(md, 'Transient')
    4343element_on_iceshelf_agressive = md.results.TransientSolution[0].MaskOceanLevelset
  • issm/trunk-jpl/test/NightlyRun/test449.m

    r26555 r27031  
    1 %Test Name: MISMIP3DMLHO
     1%Test Name: MISMIP3DMOLHO
    22md=triangle(model(),'../Exp/Square.exp',100000.);
    33md=setmask(md,'../Exp/SquareShelf.exp','');
     
    1212md.geometry.base(pos)=md.geometry.bed(pos);
    1313md.geometry.surface=md.geometry.base+md.geometry.thickness;
    14 md=setflowequation(md,'MLHO','all');
     14md=setflowequation(md,'MOLHO','all');
    1515
    1616%Boundary conditions:
     
    4545
    4646md.cluster=generic('name',oshostname(),'np',3);
    47 md=SetMLHOBC(md);
     47md=SetMOLHOBC(md);
    4848md=solve(md,'Transient');
    4949
  • issm/trunk-jpl/test/NightlyRun/test449.py

    r26637 r27031  
    1 #Test Name: MISMIP3DMLHO
     1#Test Name: MISMIP3DMOLHO
    22import numpy as np
    33from model import *
     
    88from setflowequation import setflowequation
    99from solve import solve
    10 from SetMLHOBC import SetMLHOBC
     10from SetMOLHOBC import SetMOLHOBC
    1111from generic import generic
    1212
     
    2424md.geometry.base[pos] = md.geometry.bed[pos]
    2525md.geometry.surface = md.geometry.base + md.geometry.thickness
    26 md = setflowequation(md, 'MLHO', 'all')
     26md = setflowequation(md, 'MOLHO', 'all')
    2727
    2828#Boundary conditions:
     
    5959
    6060md.cluster = generic('name', gethostname(), 'np', 3)
    61 md = SetMLHOBC(md)
     61md = SetMOLHOBC(md)
    6262md = solve(md, 'Transient')
    6363#print md.results.TransientSolution[0].BasalforcingsFloatingiceMeltingRate
  • issm/trunk-jpl/test/NightlyRun/test518.m

    r26555 r27031  
    1 %Test Name: PigStressMLHO2d
     1%Test Name: PigStressMOLHO2d
    22md=triangle(model(),'../Exp/Pig.exp',20000.);
    33md=setmask(md,'../Exp/PigShelves.exp','../Exp/PigIslands.exp');
    44md=parameterize(md,'../Par/Pig.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77md.stressbalance.requested_outputs={'default','VxSurface','VySurface','VxShear','VyShear','VxBase','VyBase'};
    8 md=SetMLHOBC(md);
     8md=SetMOLHOBC(md);
    99md=solve(md,'Stressbalance');
    1010
  • issm/trunk-jpl/test/NightlyRun/test518.py

    r26897 r27031  
    11
    2 #Test Name: PigStressMLHO2d
     2#Test Name: PigStressMOLHO2d
    33from model import *
    44from socket import gethostname
     
    88from setflowequation import setflowequation
    99from solve import solve
    10 from SetMLHOBC import SetMLHOBC
     10from SetMOLHOBC import SetMOLHOBC
    1111
    1212
     
    1414md = setmask(md, '../Exp/PigShelves.exp', '../Exp/PigIslands.exp')
    1515md = parameterize(md, '../Par/Pig.py')
    16 md = setflowequation(md, 'MLHO', 'all')
     16md = setflowequation(md, 'MOLHO', 'all')
    1717md.cluster = generic('name', gethostname(), 'np', 3)
    1818md.stressbalance.requested_outputs = ['default', 'VxSurface', 'VySurface', 'VxShear', 'VyShear', 'VxBase', 'VyBase']
    19 md = SetMLHOBC(md)
     19md = SetMOLHOBC(md)
    2020md = solve(md, 'Stressbalance')
    2121
  • issm/trunk-jpl/test/NightlyRun/test519.m

    r26555 r27031  
    1 %Test Name: PigTranMLHO2d
     1%Test Name: PigTranMOLHO2d
    22md=triangle(model(),'../Exp/Pig.exp',20000.);
    33md=setmask(md,'../Exp/PigShelves.exp','../Exp/PigIslands.exp');
    44md=parameterize(md,'../Par/Pig.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77md.geometry.bed=md.geometry.base;
     
    99md.mesh.scale_factor=0.9*ones(md.mesh.numberofvertices,1);
    1010md.transient.requested_outputs={'default','IceVolume','IceVolumeScaled','GroundedArea','GroundedAreaScaled','FloatingArea','FloatingAreaScaled','TotalSmb','TotalSmbScaled','TotalFloatingBmb','TotalFloatingBmbScaled'};
    11 md=SetMLHOBC(md);
     11md=SetMOLHOBC(md);
    1212md=solve(md,'Transient');
    1313
  • issm/trunk-jpl/test/NightlyRun/test519.py

    r26637 r27031  
    1 #Test Name: PigTranMLHO2d
     1#Test Name: PigTranMOLHO2d
    22import numpy as np
    33from model import *
     
    88from setflowequation import setflowequation
    99from solve import solve
    10 from SetMLHOBC import SetMLHOBC
     10from SetMOLHOBC import SetMOLHOBC
    1111from generic import generic
    1212
     
    1414md = setmask(md, '../Exp/PigShelves.exp', '../Exp/PigIslands.exp')
    1515md = parameterize(md, '../Par/Pig.py')
    16 md = setflowequation(md, 'MLHO', 'all')
     16md = setflowequation(md, 'MOLHO', 'all')
    1717md.mesh.scale_factor = 0.9 * np.ones((md.mesh.numberofvertices))
    1818md.transient.requested_outputs = ['default', 'IceVolume', 'IceVolumeScaled', 'GroundedArea', 'GroundedAreaScaled', 'FloatingArea', 'FloatingAreaScaled', 'TotalSmb', 'TotalSmbScaled', 'TotalFloatingBmb', 'TotalFloatingBmbScaled']
    1919md.cluster = generic('name', gethostname(), 'np', 3)
    20 md = SetMLHOBC(md)
     20md = SetMOLHOBC(md)
    2121md = solve(md, 'Transient')
    2222
  • issm/trunk-jpl/test/NightlyRun/test810.m

    r26555 r27031  
    1 %Test Name: ValleyGlacierLevelsetMLHO2d
     1%Test Name: ValleyGlacierLevelsetMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',50000);
    33md=setmask(md,'','');
    44md=parameterize(md,'../Par/ValleyGlacierShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.levelset.stabilization=2;
    77md.cluster=generic('name',oshostname(),'np',3);
     
    1515md.transient.isgroundingline=1;
    1616
    17 md=SetMLHOBC(md);
     17md=SetMOLHOBC(md);
    1818md=solve(md,'Transient');
    1919
  • issm/trunk-jpl/test/NightlyRun/test810.py

    r26897 r27031  
    1 #Test Name: ValleyGlacierLevelsetMLHO2d
     1#Test Name: ValleyGlacierLevelsetMOLHO2d
    22from model import *
    33from socket import gethostname
     
    77from setflowequation import setflowequation
    88from solve import solve
    9 from SetMLHOBC import SetMLHOBC
     9from SetMOLHOBC import SetMOLHOBC
    1010
    1111md = triangle(model(), '../Exp/Square.exp', 50000)
     
    1313md = parameterize(md, '../Par/ValleyGlacierShelf.py')
    1414md.levelset.stabilization = 2
    15 md = setflowequation(md, 'MLHO', 'all')
     15md = setflowequation(md, 'MOLHO', 'all')
    1616md.cluster = generic('name', gethostname(), 'np', 3)
    1717
     
    2323md.transient.isthermal = False
    2424md.transient.isgroundingline = True
    25 md = SetMLHOBC(md)
     25md = SetMOLHOBC(md)
    2626
    2727md = solve(md, 'Transient')
  • issm/trunk-jpl/test/NightlyRun/test811.m

    r26555 r27031  
    1 %Test Name: ValleyGlacierLevelsetCalvingMLHO2d
     1%Test Name: ValleyGlacierLevelsetCalvingMOLHO2d
    22md=triangle(model(),'../Exp/Square.exp',50000);
    33md=setmask(md,'','');
    44md=parameterize(md,'../Par/ValleyGlacierShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77
     
    1818md.levelset.migration_max = 1e10;
    1919
    20 md=SetMLHOBC(md);
     20md=SetMOLHOBC(md);
    2121md=solve(md,'Transient');
    2222
  • issm/trunk-jpl/test/NightlyRun/test811.py

    r26637 r27031  
    1 #Test Name: ValleyGlacierLevelsetCalvingMLHO2d
     1#Test Name: ValleyGlacierLevelsetCalvingMOLHO2d
    22import numpy as np
    33from model import *
     
    88from setflowequation import setflowequation
    99from solve import solve
    10 from SetMLHOBC import SetMLHOBC
     10from SetMOLHOBC import SetMOLHOBC
    1111from generic import generic
    1212
     
    1414md = setmask(md, '', '')
    1515md = parameterize(md, '../Par/ValleyGlacierShelf.py')
    16 md = setflowequation(md, 'MLHO', 'all')
     16md = setflowequation(md, 'MOLHO', 'all')
    1717md.cluster = generic('name', gethostname(), 'np', 3)
    1818
     
    2929md.levelset.migration_max = 1e10
    3030
    31 md = SetMLHOBC(md)
     31md = SetMOLHOBC(md)
    3232md = solve(md, 'Transient')
    3333
  • issm/trunk-jpl/test/NightlyRun/test812.m

    r26555 r27031  
    1 %Test Name: SquareShelfLevelsetCalvingMLHO2dLevermann
     1%Test Name: SquareShelfLevelsetCalvingMOLHO2dLevermann
    22md=triangle(model(),'../Exp/Square.exp',50000.);
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelf.par');
    5 md=setflowequation(md,'MLHO','all');
     5md=setflowequation(md,'MOLHO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    77
     
    3535md.transient.requested_outputs={'default','StrainRateparallel','StrainRateperpendicular','Calvingratex','Calvingratey','CalvingCalvingrate'};
    3636
    37 md=SetMLHOBC(md);
     37md=SetMOLHOBC(md);
    3838md=solve(md,'Transient');
    3939
  • issm/trunk-jpl/test/NightlyRun/test812.py

    r26639 r27031  
    1 #Test Name: SquareShelfLevelsetCalvingMLHO2dLevermann
     1#Test Name: SquareShelfLevelsetCalvingMOLHO2dLevermann
    22import numpy as np
    33from socket import gethostname
     
    88from solve import solve
    99from triangle import triangle
    10 from SetMLHOBC import SetMLHOBC
     10from SetMOLHOBC import SetMOLHOBC
    1111
    1212md = triangle(model(), '../Exp/Square.exp', 50000.)
    1313md = setmask(md, 'all', '')
    1414md = parameterize(md, '../Par/SquareShelf.py')
    15 md = setflowequation(md, 'MLHO', 'all')
     15md = setflowequation(md, 'MOLHO', 'all')
    1616md.cluster = generic('name', gethostname(), 'np', 3)
    1717
     
    4545md.transient.requested_outputs = ['default', 'StrainRateparallel', 'StrainRateperpendicular', 'Calvingratex', 'Calvingratey', 'CalvingCalvingrate']
    4646
    47 md = SetMLHOBC(md);
     47md = SetMOLHOBC(md);
    4848md = solve(md, 'Transient')
    4949
Note: See TracChangeset for help on using the changeset viewer.