Changeset 9661


Ignore:
Timestamp:
09/07/11 14:39:31 (14 years ago)
Author:
seroussi
Message:

added flowequation class

Location:
issm/trunk/src
Files:
9 added
9 deleted
41 edited

Legend:

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

    r9655 r9661  
    8383        BalancethicknessStabilizationEnum,
    8484        BalancethicknessRequestedOutputsEnum,
     85        FlowequationIshutterEnum,
     86        FlowequationIsmacayealpattynEnum,
     87        FlowequationIsstokesEnum,
     88        FlowequationElementEquationEnum,
     89        FlowequationVertexEquationEnum,
     90        FlowequationBorderstokesEnum,
     91        FlowequationBorderpattynEnum,
     92        FlowequationBordermacayealEnum,
    8593        /*}}}*/
    8694        /*Datasets {{{1*/
     
    432440        SpcvyEnum,
    433441        YEnum,
    434         ElementsTypeEnum,
    435442        PenaltiesEnum,
    436443        PressureloadEnum,
    437         VerticesTypeEnum,
    438444        SpcvzEnum,
    439445        NumberOfNodes2DEnum,
    440         NodeonstokesEnum,
    441         NodeonpattynEnum,
    442         NodeonmacayealEnum,
    443446        ZEnum,
    444447        PenaltyLockEnum,
     
    452455        NumlayersEnum,
    453456        DiagnosticRefEnum,
    454         IshutterEnum,
    455         IsmacayealpattynEnum,
    456         IsstokesEnum,
    457457        StokesreconditioningEnum,
    458458        LowerelementsEnum,
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r9655 r9661  
    8787                case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization";
    8888                case BalancethicknessRequestedOutputsEnum : return "BalancethicknessRequestedOutputs";
     89                case FlowequationIshutterEnum : return "FlowequationIshutter";
     90                case FlowequationIsmacayealpattynEnum : return "FlowequationIsmacayealpattyn";
     91                case FlowequationIsstokesEnum : return "FlowequationIsstokes";
     92                case FlowequationElementEquationEnum : return "FlowequationElementEquation";
     93                case FlowequationVertexEquationEnum : return "FlowequationVertexEquation";
     94                case FlowequationBorderstokesEnum : return "FlowequationBorderstokes";
     95                case FlowequationBorderpattynEnum : return "FlowequationBorderpattyn";
     96                case FlowequationBordermacayealEnum : return "FlowequationBordermacayeal";
    8997                case ConstraintsEnum : return "Constraints";
    9098                case ElementsEnum : return "Elements";
     
    376384                case SpcvyEnum : return "Spcvy";
    377385                case YEnum : return "Y";
    378                 case ElementsTypeEnum : return "ElementsType";
    379386                case PenaltiesEnum : return "Penalties";
    380387                case PressureloadEnum : return "Pressureload";
    381                 case VerticesTypeEnum : return "VerticesType";
    382388                case SpcvzEnum : return "Spcvz";
    383389                case NumberOfNodes2DEnum : return "NumberOfNodes2D";
    384                 case NodeonstokesEnum : return "Nodeonstokes";
    385                 case NodeonpattynEnum : return "Nodeonpattyn";
    386                 case NodeonmacayealEnum : return "Nodeonmacayeal";
    387390                case ZEnum : return "Z";
    388391                case PenaltyLockEnum : return "PenaltyLock";
     
    396399                case NumlayersEnum : return "Numlayers";
    397400                case DiagnosticRefEnum : return "DiagnosticRef";
    398                 case IshutterEnum : return "Ishutter";
    399                 case IsmacayealpattynEnum : return "Ismacayealpattyn";
    400                 case IsstokesEnum : return "Isstokes";
    401401                case StokesreconditioningEnum : return "Stokesreconditioning";
    402402                case LowerelementsEnum : return "Lowerelements";
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp

    r9646 r9661  
    4949
    5050        /*First fetch data: */
    51         iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     51        iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    5252
    5353        if(continuous_galerkin){
     
    8888
    8989        /*Clean fetched data: */
    90         iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     90        iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    9191
    9292        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp

    r9641 r9661  
    3636       
    3737        /*First fetch data: */
    38         iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     38        iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    3939
    4040        for (i=0;i<numberofvertices;i++){
     
    4848
    4949        /*Clean fetched data: */
    50         iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     50        iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    5151       
    5252        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r9646 r9661  
    2626        /*Copy some constants from iomodel */
    2727        parameters->AddObject(iomodel->CopyConstantObject(DimEnum));
    28         parameters->AddObject(iomodel->CopyConstantObject(IshutterEnum));
    29         parameters->AddObject(iomodel->CopyConstantObject(IsmacayealpattynEnum));
    30         parameters->AddObject(iomodel->CopyConstantObject(IsstokesEnum));
     28        parameters->AddObject(iomodel->CopyConstantObject(FlowequationIshutterEnum));
     29        parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsmacayealpattynEnum));
     30        parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsstokesEnum));
    3131        parameters->AddObject(iomodel->CopyConstantObject(OutputFrequencyEnum));
    3232        parameters->AddObject(iomodel->CopyConstantObject(EpsResEnum));
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp

    r9655 r9661  
    4545        iomodel->Constant(&rho_ice,MaterialsRhoIceEnum);
    4646        iomodel->Constant(&stokesreconditioning,StokesreconditioningEnum);
    47         iomodel->Constant(&isstokes,IsstokesEnum);
    48         iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
     47        iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
     48        iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
    4949
    5050        /*Recover pointer: */
     
    6464        iomodel->FetchData(&spcvy,NULL,NULL,SpcvyEnum);
    6565        iomodel->FetchData(&spcvz,NULL,NULL,SpcvzEnum);
    66         iomodel->FetchData(&nodeonmacayeal,NULL,NULL,NodeonmacayealEnum);
    67         if(dim==3)iomodel->FetchData(&nodeonpattyn,NULL,NULL,NodeonpattynEnum);
    68         if(dim==3)iomodel->FetchData(&nodeonstokes,NULL,NULL,NodeonstokesEnum);
    69         iomodel->FetchData(&vertices_type,NULL,NULL,VerticesTypeEnum);
     66        iomodel->FetchData(&nodeonmacayeal,NULL,NULL,FlowequationBordermacayealEnum);
     67        if(dim==3)iomodel->FetchData(&nodeonpattyn,NULL,NULL,FlowequationBorderpattynEnum);
     68        if(dim==3)iomodel->FetchData(&nodeonstokes,NULL,NULL,FlowequationBorderstokesEnum);
     69        iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum);
    7070        iomodel->FetchData(&surface,NULL,NULL,SurfaceEnum);
    7171        iomodel->FetchData(&z,NULL,NULL,ZEnum);
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp

    r9641 r9661  
    4242        iomodel->Constant(&dim,DimEnum);
    4343        iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
    44         iomodel->Constant(&isstokes,IsstokesEnum);
    45         iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
     44        iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
     45        iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
    4646        iomodel->Constant(&numrifts,RiftsNumriftsEnum);
    4747
     
    6262        iomodel->FetchData(3,PressureloadEnum,ThicknessEnum,BedEnum);
    6363        iomodel->FetchData(&pressureload,&numberofpressureloads,NULL,PressureloadEnum);
    64         iomodel->FetchData(&elements_type,NULL,NULL,ElementsTypeEnum);
     64        iomodel->FetchData(&elements_type,NULL,NULL,FlowequationElementEquationEnum);
    6565
    6666        /*Initialize counter: */
     
    126126        iomodel->FetchData(&nodeonbed,NULL,NULL,NodeonbedEnum);
    127127        iomodel->FetchData(&nodeonicesheet,NULL,NULL,MaskVertexongroundediceEnum);
    128         iomodel->FetchData(&nodeonstokes,NULL,NULL,NodeonstokesEnum);
    129         iomodel->FetchData(&vertices_type,NULL,NULL,VerticesTypeEnum);
     128        iomodel->FetchData(&nodeonstokes,NULL,NULL,FlowequationBorderstokesEnum);
     129        iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum);
    130130        iomodel->FetchData(1,ElementsEnum);
    131131        CreateSingleNodeToElementConnectivity(iomodel);
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp

    r9655 r9661  
    2626        /*Fetch parameters: */
    2727        iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
    28         iomodel->Constant(&isstokes,IsstokesEnum);
    29         iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
     28        iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
     29        iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
    3030
    3131        /*Recover pointer: */
     
    4545
    4646        /*Create nodes: */
    47         iomodel->FetchData(9,NodeonbedEnum,NodeonsurfaceEnum,NodeonmacayealEnum,NodeonstokesEnum,
    48                                 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,VerticesTypeEnum,DiagnosticRefEnum);
     47        iomodel->FetchData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum,
     48                                MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRefEnum);
    4949       
    5050        for (i=0;i<numberofvertices;i++){
     
    5858
    5959        /*Clean fetched data: */
    60         iomodel->DeleteData(9,NodeonbedEnum,NodeonsurfaceEnum,NodeonmacayealEnum,NodeonstokesEnum,
    61                                 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,VerticesTypeEnum,DiagnosticRefEnum);
     60        iomodel->DeleteData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum,
     61                                MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRefEnum);
    6262
    6363        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp

    r9650 r9661  
    2424
    2525        /*Fetch constants needed: */
    26         iomodel->Constant(&isstokes,IsstokesEnum);
    27         iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
     26        iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
     27        iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
    2828        iomodel->Constant(&dim,DimEnum);
    2929        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
     
    3535
    3636        /*Fetch data needed: */
    37         iomodel->FetchData(2,ElementsEnum,ElementsTypeEnum);
     37        iomodel->FetchData(2,ElementsEnum,FlowequationElementEquationEnum);
    3838
    3939        /*Update elements: */
     
    7171                iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
    7272                iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
    73                 iomodel->FetchDataToInput(elements,NodeonstokesEnum);
     73                iomodel->FetchDataToInput(elements,FlowequationBorderstokesEnum);
    7474        }
    7575
     
    9595       
    9696        /*Free data: */
    97         iomodel->DeleteData(2,ElementsEnum,ElementsTypeEnum);
     97        iomodel->DeleteData(2,ElementsEnum,FlowequationElementEquationEnum);
    9898}
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp

    r9655 r9661  
    3030        iomodel->Constant(&yts,ConstantsYtsEnum);
    3131        iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
    32         iomodel->Constant(&ishutter,IshutterEnum);
     32        iomodel->Constant(&ishutter,FlowequationIshutterEnum);
    3333
    3434        /*Create constraints if they do not exist yet*/
     
    4242
    4343        /*Fetch data: */
    44         iomodel->FetchData(3,SpcvxEnum,SpcvyEnum,VerticesTypeEnum);
     44        iomodel->FetchData(3,SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum);
    4545
    4646        /*Initialize conunter*/
     
    5151                /*keep only this partition's nodes:*/
    5252                if((iomodel->my_vertices[i])){
    53                         if (!(int)iomodel->Data(VerticesTypeEnum)[i]==HutterApproximationEnum){
     53                        if (!(int)iomodel->Data(FlowequationVertexEquationEnum)[i]==HutterApproximationEnum){
    5454
    5555                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,DiagnosticHutterAnalysisEnum));
     
    7474
    7575        /*Free data: */
    76         iomodel->DeleteData(3,SpcvxEnum,SpcvyEnum,VerticesTypeEnum);
     76        iomodel->DeleteData(3,SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum);
    7777       
    7878        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp

    r9655 r9661  
    2626        /*Fetch parameters: */
    2727        iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
    28         iomodel->Constant(&ishutter,IshutterEnum);
     28        iomodel->Constant(&ishutter,FlowequationIshutterEnum);
    2929
    3030        /*Recover pointer: */
     
    4444
    4545        /*First fetch data: */
    46         iomodel->FetchData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     46        iomodel->FetchData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    4747        CreateNumberNodeToElementConnectivity(iomodel);
    4848
     
    5757
    5858        /*Clean fetched data: */
    59         iomodel->DeleteData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     59        iomodel->DeleteData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    6060
    6161        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp

    r9655 r9661  
    2222        /*Fetch data needed: */
    2323        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    24         iomodel->Constant(&ishutter,IshutterEnum);
     24        iomodel->Constant(&ishutter,FlowequationIshutterEnum);
    2525
    2626        /*Now, is the flag hutter on? otherwise, do nothing: */
    2727        if (!ishutter)return;
    2828
    29         iomodel->FetchData(2,ElementsEnum,ElementsTypeEnum);
     29        iomodel->FetchData(2,ElementsEnum,FlowequationElementEquationEnum);
    3030
    3131        /*Update elements: */
     
    4343       
    4444        /*Free data: */
    45         iomodel->DeleteData(2,ElementsEnum,ElementsTypeEnum);
     45        iomodel->DeleteData(2,ElementsEnum,FlowequationElementEquationEnum);
    4646}
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp

    r9641 r9661  
    4141
    4242        /*Fetch data: */
    43         iomodel->FetchData(2,SpcvzEnum,NodeonstokesEnum);
     43        iomodel->FetchData(2,SpcvzEnum,FlowequationBorderstokesEnum);
    4444
    4545        /*Initialize counter*/
     
    5252                if(iomodel->my_vertices[i]){
    5353
    54                         if ((int)iomodel->Data(NodeonstokesEnum)[i]){
     54                        if ((int)iomodel->Data(FlowequationBorderstokesEnum)[i]){
    5555                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,DiagnosticVertAnalysisEnum)); //spc to zero as vertical velocity is done in Horiz for Stokes
    5656                                count++;
     
    6666
    6767        /*Free data: */
    68         iomodel->DeleteData(2,SpcvzEnum,NodeonstokesEnum);
     68        iomodel->DeleteData(2,SpcvzEnum,FlowequationBorderstokesEnum);
    6969
    7070        cleanup_and_return:
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp

    r9641 r9661  
    4444       
    4545        /*First fetch data: */
    46         iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     46        iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    4747
    4848        for (i=0;i<numberofvertices;i++){
     
    5656
    5757        /*Clean fetched data: */
    58         iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     58        iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    5959       
    6060        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp

    r9641 r9661  
    3636
    3737        /*Create nodes and vertices: */
    38         iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     38        iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    3939
    4040        for (i=0;i<numberofvertices;i++){
     
    4848
    4949        /*Clean fetched data: */
    50         iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     50        iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    5151       
    5252        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp

    r9641 r9661  
    4949        iomodel->FetchDataToInput(elements,ElementonsurfaceEnum);
    5050        iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
    51         iomodel->FetchDataToInput(elements,ElementsTypeEnum);
     51        iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
    5252        iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
    5353        iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
  • issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp

    r9641 r9661  
    3636
    3737        /*Create nodes and vertices: */
    38         iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     38        iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    3939        for (i=0;i<numberofvertices;i++){
    4040
     
    4545                }
    4646        }
    47         iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     47        iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    4848       
    4949        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp

    r9641 r9661  
    4242        iomodel->FetchDataToInput(elements,ElementonsurfaceEnum);
    4343        iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
    44         iomodel->FetchDataToInput(elements,ElementsTypeEnum);
     44        iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
    4545        iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
    4646        iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp

    r9641 r9661  
    3636
    3737        /*First fetch data: */
    38         iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     38        iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    3939        for (i=0;i<numberofvertices;i++){
    4040
     
    4646                }
    4747        }
    48         iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     48        iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    4949
    5050        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp

    r9641 r9661  
    5050        iomodel->FetchDataToInput(elements,ElementonsurfaceEnum);
    5151        iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
    52         iomodel->FetchDataToInput(elements,ElementsTypeEnum);
     52        iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
    5353        iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
    5454        iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp

    r9642 r9661  
    4949
    5050        /*First fetch data: */
    51         iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     51        iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    5252        if(continuous_galerkin){
    5353
     
    8888
    8989        /*Clean fetched data: */
    90         iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     90        iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    9191
    9292        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp

    r9641 r9661  
    3636       
    3737        /*First fetch data: */
    38         iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     38        iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    3939
    4040        for (i=0;i<numberofvertices;i++){
     
    4949
    5050        /*Clean fetched data: */
    51         iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     51        iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    5252       
    5353        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp

    r9641 r9661  
    3636
    3737        /*Create nodes and vertices: */
    38         iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     38        iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    3939
    4040        for (i=0;i<numberofvertices;i++){
     
    4848
    4949        /*Clean fetched data: */
    50         iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,VerticesTypeEnum,MaskVertexonwaterEnum);
     50        iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
    5151       
    5252        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp

    r9650 r9661  
    5151        iomodel->FetchDataToInput(elements,ElementonsurfaceEnum);
    5252        iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
    53         iomodel->FetchDataToInput(elements,ElementsTypeEnum);
     53        iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
    5454        iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
    5555        iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r9655 r9661  
    8585        else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum;
    8686        else if (strcmp(name,"BalancethicknessRequestedOutputs")==0) return BalancethicknessRequestedOutputsEnum;
     87        else if (strcmp(name,"FlowequationIshutter")==0) return FlowequationIshutterEnum;
     88        else if (strcmp(name,"FlowequationIsmacayealpattyn")==0) return FlowequationIsmacayealpattynEnum;
     89        else if (strcmp(name,"FlowequationIsstokes")==0) return FlowequationIsstokesEnum;
     90        else if (strcmp(name,"FlowequationElementEquation")==0) return FlowequationElementEquationEnum;
     91        else if (strcmp(name,"FlowequationVertexEquation")==0) return FlowequationVertexEquationEnum;
     92        else if (strcmp(name,"FlowequationBorderstokes")==0) return FlowequationBorderstokesEnum;
     93        else if (strcmp(name,"FlowequationBorderpattyn")==0) return FlowequationBorderpattynEnum;
     94        else if (strcmp(name,"FlowequationBordermacayeal")==0) return FlowequationBordermacayealEnum;
    8795        else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
    8896        else if (strcmp(name,"Elements")==0) return ElementsEnum;
     
    374382        else if (strcmp(name,"Spcvy")==0) return SpcvyEnum;
    375383        else if (strcmp(name,"Y")==0) return YEnum;
    376         else if (strcmp(name,"ElementsType")==0) return ElementsTypeEnum;
    377384        else if (strcmp(name,"Penalties")==0) return PenaltiesEnum;
    378385        else if (strcmp(name,"Pressureload")==0) return PressureloadEnum;
    379         else if (strcmp(name,"VerticesType")==0) return VerticesTypeEnum;
    380386        else if (strcmp(name,"Spcvz")==0) return SpcvzEnum;
    381387        else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum;
    382         else if (strcmp(name,"Nodeonstokes")==0) return NodeonstokesEnum;
    383         else if (strcmp(name,"Nodeonpattyn")==0) return NodeonpattynEnum;
    384         else if (strcmp(name,"Nodeonmacayeal")==0) return NodeonmacayealEnum;
    385388        else if (strcmp(name,"Z")==0) return ZEnum;
    386389        else if (strcmp(name,"PenaltyLock")==0) return PenaltyLockEnum;
     
    394397        else if (strcmp(name,"Numlayers")==0) return NumlayersEnum;
    395398        else if (strcmp(name,"DiagnosticRef")==0) return DiagnosticRefEnum;
    396         else if (strcmp(name,"Ishutter")==0) return IshutterEnum;
    397         else if (strcmp(name,"Ismacayealpattyn")==0) return IsmacayealpattynEnum;
    398         else if (strcmp(name,"Isstokes")==0) return IsstokesEnum;
    399399        else if (strcmp(name,"Stokesreconditioning")==0) return StokesreconditioningEnum;
    400400        else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r9650 r9661  
    52135213
    52145214        //Need to know the type of approximation for this element
    5215         if(iomodel->Data(ElementsTypeEnum)){
    5216                 if (*(iomodel->Data(ElementsTypeEnum)+index)==MacAyealApproximationEnum){
     5215        if(iomodel->Data(FlowequationElementEquationEnum)){
     5216                if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealApproximationEnum){
    52175217                        this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealApproximationEnum));
    52185218                }
    5219                 else if (*(iomodel->Data(ElementsTypeEnum)+index)==PattynApproximationEnum){
     5219                else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynApproximationEnum){
    52205220                        this->inputs->AddInput(new IntInput(ApproximationEnum,PattynApproximationEnum));
    52215221                }
    5222                 else if (*(iomodel->Data(ElementsTypeEnum)+index)==MacAyealPattynApproximationEnum){
     5222                else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealPattynApproximationEnum){
    52235223                        this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealPattynApproximationEnum));
    52245224                }
    5225                 else if (*(iomodel->Data(ElementsTypeEnum)+index)==HutterApproximationEnum){
     5225                else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==HutterApproximationEnum){
    52265226                        this->inputs->AddInput(new IntInput(ApproximationEnum,HutterApproximationEnum));
    52275227                }
    5228                 else if (*(iomodel->Data(ElementsTypeEnum)+index)==StokesApproximationEnum){
     5228                else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==StokesApproximationEnum){
    52295229                        this->inputs->AddInput(new IntInput(ApproximationEnum,StokesApproximationEnum));
    52305230                }
    5231                 else if (*(iomodel->Data(ElementsTypeEnum)+index)==MacAyealStokesApproximationEnum){
     5231                else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealStokesApproximationEnum){
    52325232                        this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealStokesApproximationEnum));
    52335233                }
    5234                 else if (*(iomodel->Data(ElementsTypeEnum)+index)==PattynStokesApproximationEnum){
     5234                else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynStokesApproximationEnum){
    52355235                        this->inputs->AddInput(new IntInput(ApproximationEnum,PattynStokesApproximationEnum));
    52365236                }
    5237                 else if (*(iomodel->Data(ElementsTypeEnum)+index)==NoneApproximationEnum){
     5237                else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==NoneApproximationEnum){
    52385238                        this->inputs->AddInput(new IntInput(ApproximationEnum,NoneApproximationEnum));
    52395239                }
    52405240                else{
    5241                         _error_("Approximation type %s not supported yet",EnumToStringx((int)*(iomodel->Data(ElementsTypeEnum)+index)));
     5241                        _error_("Approximation type %s not supported yet",EnumToStringx((int)*(iomodel->Data(FlowequationElementEquationEnum)+index)));
    52425242                }
    52435243        }
     
    75067506        iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
    75077507        iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
    7508         iomodel->Constant(&isstokes,IsstokesEnum);
     7508        iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
    75097509        iomodel->Constant(&beta,MaterialsBetaEnum);
    75107510        iomodel->Constant(&heatcapacity,MaterialsHeatcapacityEnum);
     
    75837583                                }
    75847584                        }
    7585                         if(*(iomodel->Data(ElementsTypeEnum)+index)==PattynStokesApproximationEnum){
     7585                        if(*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynStokesApproximationEnum){
    75867586                                /*Create VzPattyn and VzStokes Enums*/
    7587                                 if(iomodel->Data(VzEnum) && iomodel->Data(NodeonstokesEnum)){
    7588                                         for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(NodeonstokesEnum)[penta_vertex_ids[i]-1];
     7587                                if(iomodel->Data(VzEnum) && iomodel->Data(FlowequationBorderstokesEnum)){
     7588                                        for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1];
    75897589                                        this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs));
    7590                                         for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(NodeonstokesEnum)[penta_vertex_ids[i]-1]);
     7590                                        for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1]);
    75917591                                        this->inputs->AddInput(new PentaVertexInput(VzPattynEnum,nodeinputs));
    75927592                                }
     
    75977597                                }
    75987598                        }
    7599                         if(*(iomodel->Data(ElementsTypeEnum)+index)==MacAyealStokesApproximationEnum){
     7599                        if(*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealStokesApproximationEnum){
    76007600                                /*Create VzMacAyeal and VzStokes Enums*/
    7601                                 if(iomodel->Data(VzEnum) && iomodel->Data(NodeonstokesEnum)){
    7602                                         for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(NodeonstokesEnum)[penta_vertex_ids[i]-1];
     7601                                if(iomodel->Data(VzEnum) && iomodel->Data(FlowequationBorderstokesEnum)){
     7602                                        for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1];
    76037603                                        this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs));
    7604                                         for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(NodeonstokesEnum)[penta_vertex_ids[i]-1]);
     7604                                        for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1]);
    76057605                                        this->inputs->AddInput(new PentaVertexInput(VzMacAyealEnum,nodeinputs));
    76067606                                }
  • issm/trunk/src/c/objects/Node.cpp

    r9655 r9661  
    4646
    4747        /*indexing:*/
    48         DistributeNumDofs(&this->indexing,analysis_type,iomodel->Data(VerticesTypeEnum)+io_index); //number of dofs per node
     48        DistributeNumDofs(&this->indexing,analysis_type,iomodel->Data(FlowequationVertexEquationEnum)+io_index); //number of dofs per node
    4949        gsize=this->indexing.gsize;
    5050
     
    5959        if (iomodel->Data(MaskVertexongroundediceEnum)) this->inputs->AddInput(new BoolInput(MaskVertexongroundediceEnum,(IssmBool)iomodel->Data(MaskVertexongroundediceEnum)[io_index]));
    6060        if (iomodel->numbernodetoelementconnectivity) this->inputs->AddInput(new IntInput(NumberNodeToElementConnectivityEnum,(IssmInt)iomodel->numbernodetoelementconnectivity[io_index]));
    61         if (analysis_type==DiagnosticHorizAnalysisEnum) this->inputs->AddInput(new IntInput(ApproximationEnum,(IssmInt)iomodel->Data(VerticesTypeEnum)[io_index]));
     61        if (analysis_type==DiagnosticHorizAnalysisEnum) this->inputs->AddInput(new IntInput(ApproximationEnum,(IssmInt)iomodel->Data(FlowequationVertexEquationEnum)[io_index]));
    6262       
    6363        /*set single point constraints: */
     
    7676                        /*We have a  3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */
    7777                        if (!iomodel->Data(NodeonbedEnum)) _error_("iomodel->nodeonbed is NULL");
    78                         if (!iomodel->Data(VerticesTypeEnum)) _error_("iomodel->vertices_type is NULL");
    79                         if (iomodel->Data(VerticesTypeEnum)[io_index]==MacAyealApproximationEnum && !iomodel->Data(NodeonbedEnum)[io_index]){
     78                        if (!iomodel->Data(FlowequationVertexEquationEnum)) _error_("iomodel->vertices_type is NULL");
     79                        if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealApproximationEnum && !iomodel->Data(NodeonbedEnum)[io_index]){
    8080                                for(k=1;k<=gsize;k++) this->FreezeDof(k);
    8181                        }
    82                         if (iomodel->Data(VerticesTypeEnum)[io_index]==MacAyealPattynApproximationEnum && iomodel->Data(NodeonmacayealEnum)[io_index]){
     82                        if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealPattynApproximationEnum && iomodel->Data(FlowequationBordermacayealEnum)[io_index]){
    8383                                if(!iomodel->Data(NodeonbedEnum)[io_index]){
    8484                                        for(k=1;k<=gsize;k++) this->FreezeDof(k);
    8585                                }
    8686                        }
    87                         if (iomodel->Data(VerticesTypeEnum)[io_index]==MacAyealStokesApproximationEnum && iomodel->Data(NodeonmacayealEnum)[io_index]){
     87                        if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealStokesApproximationEnum && iomodel->Data(FlowequationBordermacayealEnum)[io_index]){
    8888                                if(!iomodel->Data(NodeonbedEnum)[io_index]){
    8989                                        for(k=1;k<=2;k++) this->FreezeDof(k);
     
    9292                }
    9393                /*spc all nodes on hutter*/
    94                 if (iomodel->Data(VerticesTypeEnum)[io_index]==HutterApproximationEnum){
     94                if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==HutterApproximationEnum){
    9595                        for(k=1;k<=gsize;k++){
    9696                                this->FreezeDof(k);
     
    102102        /*Diagnostic Hutter*/
    103103        if (analysis_type==DiagnosticHutterAnalysisEnum){
    104                 if (!iomodel->Data(VerticesTypeEnum)) _error_("iomodel->vertices_type is NULL");
     104                if (!iomodel->Data(FlowequationVertexEquationEnum)) _error_("iomodel->vertices_type is NULL");
    105105                /*Constrain all nodes that are not Hutter*/
    106                 if (!iomodel->Data(VerticesTypeEnum)[io_index]==HutterApproximationEnum){
     106                if (!iomodel->Data(FlowequationVertexEquationEnum)[io_index]==HutterApproximationEnum){
    107107                        for(k=1;k<=gsize;k++){
    108108                                this->FreezeDof(k);
  • issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp

    r8926 r9661  
    2121
    2222        /*retrieve parameters:*/
    23         femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
     23        femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
    2424        femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
    2525        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
  • issm/trunk/src/c/solutions/control_core.cpp

    r9650 r9661  
    5656        femmodel->parameters->FindParam(&dim,DimEnum);
    5757        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    58         femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
     58        femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
    5959        femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
    6060
  • issm/trunk/src/c/solutions/diagnostic_core.cpp

    r9650 r9661  
    2727        /* recover parameters:*/
    2828        femmodel->parameters->FindParam(&dim,DimEnum);
    29         femmodel->parameters->FindParam(&ishutter,IshutterEnum);
    30         femmodel->parameters->FindParam(&ismacayealpattyn,IsmacayealpattynEnum);
    31         femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
     29        femmodel->parameters->FindParam(&ishutter,FlowequationIshutterEnum);
     30        femmodel->parameters->FindParam(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
     31        femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
    3232        femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
    3333        femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
  • issm/trunk/src/c/solutions/objectivefunctionC.cpp

    r9320 r9661  
    3737
    3838        /*Recover parameters: */
    39         femmodel->parameters->FindParam(&isstokes,IsstokesEnum);
     39        femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
    4040        femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    4141        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
  • issm/trunk/src/m/classes/model/model.m

    r9655 r9661  
    3232                 qmu = modelfield('default',0,'marshall',true);
    3333                 balancethickness = modelfield('default',0,'marshall',true);
     34                 flowequation = modelfield('default',0,'marshall',true);
    3435
    3536                 %FIXME: all other fields should belong to other classes
     
    4041                 numberofnodes       = modelfield('default',0,'marshall',true,'format','Integer');
    4142                 elements            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2);
    42                  elements_type       = modelfield('default',NaN,'marshall',true,'preprocess','marshallapproximations','format','DoubleMat','mattype',2);
    43                  vertices_type       = modelfield('default',NaN,'marshall',true,'preprocess','marshallapproximations','format','DoubleMat','mattype',1);
    4443                 x                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    4544                 y                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
     
    6059                 long       = modelfield('default',NaN,'marshall',false);
    6160                 hemisphere = modelfield('default',NaN,'marshall',false);
    62 
    63                  %Elements type
    64                  ishutter             = modelfield('default',0,'marshall',true,'format','Boolean');
    65                  ismacayealpattyn     = modelfield('default',0,'marshall',true,'format','Boolean');
    66                  isstokes             = modelfield('default',0,'marshall',true,'format','Boolean');
    67 
    68                  %Nodes
    69                  nodeonmacayeal       = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    70                  nodeonpattyn         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    71                  nodeonstokes         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    7261
    7362                 %Stokes
     
    384373                         if isfield(structmd,'artificial_diffusivity'), md.balancethickness.stabilization=structmd.artificial_diffusivity; end
    385374                         if isfield(structmd,'dhdt'), md.balancethickness.thickening_rate=structmd.dhdt; end
     375                         if isfield(structmd,'ismacayealpattyn'), md.flowequation.ismacayealpattyn=structmd.ismacayealpattyn; end
     376                         if isfield(structmd,'ishutter'), md.flowequation.ishutter=structmd.ishutter; end
     377                         if isfield(structmd,'isstokes'), md.flowequation.isstokes=structmd.isstokes; end
     378                         if isfield(structmd,'elements_type'), md.flowequation.element_equation=structmd.elements_type; end
     379                         if isfield(structmd,'vertices_type'), md.flowequation.vertex_equation=structmd.vertices_type; end
    386380
    387381                         %Field changes
     
    507501                         md.qmu=qmu;
    508502                         md.balancethickness=balancethickness;
     503                         md.flowequation=flowequation;
    509504
    510505                         %Solver parameters
  • issm/trunk/src/m/model/collapse.m

    r9654 r9661  
    4747
    4848%elementstype
    49 if ~isnan(md.elements_type)
    50         md.elements_type=project2d(md,md.elements_type,1);
     49if ~isnan(md.flowequation.element_equation)
     50        md.flowequation.element_equation=project2d(md,md.flowequation.element_equation,1);
    5151end     
    5252
  • issm/trunk/src/m/model/extrude.m

    r9654 r9661  
    154154
    155155%elementstype
    156 if ~isnan(md.elements_type)
    157         oldelements_type=md.elements_type;
    158         md.elements_type=zeros(number_el3d,1);
    159         md.elements_type=project3d(md,'vector',oldelements_type,'type','element');
     156if ~isnan(md.flowequation.element_equation)
     157        oldelements_type=md.flowequation.element_equation;
     158        md.flowequation.element_equation=zeros(number_el3d,1);
     159        md.flowequation.element_equation=project3d(md,'vector',oldelements_type,'type','element');
    160160end
    161161
    162162%verticestype
    163 if ~isnan(md.vertices_type)
    164         oldvertices_type=md.vertices_type;
    165         md.vertices_type=zeros(number_nodes3d,1);
    166         md.vertices_type=project3d(md,'vector',oldvertices_type,'type','node');
     163if ~isnan(md.flowequation.vertex_equation)
     164        oldvertices_type=md.flowequation.vertex_equation;
     165        md.flowequation.vertex_equation=zeros(number_nodes3d,1);
     166        md.flowequation.vertex_equation=project3d(md,'vector',oldvertices_type,'type','node');
    167167end
    168168
  • issm/trunk/src/m/model/ismodelselfconsistent.m

    r9654 r9661  
    209209                message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be a cell of strings']);
    210210        end
    211         if ~ismember(md.control_type,{'Dhdt' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});
    212                 message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be ''Dhdt'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']);
     211        if ~ismember(md.control_type,{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});
     212                message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be ''BalancethicknessThickeningRate'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']);
    213213        end
    214214
     
    387387                        %CHECK THAT ROTATION IS IN THE (X,Y) PLANE FOR 2D MODELS
    388388                        if md.dim==2,
    389                                 pos=find(sum(isnan(md.diagnostic_ref),2)==0  & md.vertices_type==2);
     389                                pos=find(sum(isnan(md.diagnostic_ref),2)==0  & md.flowequation.vertex_equation==2);
    390390                                if any(md.diagnostic_ref(pos,3:5)~=0);
    391391                                        message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. The rotation should be in the (x,y) plane for 2D diagnostic models (nodeonmacayeal)']);
     
    401401
    402402                        %ELEMENTSTYPE
    403                         %Check the size of elements_type
    404                         fields={'elements_type'};
     403                        %Check the size of flowequation.element_equation
     404                        fields={'flowequation.element_equation'};
    405405                        checksize(md,fields,[md.numberofelements 1]);
    406                         %Check the values of elements_type
    407                         checkvalues(md,{'elements_type'},[0:7]);
     406                        %Check the values of flowequation.element_equation
     407                        checkvalues(md,{'flowequation.element_equation'},[0:7]);
    408408                        if (md.dim==2),
    409                                 checkvalues(md,{'elements_type'},[1 2]);
    410                         end
    411                         if (md.ismacayealpattyn==0 && md.ishutter==0 && md.isstokes==0),
     409                                checkvalues(md,{'flowequation.element_equation'},[1 2]);
     410                        end
     411                        if (md.flowequation.ismacayealpattyn==0 && md.flowequation.ishutter==0 && md.flowequation.isstokes==0),
    412412                                message(['model not consistent: no elements type set for this model. at least one of ismacayealpattyn, ishutter and isstokes need to be =1']);
    413413                        end
     
    415415                        %VERTICESTYPE
    416416                        %Check the size of verticess_type
    417                         fields={'vertices_type'};
     417                        fields={'flowequation.vertex_equation'};
    418418                        checksize(md,fields,[md.numberofnodes 1]);
    419                         %Check the values of vertices_type
    420                         checkvalues(md,{'vertices_type'},[0:7]);
     419                        %Check the values of flowequation.vertex_equation
     420                        checkvalues(md,{'flowequation.vertex_equation'},[0:7]);
    421421                        if (md.dim==2),
    422                                 checkvalues(md,{'vertices_type'},[1 2]);
    423                         end
    424                         if (md.ismacayealpattyn==0 && md.ishutter==0 && md.isstokes==0),
     422                                checkvalues(md,{'flowequation.vertex_equation'},[1 2]);
     423                        end
     424                        if (md.flowequation.ismacayealpattyn==0 && md.flowequation.ishutter==0 && md.flowequation.isstokes==0),
    425425                                message(['model not consistent: no elements type set for this model. at least one of ismacayealpattyn, ishutter and isstokes need to be =1']);
    426426                        end
     
    435435                        % {{{2
    436436                        %HUTTER ON ICESHELF WARNING
    437                         if any(md.elements_type==1 & md.mask.elementonfloatingice),
     437                        if any(md.flowequation.element_equation==1 & md.mask.elementonfloatingice),
    438438                                disp(sprintf('\n !!! Warning: Hutter''s model is not consistent on ice shelves !!!\n'));
    439439                        end
  • issm/trunk/src/m/model/mechanicalproperties.m

    r9636 r9661  
    2020        error('only 2d model supported yet');
    2121end
    22 if any(md.elements_type~=2),
     22if any(md.flowequation.element_equation~=2),
    2323        disp('Warning: the model has some non macayeal elements. These will be treated like MacAyeal''s elements');
    2424end
  • issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m

    r9619 r9661  
    8888md.nodeonboundary=zeros(length(md.x),1); md.nodeonboundary(md.segments(:,1:2))=1;
    8989md.rifts.numrifts=length(md.rifts.riftstruct);
    90 md.elements_type=3*ones(md.numberofelements,1);
     90md.flowequation.element_equation=3*ones(md.numberofelements,1);
    9191md.nodeonbed=ones(md.numberofnodes,1);
    9292md.nodeonsurface=ones(md.numberofnodes,1);
  • issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m

    r9619 r9661  
    3636md.nodeonboundary=zeros(length(md.x),1); md.nodeonboundary(md.segments(:,1:2))=1;
    3737md.rifts.numrifts=length(md.rifts.riftstruct);
    38 md.elements_type=3*ones(md.numberofelements,1);
     38md.flowequation.element_equation=3*ones(md.numberofelements,1);
    3939md.nodeonbed=ones(md.numberofnodes,1);
    4040md.nodeonsurface=ones(md.numberofnodes,1);
  • issm/trunk/src/m/model/plot/plot_elementstype.m

    r9532 r9661  
    99%process data and model
    1010[x y z elements is2d isplanet]=processmesh(md,[],options);
    11 [data datatype]=processdata(md,md.elements_type,options);
     11[data datatype]=processdata(md,md.flowequation.element_equation,options);
    1212
    1313%edgecolor?
  • issm/trunk/src/m/model/setelementstype.m

    r9654 r9661  
    6868
    6969%add in model who is who
    70 md.elements_type=zeros(md.numberofelements,1);
     70md.flowequation.element_equation=zeros(md.numberofelements,1);
    7171
    7272%1: Hutter elements
    7373nodeonhutter=zeros(md.numberofnodes,1);
    7474nodeonhutter(md.elements(find(hutterflag),:))=1;
    75 md.elements_type(find(hutterflag))=1;
     75md.flowequation.element_equation(find(hutterflag))=1;
    7676
    7777%2: MacAyeal elements
    7878nodeonmacayeal=zeros(md.numberofnodes,1);
    7979nodeonmacayeal(md.elements(find(macayealflag),:))=1;
    80 md.nodeonmacayeal=nodeonmacayeal;
    81 md.elements_type(find(macayealflag))=2;
     80md.flowequation.bordermacayeal=nodeonmacayeal;
     81md.flowequation.element_equation(find(macayealflag))=2;
    8282
    8383%3: Pattyn elements
    8484nodeonpattyn=zeros(md.numberofnodes,1);
    8585nodeonpattyn(md.elements(find(pattynflag),:))=1;
    86 md.nodeonpattyn=nodeonpattyn;
    87 md.elements_type(find(pattynflag))=3;
     86md.flowequation.borderpattyn=nodeonpattyn;
     87md.flowequation.element_equation(find(pattynflag))=3;
    8888
    8989%4: Stokes elements
     
    9898nodeonstokes=zeros(md.numberofnodes,1);
    9999nodeonstokes(md.elements(find(stokesflag),:))=1;
    100 md.nodeonstokes=nodeonstokes;
    101 md.elements_type(find(stokesflag))=4;
     100md.flowequation.borderstokes=nodeonstokes;
     101md.flowequation.element_equation(find(stokesflag))=4;
    102102
    103103%Then complete with NoneApproximation or the other model used if there is no stokes
     
    106106                pattynflag(~stokesflag)=1;
    107107                nodeonpattyn(md.elements(find(pattynflag),:))=1;
    108                 md.nodeonpattyn=nodeonpattyn;
    109                 md.elements_type(find(~stokesflag))=3;
     108                md.flowequation.borderpattyn=nodeonpattyn;
     109                md.flowequation.element_equation(find(~stokesflag))=3;
    110110        elseif any(macayealflag), %fill with macayeal
    111111                macayealflag(~stokesflag)=1;
    112112                nodeonmacayeal(md.elements(find(macayealflag),:))=1;
    113                 md.nodeonmacayeal=nodeonmacayeal;
    114                 md.elements_type(find(~stokesflag))=2;
     113                md.flowequation.bordermacayeal=nodeonmacayeal;
     114                md.flowequation.element_equation(find(~stokesflag))=2;
    115115        else %fill with none
    116116        %5: None elements (non Stokes)
    117                 md.elements_type(find(~stokesflag))=0;
     117                md.flowequation.element_equation(find(~stokesflag))=0;
    118118        end
    119119end
     
    151151                nodeonmacayeal=zeros(md.numberofnodes,1);
    152152                nodeonmacayeal(md.elements(find(macayealflag),:))=1;
    153                 md.nodeonmacayeal=nodeonmacayeal;
     153                md.flowequation.bordermacayeal=nodeonmacayeal;
    154154
    155155                %Create MacaAyealPattynApproximation where needed
    156                 md.elements_type(find(macayealpattynflag))=5;
     156                md.flowequation.element_equation(find(macayealpattynflag))=5;
    157157
    158158                %Now recreate nodeonmacayeal and nodeonmacayealpattyn
     
    170170                nodeonstokes=zeros(md.numberofnodes,1);
    171171                nodeonstokes(md.elements(find(stokesflag),:))=1;
    172                 md.nodeonstokes=nodeonstokes;
     172                md.flowequation.borderstokes=nodeonstokes;
    173173
    174174                %Create MacaAyealPattynApproximation where needed
    175                 md.elements_type(find(pattynstokesflag))=7;
     175                md.flowequation.element_equation(find(pattynstokesflag))=7;
    176176
    177177                %Now recreate nodeonpattynstokes
     
    190190                nodeonstokes=zeros(md.numberofnodes,1);
    191191                nodeonstokes(md.elements(find(stokesflag),:))=1;
    192                 md.nodeonstokes=nodeonstokes;
     192                md.flowequation.borderstokes=nodeonstokes;
    193193
    194194                %Create MacaAyeal Approximation where needed
    195                 md.elements_type(find(macayealstokesflag))=6;
     195                md.flowequation.element_equation(find(macayealstokesflag))=6;
    196196
    197197                %Now recreate nodeonmacayealstokes
     
    204204
    205205%Create vertices_type
    206 md.vertices_type=zeros(md.numberofnodes,1);
     206md.flowequation.vertex_equation=zeros(md.numberofnodes,1);
    207207pos=find(nodeonhutter);
    208 md.vertices_type(pos)=1;
     208md.flowequation.vertex_equation(pos)=1;
    209209pos=find(nodeonmacayeal);
    210 md.vertices_type(pos)=2;
     210md.flowequation.vertex_equation(pos)=2;
    211211pos=find(nodeonpattyn);
    212 md.vertices_type(pos)=3;
     212md.flowequation.vertex_equation(pos)=3;
    213213pos=find(nodeonhutter);
    214 md.vertices_type(pos)=1;
     214md.flowequation.vertex_equation(pos)=1;
    215215pos=find(nodeonpattyn & nodeonmacayeal);
    216 md.vertices_type(pos)=3;
     216md.flowequation.vertex_equation(pos)=3;
    217217pos=find(nodeonmacayealpattyn);
    218 md.vertices_type(pos)=5;
     218md.flowequation.vertex_equation(pos)=5;
    219219pos=find(nodeonstokes);
    220 md.vertices_type(pos)=4;
     220md.flowequation.vertex_equation(pos)=4;
    221221if any(stokesflag),
    222222        pos=find(~nodeonstokes);
    223223        if(~any(pattynflag) & ~any(macayealflag)),
    224                 md.vertices_type(pos)=0;
     224                md.flowequation.vertex_equation(pos)=0;
    225225        end
    226226end
    227227pos=find(nodeonpattynstokes);
    228 md.vertices_type(pos)=7;
     228md.flowequation.vertex_equation(pos)=7;
    229229pos=find(nodeonmacayealstokes);
    230 md.vertices_type(pos)=6;
     230md.flowequation.vertex_equation(pos)=6;
    231231
    232232%figure out solution types
    233 md.ishutter=double(any(md.elements_type==1));
    234 md.ismacayealpattyn=double(any(md.elements_type==2 | md.elements_type==3));
    235 md.isstokes=double(any(md.elements_type==4));
    236 
    237 end
     233md.flowequation.ishutter=double(any(md.flowequation.element_equation==1));
     234md.flowequation.ismacayealpattyn=double(any(md.flowequation.element_equation==2 | md.flowequation.element_equation==3));
     235md.flowequation.isstokes=double(any(md.flowequation.element_equation==4));
     236
     237end
  • issm/trunk/src/m/solutions/diagnostic_core.m

    r9650 r9661  
    1212        %recover parameters common to all solutions
    1313        dim=femmodel.parameters.Dim;
    14         ishutter=femmodel.parameters.Ishutter;
    15         ismacayealpattyn=femmodel.parameters.Ismacayealpattyn;
    16         isstokes=femmodel.parameters.Isstokes;
     14        ishutter=femmodel.parameters.FlowequationIshutter;
     15        ismacayealpattyn=femmodel.parameters.FlowequationIsmacayealpattyn;
     16        isstokes=femmodel.parameters.FlowequationIsstokes;
    1717        dakota_analysis=femmodel.parameters.QmuIsdakota;
    1818        control_analysis=femmodel.parameters.ControlAnalysis;
Note: See TracChangeset for help on using the changeset viewer.