source: issm/oecreview/Archive/15392-16133/ISSM-15922-15923.diff

Last change on this file was 16134, checked in by Mathieu Morlighem, 12 years ago

Added Archive/15392-16133

File size: 7.7 KB
  • ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateConstraintsStressbalance.cpp

     
    1212
    1313        /*Intermediary*/
    1414        int        i,j;
    15         int        count,temp,finiteelement;
     15        int        count,finiteelement;
    1616        IssmDouble g;
    1717        IssmDouble rho_ice;
    1818        IssmDouble FSreconditioning;
     
    7070        if(!iscoupling){
    7171
    7272                /*Get finite element type*/
    73                 if(isSSA){
    74                         iomodel->Constant(&temp,FlowequationFeSSAEnum);
    75                         switch(temp){
    76                                 case 0 : finiteelement = P1Enum;                break;
    77                                 case 1 : finiteelement = P2Enum;                break;
    78                                 case 2 : finiteelement = P1bubblecondensedEnum; break;
    79                                 case 3 : finiteelement = P1bubbleEnum;          break;
    80                                 default: _error_("finite element "<<temp<<" not supported");
    81                         }
    82                 }
    83                 else if(isL1L2){
    84                         finiteelement = P1Enum;
    85                 }
    86                 else if(isHO){
    87                         iomodel->Constant(&temp,FlowequationFeHOEnum);
    88                         switch(temp){
    89                                 case 0 : finiteelement = P1Enum;                break;
    90                                 case 1 : finiteelement = P1xP2Enum;             break;
    91                                 case 2 : finiteelement = P2xP1Enum;             break;
    92                                 case 3 : finiteelement = P2Enum;                break;
    93                                 case 4 : finiteelement = P1bubblecondensedEnum; break;
    94                                 case 5 : finiteelement = P1bubbleEnum;          break;
    95                                 default: _error_("finite element "<<temp<<" not supported");
    96                         }
    97                 }
    98                 else if(isFS){
    99                         finiteelement = P1Enum;
    100                         iomodel->Constant(&temp,FlowequationFeFSEnum);
    101                         switch(temp){
    102                                 case 0 : finiteelement = P1Enum;       break;//P1P1
    103                                 case 1 : finiteelement = P1Enum;       break;//P1P1GSL
    104                                 case 2 : finiteelement = P1bubbleEnum; break;//MINIcondensed
    105                                 case 3 : finiteelement = P1bubbleEnum; break;//MINI
    106                                 case 4 : finiteelement = P2Enum;       break;//TaylorHood (P2P1)
    107                                 default: _error_("finite element "<<temp<<" not supported");
    108                         }
    109                 }
     73                if(isSSA)       iomodel->Constant(&finiteelement,FlowequationFeSSAEnum);
     74                else if(isL1L2) finiteelement = P1Enum;
     75                else if(isHO)   iomodel->Constant(&finiteelement,FlowequationFeHOEnum);
     76                else if(isFS)   iomodel->Constant(&finiteelement,FlowequationFeFSEnum);
     77
    11078                IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvxEnum,StressbalanceAnalysisEnum,finiteelement,1);
    11179                IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvyEnum,StressbalanceAnalysisEnum,finiteelement,2);
    11280
  • ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateNodesStressbalance.cpp

     
    1212
    1313        /*Intermediary*/
    1414        bool isSSA,isL1L2,isHO,isFS,iscoupling;
    15         int  temp,finiteelement=-1,approximation=-1;
     15        int  finiteelement=-1,approximation=-1;
    1616
    1717        /*Fetch parameters: */
    1818        iomodel->Constant(&isSSA,FlowequationIsSSAEnum);
     
    3535                /*Get finite element type*/
    3636                if(isSSA){
    3737                        approximation=SSAApproximationEnum;
    38                         iomodel->Constant(&temp,FlowequationFeSSAEnum);
    39                         switch(temp){
    40                                 case 0 : finiteelement = P1Enum;                break;
    41                                 case 1 : finiteelement = P2Enum;                break;
    42                                 case 2 : finiteelement = P1bubblecondensedEnum; break;
    43                                 case 3 : finiteelement = P1bubbleEnum;          break;
    44                                 default: _error_("finite element "<<temp<<" not supported");
    45                         }
     38                        iomodel->Constant(&finiteelement,FlowequationFeSSAEnum);
    4639                }
    4740                else if(isL1L2){
    4841                        approximation = L1L2ApproximationEnum;
     
    5043                }
    5144                else if(isHO){
    5245                        approximation = HOApproximationEnum;
    53                         iomodel->Constant(&temp,FlowequationFeHOEnum);
    54                         switch(temp){
    55                                 case 0 : finiteelement = P1Enum;                break;
    56                                 case 1 : finiteelement = P1xP2Enum;             break;
    57                                 case 2 : finiteelement = P2xP1Enum;             break;
    58                                 case 3 : finiteelement = P2Enum;                break;
    59                                 case 4 : finiteelement = P1bubblecondensedEnum; break;
    60                                 case 5 : finiteelement = P1bubbleEnum;          break;
    61                                 default: _error_("finite element "<<temp<<" not supported");
    62                         }
     46                        iomodel->Constant(&finiteelement,FlowequationFeHOEnum);
    6347                }
    6448                else if(isFS){
    6549                        approximation = FSApproximationEnum;
    66                         iomodel->Constant(&temp,FlowequationFeFSEnum);
    67                         switch(temp){
    68                                 case 0 : finiteelement = P1P1Enum;          break;
    69                                 case 1 : finiteelement = P1P1GLSEnum;       break;
    70                                 case 2 : finiteelement = MINIcondensedEnum; break;
    71                                 case 3 : finiteelement = MINIEnum;          break;
    72                                 case 4 : finiteelement = TaylorHoodEnum;    break;
    73                                 default: _error_("finite element "<<temp<<" not supported");
    74                         }
     50                        iomodel->Constant(&finiteelement,FlowequationFeFSEnum);
    7551                }
    7652                iomodel->FetchData(8,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
    7753                                        MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,StressbalanceReferentialEnum);
  • ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/UpdateElementsStressbalance.cpp

     
    1515
    1616void    UpdateElementsStressbalance(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){
    1717
    18         int    materials_type,finiteelement,temp;
     18        int    materials_type,finiteelement;
    1919        int    approximation;
    2020        int*   finiteelement_list=NULL;
    2121        bool   isSSA,isL1L2,isHO,isFS,iscoupling;
     
    4747
    4848        /*Get finite element type*/
    4949        if(!iscoupling){
    50                 if(isSSA){
    51                         iomodel->Constant(&temp,FlowequationFeSSAEnum);
    52                         switch(temp){
    53                                 case 0 : finiteelement = P1Enum;                break;
    54                                 case 1 : finiteelement = P2Enum;                break;
    55                                 case 2 : finiteelement = P1bubblecondensedEnum; break;
    56                                 case 3 : finiteelement = P1bubbleEnum;          break;
    57                                 default: _error_("finite element "<<temp<<" not supported");
    58                         }
    59                 }
    60                 else if(isL1L2){
    61                         finiteelement = P1Enum;
    62                 }
    63                 else if(isHO){
    64                         iomodel->Constant(&temp,FlowequationFeHOEnum);
    65                         switch(temp){
    66                                 case 0 : finiteelement = P1Enum;                break;
    67                                 case 1 : finiteelement = P1xP2Enum;             break;
    68                                 case 2 : finiteelement = P2xP1Enum;             break;
    69                                 case 3 : finiteelement = P2Enum;                break;
    70                                 case 4 : finiteelement = P1bubblecondensedEnum; break;
    71                                 case 5 : finiteelement = P1bubbleEnum;          break;
    72                                 default: _error_("finite element "<<temp<<" not supported");
    73                         }
    74                 }
    75                 else if(isFS){
    76                         iomodel->Constant(&temp,FlowequationFeFSEnum);
    77                         switch(temp){
    78                                 case 0 : finiteelement = P1P1Enum;          break;
    79                                 case 1 : finiteelement = P1P1GLSEnum;       break;
    80                                 case 2 : finiteelement = MINIcondensedEnum; break;
    81                                 case 3 : finiteelement = MINIEnum;          break;
    82                                 case 4 : finiteelement = TaylorHoodEnum;    break;
    83                                 default: _error_("finite element "<<temp<<" not supported");
    84                         }
    85                 }
     50                if(isSSA)       iomodel->Constant(&finiteelement,FlowequationFeSSAEnum);
     51                else if(isL1L2) finiteelement = P1Enum;
     52                else if(isHO)   iomodel->Constant(&finiteelement,FlowequationFeHOEnum);
     53                else if(isFS)   iomodel->Constant(&finiteelement,FlowequationFeFSEnum);
    8654                for(int i=0;i<iomodel->numberofelements;i++){
    8755                        finiteelement_list[i]=finiteelement;
    8856                }
Note: See TracBrowser for help on using the repository browser.