source:
issm/oecreview/Archive/15392-16133/ISSM-15922-15923.diff@
16134
Last change on this file since 16134 was 16134, checked in by , 12 years ago | |
---|---|
File size: 7.7 KB |
-
../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateConstraintsStressbalance.cpp
12 12 13 13 /*Intermediary*/ 14 14 int i,j; 15 int count, temp,finiteelement;15 int count,finiteelement; 16 16 IssmDouble g; 17 17 IssmDouble rho_ice; 18 18 IssmDouble FSreconditioning; … … 70 70 if(!iscoupling){ 71 71 72 72 /*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 110 78 IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvxEnum,StressbalanceAnalysisEnum,finiteelement,1); 111 79 IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvyEnum,StressbalanceAnalysisEnum,finiteelement,2); 112 80 -
../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateNodesStressbalance.cpp
12 12 13 13 /*Intermediary*/ 14 14 bool isSSA,isL1L2,isHO,isFS,iscoupling; 15 int temp,finiteelement=-1,approximation=-1;15 int finiteelement=-1,approximation=-1; 16 16 17 17 /*Fetch parameters: */ 18 18 iomodel->Constant(&isSSA,FlowequationIsSSAEnum); … … 35 35 /*Get finite element type*/ 36 36 if(isSSA){ 37 37 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); 46 39 } 47 40 else if(isL1L2){ 48 41 approximation = L1L2ApproximationEnum; … … 50 43 } 51 44 else if(isHO){ 52 45 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); 63 47 } 64 48 else if(isFS){ 65 49 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); 75 51 } 76 52 iomodel->FetchData(8,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum, 77 53 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,StressbalanceReferentialEnum); -
../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/UpdateElementsStressbalance.cpp
15 15 16 16 void UpdateElementsStressbalance(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 int materials_type,finiteelement ,temp;18 int materials_type,finiteelement; 19 19 int approximation; 20 20 int* finiteelement_list=NULL; 21 21 bool isSSA,isL1L2,isHO,isFS,iscoupling; … … 47 47 48 48 /*Get finite element type*/ 49 49 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); 86 54 for(int i=0;i<iomodel->numberofelements;i++){ 87 55 finiteelement_list[i]=finiteelement; 88 56 }
Note:
See TracBrowser
for help on using the repository browser.