Changeset 15567
- Timestamp:
- 07/23/13 14:30:29 (12 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 27 added
- 27 deleted
- 34 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/diagnostic_core.cpp
r15564 r15567 56 56 if(VerboseSolution()) _printf0_(" computing SIA velocities\n"); 57 57 58 /*Take the last velocity into account so that the velocity on the MacAyealdomain is not zero*/58 /*Take the last velocity into account so that the velocity on the SSA domain is not zero*/ 59 59 if(isSSA || isL1L2 || isHO ) ResetBoundaryConditions(femmodel,DiagnosticSIAAnalysisEnum); 60 60 femmodel->SetCurrentConfiguration(DiagnosticSIAAnalysisEnum); -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r15564 r15567 1193 1193 GetSolutionFromInputsDiagnosticFS(solution); 1194 1194 } 1195 else if (approximation== MacAyealApproximationEnum || approximation==HOApproximationEnum || approximation==SIAApproximationEnum){1195 else if (approximation==SSAApproximationEnum || approximation==HOApproximationEnum || approximation==SIAApproximationEnum){ 1196 1196 GetSolutionFromInputsDiagnosticHoriz(solution); 1197 1197 } 1198 else if (approximation== MacAyealHOApproximationEnum || approximation==HOFSApproximationEnum || approximation==MacAyealFSApproximationEnum){1198 else if (approximation==SSAHOApproximationEnum || approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 1199 1199 return; //the elements around will create the solution 1200 1200 } … … 1970 1970 //Need to know the type of approximation for this element 1971 1971 if(iomodel->Data(FlowequationElementEquationEnum)){ 1972 if (iomodel->Data(FlowequationElementEquationEnum)[index]== MacAyealApproximationEnum){1973 this->inputs->AddInput(new IntInput(ApproximationEnum, MacAyealApproximationEnum));1972 if (iomodel->Data(FlowequationElementEquationEnum)[index]==SSAApproximationEnum){ 1973 this->inputs->AddInput(new IntInput(ApproximationEnum,SSAApproximationEnum)); 1974 1974 } 1975 1975 else if (iomodel->Data(FlowequationElementEquationEnum)[index]==HOApproximationEnum){ 1976 1976 this->inputs->AddInput(new IntInput(ApproximationEnum,HOApproximationEnum)); 1977 1977 } 1978 else if (iomodel->Data(FlowequationElementEquationEnum)[index]== MacAyealHOApproximationEnum){1979 this->inputs->AddInput(new IntInput(ApproximationEnum, MacAyealHOApproximationEnum));1978 else if (iomodel->Data(FlowequationElementEquationEnum)[index]==SSAHOApproximationEnum){ 1979 this->inputs->AddInput(new IntInput(ApproximationEnum,SSAHOApproximationEnum)); 1980 1980 } 1981 1981 else if (iomodel->Data(FlowequationElementEquationEnum)[index]==SIAApproximationEnum){ … … 1988 1988 this->inputs->AddInput(new IntInput(ApproximationEnum,FSApproximationEnum)); 1989 1989 } 1990 else if (iomodel->Data(FlowequationElementEquationEnum)[index]== MacAyealFSApproximationEnum){1991 this->inputs->AddInput(new IntInput(ApproximationEnum, MacAyealFSApproximationEnum));1990 else if (iomodel->Data(FlowequationElementEquationEnum)[index]==SSAFSApproximationEnum){ 1991 this->inputs->AddInput(new IntInput(ApproximationEnum,SSAFSApproximationEnum)); 1992 1992 } 1993 1993 else if (iomodel->Data(FlowequationElementEquationEnum)[index]==HOFSApproximationEnum){ … … 2788 2788 /*For FS only: we want the CS to be tangential to the bedrock*/ 2789 2789 inputs->GetInputValue(&approximation,ApproximationEnum); 2790 if(IsFloating() || !IsOnBed() || (approximation!=FSApproximationEnum && approximation!= MacAyealFSApproximationEnum && approximation!=HOFSApproximationEnum)) return;2790 if(IsFloating() || !IsOnBed() || (approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum)) return; 2791 2791 2792 2792 /*Get slope on each node*/ … … 2883 2883 if(analysis_type==DiagnosticHorizAnalysisEnum){ 2884 2884 inputs->GetInputValue(&approximation,ApproximationEnum); 2885 if(approximation== MacAyealHOApproximationEnum || approximation==MacAyealFSApproximationEnum){2885 if(approximation==SSAHOApproximationEnum || approximation==SSAFSApproximationEnum){ 2886 2886 parameters->FindParam(&numlayers,MeshNumberoflayersEnum); 2887 2887 o_nz += numlayers*3; … … 2999 2999 3000 3000 /*Bail out if this element if: 3001 * -> Non MacAyealnot on the surface3002 * -> MacAyeal(2d model) and not on bed) */3003 if ((approximation!= MacAyealApproximationEnum && !IsOnSurface()) || (approximation==MacAyealApproximationEnum && !IsOnBed())){3001 * -> Non SSA not on the surface 3002 * -> SSA (2d model) and not on bed) */ 3003 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBed())){ 3004 3004 return 0; 3005 3005 } 3006 else if (approximation== MacAyealApproximationEnum){3006 else if (approximation==SSAApproximationEnum){ 3007 3007 3008 3008 /*This element should be collapsed into a tria element at its base. Create this tria element, … … 3194 3194 } 3195 3195 } 3196 if(*(iomodel->Data(FlowequationElementEquationEnum)+index)== MacAyealFSApproximationEnum){3197 /*Create Vz MacAyealand VzFS Enums*/3196 if(*(iomodel->Data(FlowequationElementEquationEnum)+index)==SSAFSApproximationEnum){ 3197 /*Create VzSSA and VzFS Enums*/ 3198 3198 if(iomodel->Data(VzEnum) && iomodel->Data(FlowequationBorderFSEnum)){ 3199 3199 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]*iomodel->Data(FlowequationBorderFSEnum)[penta_vertex_ids[i]-1]; 3200 3200 this->inputs->AddInput(new PentaInput(VzFSEnum,nodeinputs,P1Enum)); 3201 3201 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]*(1-iomodel->Data(FlowequationBorderFSEnum)[penta_vertex_ids[i]-1]); 3202 this->inputs->AddInput(new PentaInput(Vz MacAyealEnum,nodeinputs,P1Enum));3202 this->inputs->AddInput(new PentaInput(VzSSAEnum,nodeinputs,P1Enum)); 3203 3203 } 3204 3204 else{ 3205 3205 for(i=0;i<6;i++)nodeinputs[i]=0; 3206 3206 this->inputs->AddInput(new PentaInput(VzFSEnum,nodeinputs,P1Enum)); 3207 this->inputs->AddInput(new PentaInput(Vz MacAyealEnum,nodeinputs,P1Enum));3207 this->inputs->AddInput(new PentaInput(VzSSAEnum,nodeinputs,P1Enum)); 3208 3208 } 3209 3209 } … … 4774 4774 4775 4775 switch(approximation){ 4776 case MacAyealApproximationEnum:4777 return CreateKMatrixAdjoint MacAyeal2d();4776 case SSAApproximationEnum: 4777 return CreateKMatrixAdjointSSA2d(); 4778 4778 case HOApproximationEnum: 4779 4779 return CreateKMatrixAdjointHO(); … … 4787 4787 } 4788 4788 /*}}}*/ 4789 /*FUNCTION Penta::CreateKMatrixAdjoint MacAyeal2d{{{*/4790 ElementMatrix* Penta::CreateKMatrixAdjoint MacAyeal2d(void){4789 /*FUNCTION Penta::CreateKMatrixAdjointSSA2d{{{*/ 4790 ElementMatrix* Penta::CreateKMatrixAdjointSSA2d(void){ 4791 4791 4792 4792 /*Figure out if this penta is collapsed. If so, then bailout, except if it is at the … … 4810 4810 /*Call Tria function*/ 4811 4811 Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria. 4812 ElementMatrix* Ke=tria->CreateKMatrixAdjoint MacAyeal();4812 ElementMatrix* Ke=tria->CreateKMatrixAdjointSSA(); 4813 4813 delete tria->material; delete tria; 4814 4814 … … 4971 4971 4972 4972 switch(approximation){ 4973 case MacAyealApproximationEnum:4974 return CreatePVectorAdjoint MacAyeal();4973 case SSAApproximationEnum: 4974 return CreatePVectorAdjointSSA(); 4975 4975 case HOApproximationEnum: 4976 4976 return CreatePVectorAdjointHO(); … … 4984 4984 } 4985 4985 /*}}}*/ 4986 /*FUNCTION Penta::CreatePVectorAdjoint MacAyeal{{{*/4987 ElementVector* Penta::CreatePVectorAdjoint MacAyeal(){4986 /*FUNCTION Penta::CreatePVectorAdjointSSA{{{*/ 4987 ElementVector* Penta::CreatePVectorAdjointSSA(){ 4988 4988 4989 4989 if (!IsOnBed()) return NULL; … … 5056 5056 inputs->GetInputValue(&approximation,ApproximationEnum); 5057 5057 switch(approximation){ 5058 case MacAyealApproximationEnum:5059 GradjDrag MacAyeal(gradient,control_index);5058 case SSAApproximationEnum: 5059 GradjDragSSA(gradient,control_index); 5060 5060 break; 5061 5061 case HOApproximationEnum: … … 5076 5076 inputs->GetInputValue(&approximation,ApproximationEnum); 5077 5077 switch(approximation){ 5078 case MacAyealApproximationEnum:5079 GradjBbar MacAyeal(gradient,control_index);5078 case SSAApproximationEnum: 5079 GradjBbarSSA(gradient,control_index); 5080 5080 break; 5081 5081 case HOApproximationEnum: … … 5131 5131 } 5132 5132 /*}}}*/ 5133 /*FUNCTION Penta::GradjDrag MacAyeal{{{*/5134 void Penta::GradjDrag MacAyeal(Vector<IssmDouble>* gradient,int control_index){5133 /*FUNCTION Penta::GradjDragSSA {{{*/ 5134 void Penta::GradjDragSSA(Vector<IssmDouble>* gradient,int control_index){ 5135 5135 5136 5136 /*Gradient is 0 if on shelf or not on bed*/ … … 5139 5139 /*Spawn tria*/ 5140 5140 Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria. 5141 tria->GradjDrag MacAyeal(gradient,control_index);5141 tria->GradjDragSSA(gradient,control_index); 5142 5142 delete tria->material; delete tria; 5143 5143 … … 5306 5306 } 5307 5307 /*}}}*/ 5308 /*FUNCTION Penta::GradjBbar MacAyeal{{{*/5309 void Penta::GradjBbar MacAyeal(Vector<IssmDouble>* gradient,int control_index){5308 /*FUNCTION Penta::GradjBbarSSA {{{*/ 5309 void Penta::GradjBbarSSA(Vector<IssmDouble>* gradient,int control_index){ 5310 5310 5311 5311 /*This element should be collapsed into a tria element at its base*/ … … 5317 5317 /*Collapse element to the base*/ 5318 5318 Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria (lower face). 5319 tria->GradjB MacAyeal(gradient,control_index);5319 tria->GradjBSSA(gradient,control_index); 5320 5320 delete tria->material; delete tria; 5321 5321 … … 5335 5335 /*Collapse element to the base*/ 5336 5336 Tria* tria=(Tria*)SpawnTria(0,1,2); 5337 tria->GradjB MacAyeal(gradient,control_index); //We use MacAyealas an estimate for now5337 tria->GradjBSSA(gradient,control_index); //We use SSA as an estimate for now 5338 5338 delete tria->material; delete tria; 5339 5339 … … 5352 5352 /*Collapse element to the base*/ 5353 5353 Tria* tria=(Tria*)SpawnTria(0,1,2); 5354 tria->GradjB MacAyeal(gradient,control_index); //We use MacAyealas an estimate for now5354 tria->GradjBSSA(gradient,control_index); //We use SSA as an estimate for now 5355 5355 delete tria->material; delete tria; 5356 5356 … … 5495 5495 5496 5496 /*Bail out if this element if: 5497 * -> Non MacAyealand not on the surface5498 * -> MacAyeal(2d model) and not on bed) */5499 if ((approximation!= MacAyealApproximationEnum && !IsOnSurface()) || (approximation==MacAyealApproximationEnum && !IsOnBed())){5497 * -> Non SSA and not on the surface 5498 * -> SSA (2d model) and not on bed) */ 5499 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBed())){ 5500 5500 return 0; 5501 5501 } 5502 else if (approximation== MacAyealApproximationEnum){5502 else if (approximation==SSAApproximationEnum){ 5503 5503 5504 5504 /*This element should be collapsed into a tria element at its base. Create this tria element, … … 5532 5532 5533 5533 /*Bail out if this element if: 5534 * -> Non MacAyealand not on the surface5535 * -> MacAyeal(2d model) and not on bed) */5536 if ((approximation!= MacAyealApproximationEnum && !IsOnSurface()) || (approximation==MacAyealApproximationEnum && !IsOnBed())){5534 * -> Non SSA and not on the surface 5535 * -> SSA (2d model) and not on bed) */ 5536 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBed())){ 5537 5537 return 0; 5538 5538 } 5539 else if (approximation== MacAyealApproximationEnum){5539 else if (approximation==SSAApproximationEnum){ 5540 5540 5541 5541 /*This element should be collapsed into a tria element at its base. Create this tria element, … … 5569 5569 5570 5570 /*Bail out if this element if: 5571 * -> Non MacAyealand not on the surface5572 * -> MacAyeal(2d model) and not on bed) */5573 if ((approximation!= MacAyealApproximationEnum && !IsOnSurface()) || (approximation==MacAyealApproximationEnum && !IsOnBed())){5571 * -> Non SSA and not on the surface 5572 * -> SSA (2d model) and not on bed) */ 5573 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBed())){ 5574 5574 return 0; 5575 5575 } 5576 else if (approximation== MacAyealApproximationEnum){5576 else if (approximation==SSAApproximationEnum){ 5577 5577 5578 5578 /*This element should be collapsed into a tria element at its base. Create this tria element, … … 5608 5608 5609 5609 /*Bail out if this element if: 5610 * -> Non MacAyealand not on the surface5611 * -> MacAyeal(2d model) and not on bed) */5612 if ((approximation!= MacAyealApproximationEnum && !IsOnSurface()) || (approximation==MacAyealApproximationEnum && !IsOnBed())){5610 * -> Non SSA and not on the surface 5611 * -> SSA (2d model) and not on bed) */ 5612 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBed())){ 5613 5613 return 0; 5614 5614 } 5615 else if (approximation== MacAyealApproximationEnum){5615 else if (approximation==SSAApproximationEnum){ 5616 5616 5617 5617 /*This element should be collapsed into a tria element at its base. Create this tria element, … … 5645 5645 5646 5646 /*Bail out if this element if: 5647 * -> Non MacAyealand not on the surface5648 * -> MacAyeal(2d model) and not on bed) */5649 if ((approximation!= MacAyealApproximationEnum && !IsOnSurface()) || (approximation==MacAyealApproximationEnum && !IsOnBed())){5647 * -> Non SSA and not on the surface 5648 * -> SSA (2d model) and not on bed) */ 5649 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBed())){ 5650 5650 return 0; 5651 5651 } 5652 else if (approximation== MacAyealApproximationEnum){5652 else if (approximation==SSAApproximationEnum){ 5653 5653 5654 5654 /*This element should be collapsed into a tria element at its base. Create this tria element, … … 5983 5983 } 5984 5984 /*}}}*/ 5985 /*FUNCTION Penta::CreateKMatrixCoupling MacAyealHO{{{*/5986 ElementMatrix* Penta::CreateKMatrixCoupling MacAyealHO(void){5985 /*FUNCTION Penta::CreateKMatrixCouplingSSAHO{{{*/ 5986 ElementMatrix* Penta::CreateKMatrixCouplingSSAHO(void){ 5987 5987 5988 5988 /*compute all stiffness matrices for this element*/ 5989 ElementMatrix* Ke1=CreateKMatrixCoupling MacAyealHOViscous();5990 ElementMatrix* Ke2=CreateKMatrixCoupling MacAyealHOFriction();5989 ElementMatrix* Ke1=CreateKMatrixCouplingSSAHOViscous(); 5990 ElementMatrix* Ke2=CreateKMatrixCouplingSSAHOFriction(); 5991 5991 ElementMatrix* Ke=new ElementMatrix(Ke1,Ke2); 5992 5992 … … 5997 5997 } 5998 5998 /*}}}*/ 5999 /*FUNCTION Penta::CreateKMatrixCoupling MacAyealHOViscous{{{*/6000 ElementMatrix* Penta::CreateKMatrixCoupling MacAyealHOViscous(void){5999 /*FUNCTION Penta::CreateKMatrixCouplingSSAHOViscous{{{*/ 6000 ElementMatrix* Penta::CreateKMatrixCouplingSSAHOViscous(void){ 6001 6001 6002 6002 /*Constants*/ … … 6036 6036 6037 6037 /*Initialize Element matrix*/ 6038 ElementMatrix* Ke1=new ElementMatrix(pentabase->nodes,NUMVERTICES,this->parameters, MacAyealApproximationEnum);6038 ElementMatrix* Ke1=new ElementMatrix(pentabase->nodes,NUMVERTICES,this->parameters,SSAApproximationEnum); 6039 6039 ElementMatrix* Ke2=new ElementMatrix(this->nodes ,NUMVERTICES,this->parameters,HOApproximationEnum); 6040 6040 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2); … … 6058 6058 6059 6059 GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss); 6060 GetB MacAyealHO(&B[0][0], &xyz_list[0][0], gauss);6061 tria->GetBprime MacAyeal(&Bprime[0][0], &xyz_list[0][0], gauss_tria);6060 GetBSSAHO(&B[0][0], &xyz_list[0][0], gauss); 6061 tria->GetBprimeSSA(&Bprime[0][0], &xyz_list[0][0], gauss_tria); 6062 6062 6063 6063 this->GetStrainRate3dHO(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input); … … 6090 6090 } 6091 6091 /*}}}*/ 6092 /*FUNCTION Penta::CreateKMatrixCoupling MacAyealHOFriction{{{*/6093 ElementMatrix* Penta::CreateKMatrixCoupling MacAyealHOFriction(void){6092 /*FUNCTION Penta::CreateKMatrixCouplingSSAHOFriction{{{*/ 6093 ElementMatrix* Penta::CreateKMatrixCouplingSSAHOFriction(void){ 6094 6094 6095 6095 /*Constants*/ … … 6115 6115 /*Initialize Element matrix and return if necessary*/ 6116 6116 if(IsFloating() || !IsOnBed()) return NULL; 6117 ElementMatrix* Ke1=new ElementMatrix(nodes,NUMVERTICES,this->parameters, MacAyealApproximationEnum);6117 ElementMatrix* Ke1=new ElementMatrix(nodes,NUMVERTICES,this->parameters,SSAApproximationEnum); 6118 6118 ElementMatrix* Ke2=new ElementMatrix(nodes,NUMVERTICES,this->parameters,HOApproximationEnum); 6119 6119 ElementMatrix* Ke=new ElementMatrix(Ke1,Ke2); … … 6175 6175 } 6176 6176 /*}}}*/ 6177 /*FUNCTION Penta::CreateKMatrixCoupling MacAyealFS{{{*/6178 ElementMatrix* Penta::CreateKMatrixCoupling MacAyealFS(void){6177 /*FUNCTION Penta::CreateKMatrixCouplingSSAFS{{{*/ 6178 ElementMatrix* Penta::CreateKMatrixCouplingSSAFS(void){ 6179 6179 6180 6180 /*compute all stiffness matrices for this element*/ 6181 ElementMatrix* Ke1=CreateKMatrixCoupling MacAyealFSViscous();6182 ElementMatrix* Ke2=CreateKMatrixCoupling MacAyealFSFriction();6181 ElementMatrix* Ke1=CreateKMatrixCouplingSSAFSViscous(); 6182 ElementMatrix* Ke2=CreateKMatrixCouplingSSAFSFriction(); 6183 6183 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2); 6184 6184 … … 6189 6189 } 6190 6190 /*}}}*/ 6191 /*FUNCTION Penta::CreateKMatrixCoupling MacAyealFSViscous{{{*/6192 ElementMatrix* Penta::CreateKMatrixCoupling MacAyealFSViscous(void){6191 /*FUNCTION Penta::CreateKMatrixCouplingSSAFSViscous{{{*/ 6192 ElementMatrix* Penta::CreateKMatrixCouplingSSAFSViscous(void){ 6193 6193 6194 6194 /*Constants*/ … … 6233 6233 6234 6234 /*Initialize Element matrix and return if necessary*/ 6235 ElementMatrix* Ke1=new ElementMatrix(pentabase->nodes,NUMVERTICES,this->parameters, MacAyealApproximationEnum);6235 ElementMatrix* Ke1=new ElementMatrix(pentabase->nodes,NUMVERTICES,this->parameters,SSAApproximationEnum); 6236 6236 ElementMatrix* Ke2=new ElementMatrix(this->nodes ,NUMVERTICES,this->parameters,FSApproximationEnum); 6237 6237 ElementMatrix* Ke=new ElementMatrix(Ke1,Ke2); … … 6254 6254 6255 6255 GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss); 6256 GetB MacAyealFS(&B[0][0], &xyz_list[0][0], gauss);6257 tria->GetBprime MacAyealFS(&Bprime[0][0], &xyz_list[0][0], gauss_tria);6258 tria->GetB MacAyealFS(&B2[0][0], &xyz_list[0][0], gauss_tria);6259 GetBprime MacAyealFS(&Bprime2[0][0], &xyz_list[0][0], gauss);6256 GetBSSAFS(&B[0][0], &xyz_list[0][0], gauss); 6257 tria->GetBprimeSSAFS(&Bprime[0][0], &xyz_list[0][0], gauss_tria); 6258 tria->GetBSSAFS(&B2[0][0], &xyz_list[0][0], gauss_tria); 6259 GetBprimeSSAFS(&Bprime2[0][0], &xyz_list[0][0], gauss); 6260 6260 6261 6261 this->GetStrainRate3d(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input,vz_input); … … 6293 6293 } 6294 6294 /*}}}*/ 6295 /*FUNCTION Penta::CreateKMatrixCoupling MacAyealFSFriction {{{*/6296 ElementMatrix* Penta::CreateKMatrixCoupling MacAyealFSFriction(void){6295 /*FUNCTION Penta::CreateKMatrixCouplingSSAFSFriction {{{*/ 6296 ElementMatrix* Penta::CreateKMatrixCouplingSSAFSFriction(void){ 6297 6297 6298 6298 /*Constants*/ … … 6313 6313 IssmDouble xyz_list[NUMVERTICES][3]; 6314 6314 IssmDouble xyz_list_tria[NUMVERTICES2D][3]; 6315 IssmDouble L MacAyealFS[8][numdof2dm];6316 IssmDouble Lprime MacAyealFS[8][numdof2d];6317 IssmDouble DL MacAyealFS[8][8]={0.0};6318 IssmDouble LFS MacAyeal[4][numdof2d];6319 IssmDouble LprimeFS MacAyeal[4][numdof2dm];6320 IssmDouble DLFS MacAyeal[4][4]={0.0};6315 IssmDouble LSSAFS[8][numdof2dm]; 6316 IssmDouble LprimeSSAFS[8][numdof2d]; 6317 IssmDouble DLSSAFS[8][8]={0.0}; 6318 IssmDouble LFSSSA[4][numdof2d]; 6319 IssmDouble LprimeFSSSA[4][numdof2dm]; 6320 IssmDouble DLFSSSA[4][4]={0.0}; 6321 6321 IssmDouble Ke_drag_gaussian[numdof2dm][numdof2d]; 6322 6322 IssmDouble Ke_drag_gaussian2[numdof2d][numdof2dm]; … … 6329 6329 inputs->GetInputValue(&approximation,ApproximationEnum); 6330 6330 if(IsFloating() || !IsOnBed()) return NULL; 6331 ElementMatrix* Ke1=new ElementMatrix(this->nodes,NUMVERTICES,this->parameters, MacAyealApproximationEnum);6331 ElementMatrix* Ke1=new ElementMatrix(this->nodes,NUMVERTICES,this->parameters,SSAApproximationEnum); 6332 6332 ElementMatrix* Ke2=new ElementMatrix(this->nodes,NUMVERTICES,this->parameters,FSApproximationEnum); 6333 6333 ElementMatrix* Ke=new ElementMatrix(Ke1,Ke2); … … 6361 6361 6362 6362 GetTriaJacobianDeterminant(&Jdet2d, &xyz_list_tria[0][0],gauss); 6363 GetL MacAyealFS(&LMacAyealFS[0][0], gauss);6364 GetLprime MacAyealFS(&LprimeMacAyealFS[0][0], &xyz_list[0][0], gauss);6365 GetLFS MacAyeal(&LFSMacAyeal[0][0], gauss);6366 GetLprimeFS MacAyeal(&LprimeFSMacAyeal[0][0], &xyz_list[0][0], gauss);6363 GetLSSAFS(&LSSAFS[0][0], gauss); 6364 GetLprimeSSAFS(&LprimeSSAFS[0][0], &xyz_list[0][0], gauss); 6365 GetLFSSSA(&LFSSSA[0][0], gauss); 6366 GetLprimeFSSSA(&LprimeFSSSA[0][0], &xyz_list[0][0], gauss); 6367 6367 6368 6368 this->GetStrainRate3d(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input,vz_input); … … 6372 6372 friction->GetAlpha2(&alpha2_gauss, gauss,VxEnum,VyEnum,VzEnum); 6373 6373 6374 DL MacAyealFS[0][0]=alpha2_gauss*gauss->weight*Jdet2d;6375 DL MacAyealFS[1][1]=alpha2_gauss*gauss->weight*Jdet2d;6376 DL MacAyealFS[2][2]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[0]*bed_normal[2];6377 DL MacAyealFS[3][3]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[1]*bed_normal[2];6378 DL MacAyealFS[4][4]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[0];6379 DL MacAyealFS[5][5]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[1];6380 DL MacAyealFS[6][6]=FSreconditioning*gauss->weight*Jdet2d*bed_normal[0];6381 DL MacAyealFS[7][7]=FSreconditioning*gauss->weight*Jdet2d*bed_normal[1];6382 6383 DLFS MacAyeal[0][0]=alpha2_gauss*gauss->weight*Jdet2d;6384 DLFS MacAyeal[1][1]=alpha2_gauss*gauss->weight*Jdet2d;6385 DLFS MacAyeal[2][2]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[0]*bed_normal[2];6386 DLFS MacAyeal[3][3]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[1]*bed_normal[2];6387 6388 TripleMultiply( &L MacAyealFS[0][0],8,numdof2dm,1,6389 &DL MacAyealFS[0][0],8,8,0,6390 &Lprime MacAyealFS[0][0],8,numdof2d,0,6374 DLSSAFS[0][0]=alpha2_gauss*gauss->weight*Jdet2d; 6375 DLSSAFS[1][1]=alpha2_gauss*gauss->weight*Jdet2d; 6376 DLSSAFS[2][2]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[0]*bed_normal[2]; 6377 DLSSAFS[3][3]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[1]*bed_normal[2]; 6378 DLSSAFS[4][4]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[0]; 6379 DLSSAFS[5][5]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[1]; 6380 DLSSAFS[6][6]=FSreconditioning*gauss->weight*Jdet2d*bed_normal[0]; 6381 DLSSAFS[7][7]=FSreconditioning*gauss->weight*Jdet2d*bed_normal[1]; 6382 6383 DLFSSSA[0][0]=alpha2_gauss*gauss->weight*Jdet2d; 6384 DLFSSSA[1][1]=alpha2_gauss*gauss->weight*Jdet2d; 6385 DLFSSSA[2][2]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[0]*bed_normal[2]; 6386 DLFSSSA[3][3]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[1]*bed_normal[2]; 6387 6388 TripleMultiply( &LSSAFS[0][0],8,numdof2dm,1, 6389 &DLSSAFS[0][0],8,8,0, 6390 &LprimeSSAFS[0][0],8,numdof2d,0, 6391 6391 &Ke_drag_gaussian[0][0],0); 6392 6392 6393 TripleMultiply( &LFS MacAyeal[0][0],4,numdof2d,1,6394 &DLFS MacAyeal[0][0],4,4,0,6395 &LprimeFS MacAyeal[0][0],4,numdof2dm,0,6393 TripleMultiply( &LFSSSA[0][0],4,numdof2d,1, 6394 &DLFSSSA[0][0],4,4,0, 6395 &LprimeFSSSA[0][0],4,numdof2dm,0, 6396 6396 &Ke_drag_gaussian2[0][0],0); 6397 6397 … … 6465 6465 6466 6466 switch(approximation){ 6467 case MacAyealApproximationEnum:6468 return CreateKMatrixDiagnostic MacAyeal2d();6467 case SSAApproximationEnum: 6468 return CreateKMatrixDiagnosticSSA2d(); 6469 6469 case L1L2ApproximationEnum: 6470 6470 return CreateKMatrixDiagnosticL1L2(); … … 6477 6477 case NoneApproximationEnum: 6478 6478 return NULL; 6479 case MacAyealHOApproximationEnum:6480 return CreateKMatrixDiagnostic MacAyealHO();6481 case MacAyealFSApproximationEnum:6482 return CreateKMatrixDiagnostic MacAyealFS();6479 case SSAHOApproximationEnum: 6480 return CreateKMatrixDiagnosticSSAHO(); 6481 case SSAFSApproximationEnum: 6482 return CreateKMatrixDiagnosticSSAFS(); 6483 6483 case HOFSApproximationEnum: 6484 6484 return CreateKMatrixDiagnosticHOFS(); … … 6551 6551 return Ke; 6552 6552 }/*}}}*/ 6553 /*FUNCTION Penta::CreateKMatrixDiagnostic MacAyeal2d{{{*/6554 ElementMatrix* Penta::CreateKMatrixDiagnostic MacAyeal2d(void){6553 /*FUNCTION Penta::CreateKMatrixDiagnosticSSA2d{{{*/ 6554 ElementMatrix* Penta::CreateKMatrixDiagnosticSSA2d(void){ 6555 6555 6556 6556 /*Figure out if this penta is collapsed. If so, then bailout, except if it is at the … … 6574 6574 /*Call Tria function*/ 6575 6575 Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria. 6576 ElementMatrix* Ke=tria->CreateKMatrixDiagnostic MacAyeal();6576 ElementMatrix* Ke=tria->CreateKMatrixDiagnosticSSA(); 6577 6577 delete tria->material; delete tria; 6578 6578 … … 6585 6585 } 6586 6586 /*}}}*/ 6587 /*FUNCTION Penta::CreateKMatrixDiagnostic MacAyeal3d{{{*/6588 ElementMatrix* Penta::CreateKMatrixDiagnostic MacAyeal3d(void){6587 /*FUNCTION Penta::CreateKMatrixDiagnosticSSA3d{{{*/ 6588 ElementMatrix* Penta::CreateKMatrixDiagnosticSSA3d(void){ 6589 6589 6590 6590 /*compute all stiffness matrices for this element*/ 6591 ElementMatrix* Ke1=CreateKMatrixDiagnostic MacAyeal3dViscous();6592 ElementMatrix* Ke2=CreateKMatrixDiagnostic MacAyeal3dFriction();6591 ElementMatrix* Ke1=CreateKMatrixDiagnosticSSA3dViscous(); 6592 ElementMatrix* Ke2=CreateKMatrixDiagnosticSSA3dFriction(); 6593 6593 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2); 6594 6594 … … 6599 6599 } 6600 6600 /*}}}*/ 6601 /*FUNCTION Penta::CreateKMatrixDiagnostic MacAyeal3dViscous{{{*/6602 ElementMatrix* Penta::CreateKMatrixDiagnostic MacAyeal3dViscous(void){6601 /*FUNCTION Penta::CreateKMatrixDiagnosticSSA3dViscous{{{*/ 6602 ElementMatrix* Penta::CreateKMatrixDiagnosticSSA3dViscous(void){ 6603 6603 6604 6604 /*Constants*/ … … 6627 6627 6628 6628 /*Initialize Element matrix*/ 6629 ElementMatrix* Ke=new ElementMatrix(tria->nodes,NUMVERTICES2D,this->parameters, MacAyealApproximationEnum);6629 ElementMatrix* Ke=new ElementMatrix(tria->nodes,NUMVERTICES2D,this->parameters,SSAApproximationEnum); 6630 6630 inputs->GetInputValue(&approximation,ApproximationEnum); 6631 6631 … … 6648 6648 6649 6649 GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss); 6650 tria->GetB MacAyeal(&B[0][0], &xyz_list[0][0], gauss_tria);6651 tria->GetBprime MacAyeal(&Bprime[0][0], &xyz_list[0][0], gauss_tria);6652 6653 if(approximation== MacAyealHOApproximationEnum){6650 tria->GetBSSA(&B[0][0], &xyz_list[0][0], gauss_tria); 6651 tria->GetBprimeSSA(&Bprime[0][0], &xyz_list[0][0], gauss_tria); 6652 6653 if(approximation==SSAHOApproximationEnum){ 6654 6654 this->GetStrainRate3dHO(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input); 6655 6655 this->GetStrainRate3dHO(&oldepsilon[0],&xyz_list[0][0],gauss,vxold_input,vyold_input); … … 6659 6659 newviscosity=viscosity+viscosity_overshoot*(viscosity-oldviscosity); 6660 6660 } 6661 else if (approximation== MacAyealFSApproximationEnum){6661 else if (approximation==SSAFSApproximationEnum){ 6662 6662 this->GetStrainRate3d(&epsilons[0],&xyz_list[0][0],gauss,vx_input,vy_input,vz_input); 6663 6663 material->GetViscosity3dFS(&newviscosity,&epsilons[0]); … … 6687 6687 } 6688 6688 /*}}}*/ 6689 /*FUNCTION Penta::CreateKMatrixDiagnostic MacAyeal3dFriction{{{*/6690 ElementMatrix* Penta::CreateKMatrixDiagnostic MacAyeal3dFriction(void){6689 /*FUNCTION Penta::CreateKMatrixDiagnosticSSA3dFriction{{{*/ 6690 ElementMatrix* Penta::CreateKMatrixDiagnosticSSA3dFriction(void){ 6691 6691 6692 6692 /*Initialize Element matrix and return if necessary*/ … … 6697 6697 * nodes: */ 6698 6698 Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria. 6699 ElementMatrix* Ke=tria->CreateKMatrixDiagnostic MacAyealFriction();6699 ElementMatrix* Ke=tria->CreateKMatrixDiagnosticSSAFriction(); 6700 6700 delete tria->material; delete tria; 6701 6701 … … 6704 6704 } 6705 6705 /*}}}*/ 6706 /*FUNCTION Penta::CreateKMatrixDiagnostic MacAyealHO{{{*/6707 ElementMatrix* Penta::CreateKMatrixDiagnostic MacAyealHO(void){6706 /*FUNCTION Penta::CreateKMatrixDiagnosticSSAHO{{{*/ 6707 ElementMatrix* Penta::CreateKMatrixDiagnosticSSAHO(void){ 6708 6708 6709 6709 /*compute all stiffness matrices for this element*/ 6710 ElementMatrix* Ke1=CreateKMatrixDiagnostic MacAyeal3d();6710 ElementMatrix* Ke1=CreateKMatrixDiagnosticSSA3d(); 6711 6711 ElementMatrix* Ke2=CreateKMatrixDiagnosticHO(); 6712 ElementMatrix* Ke3=CreateKMatrixCoupling MacAyealHO();6712 ElementMatrix* Ke3=CreateKMatrixCouplingSSAHO(); 6713 6713 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2,Ke3); 6714 6714 … … 6720 6720 } 6721 6721 /*}}}*/ 6722 /*FUNCTION Penta::CreateKMatrixDiagnostic MacAyealFS{{{*/6723 ElementMatrix* Penta::CreateKMatrixDiagnostic MacAyealFS(void){6722 /*FUNCTION Penta::CreateKMatrixDiagnosticSSAFS{{{*/ 6723 ElementMatrix* Penta::CreateKMatrixDiagnosticSSAFS(void){ 6724 6724 6725 6725 /*compute all stiffness matrices for this element*/ 6726 ElementMatrix* Ke1=CreateKMatrixDiagnostic MacAyeal3d();6726 ElementMatrix* Ke1=CreateKMatrixDiagnosticSSA3d(); 6727 6727 ElementMatrix* Ke2=CreateKMatrixDiagnosticFS(); 6728 ElementMatrix* Ke3=CreateKMatrixCoupling MacAyealFS();6728 ElementMatrix* Ke3=CreateKMatrixCouplingSSAFS(); 6729 6729 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2,Ke3); 6730 6730 … … 6792 6792 6793 6793 GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss); 6794 tria->GetB MacAyeal(&B[0][0], &xyz_list[0][0], gauss_tria);6795 tria->GetBprime MacAyeal(&Bprime[0][0], &xyz_list[0][0], gauss_tria);6794 tria->GetBSSA(&B[0][0], &xyz_list[0][0], gauss_tria); 6795 tria->GetBprimeSSA(&Bprime[0][0], &xyz_list[0][0], gauss_tria); 6796 6796 6797 6797 /*Get viscosity for L1L2 model*/ … … 6828 6828 * nodes: */ 6829 6829 Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria. 6830 ElementMatrix* Ke=tria->CreateKMatrixDiagnostic MacAyealFriction();6830 ElementMatrix* Ke=tria->CreateKMatrixDiagnosticSSAFriction(); 6831 6831 delete tria->material; delete tria; 6832 6832 … … 7051 7051 /*If on water or not FS, skip stiffness: */ 7052 7052 inputs->GetInputValue(&approximation,ApproximationEnum); 7053 if(approximation!=FSApproximationEnum && approximation!= MacAyealFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL;7053 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 7054 7054 ElementMatrix* Ke=new ElementMatrix(nodes,NUMVERTICES,this->parameters,FSApproximationEnum); 7055 7055 … … 7130 7130 /*If on water or not FS, skip stiffness: */ 7131 7131 inputs->GetInputValue(&approximation,ApproximationEnum); 7132 if(approximation!=FSApproximationEnum && approximation!= MacAyealFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL;7132 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 7133 7133 ElementMatrix* Ke=new ElementMatrix(nodes,NUMVERTICES,this->parameters,FSApproximationEnum); 7134 7134 … … 7258 7258 /*If on water or not FS, skip stiffness: */ 7259 7259 inputs->GetInputValue(&approximation,ApproximationEnum); 7260 if(IsFloating() || !IsOnBed() || (approximation!=FSApproximationEnum && approximation!= MacAyealFSApproximationEnum && approximation!=HOFSApproximationEnum)) return NULL;7260 if(IsFloating() || !IsOnBed() || (approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum)) return NULL; 7261 7261 ElementMatrix* Ke=new ElementMatrix(nodes,NUMVERTICES,this->parameters,FSApproximationEnum); 7262 7262 … … 7412 7412 } 7413 7413 /*}}}*/ 7414 /*FUNCTION Penta::CreatePVectorCoupling MacAyealFS {{{*/7415 ElementVector* Penta::CreatePVectorCoupling MacAyealFS(void){7414 /*FUNCTION Penta::CreatePVectorCouplingSSAFS {{{*/ 7415 ElementVector* Penta::CreatePVectorCouplingSSAFS(void){ 7416 7416 7417 7417 /*compute all load vectors for this element*/ 7418 ElementVector* pe1=CreatePVectorCoupling MacAyealFSViscous();7419 ElementVector* pe2=CreatePVectorCoupling MacAyealFSFriction();7418 ElementVector* pe1=CreatePVectorCouplingSSAFSViscous(); 7419 ElementVector* pe2=CreatePVectorCouplingSSAFSFriction(); 7420 7420 ElementVector* pe =new ElementVector(pe1,pe2); 7421 7421 … … 7426 7426 } 7427 7427 /*}}}*/ 7428 /*FUNCTION Penta::CreatePVectorCoupling MacAyealFSViscous {{{*/7429 ElementVector* Penta::CreatePVectorCoupling MacAyealFSViscous(void){7428 /*FUNCTION Penta::CreatePVectorCouplingSSAFSViscous {{{*/ 7429 ElementVector* Penta::CreatePVectorCouplingSSAFSViscous(void){ 7430 7430 7431 7431 /*Constants*/ … … 7446 7446 /*Initialize Element vector and return if necessary*/ 7447 7447 inputs->GetInputValue(&approximation,ApproximationEnum); 7448 if(approximation!= MacAyealFSApproximationEnum) return NULL;7448 if(approximation!=SSAFSApproximationEnum) return NULL; 7449 7449 ElementVector* pe=new ElementVector(nodes,NUMVERTICES,this->parameters,FSApproximationEnum); 7450 7450 … … 7455 7455 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 7456 7456 Input* vz_input=inputs->GetInput(VzEnum); _assert_(vz_input); 7457 Input* vzSSA_input=inputs->GetInput(Vz MacAyealEnum); _assert_(vzSSA_input);7457 Input* vzSSA_input=inputs->GetInput(VzSSAEnum); _assert_(vzSSA_input); 7458 7458 7459 7459 /* Start looping on the number of gaussian points: */ … … 7488 7488 } 7489 7489 /*}}}*/ 7490 /*FUNCTION Penta::CreatePVectorCoupling MacAyealFSFriction{{{*/7491 ElementVector* Penta::CreatePVectorCoupling MacAyealFSFriction(void){7490 /*FUNCTION Penta::CreatePVectorCouplingSSAFSFriction{{{*/ 7491 ElementVector* Penta::CreatePVectorCouplingSSAFSFriction(void){ 7492 7492 7493 7493 /*Constants*/ … … 7513 7513 if(!IsOnBed() || IsFloating()) return NULL; 7514 7514 inputs->GetInputValue(&approximation,ApproximationEnum); 7515 if(approximation!= MacAyealFSApproximationEnum) return NULL;7515 if(approximation!=SSAFSApproximationEnum) return NULL; 7516 7516 ElementVector* pe=new ElementVector(nodes,NUMVERTICES,this->parameters,FSApproximationEnum); 7517 7517 … … 7523 7523 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 7524 7524 Input* vz_input=inputs->GetInput(VzEnum); _assert_(vz_input); 7525 Input* vzSSA_input=inputs->GetInput(Vz MacAyealEnum); _assert_(vzSSA_input);7525 Input* vzSSA_input=inputs->GetInput(VzSSAEnum); _assert_(vzSSA_input); 7526 7526 7527 7527 for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j]; … … 7721 7721 7722 7722 switch(approximation){ 7723 case MacAyealApproximationEnum:7724 return CreatePVectorDiagnostic MacAyeal();7723 case SSAApproximationEnum: 7724 return CreatePVectorDiagnosticSSA(); 7725 7725 case HOApproximationEnum: 7726 7726 return CreatePVectorDiagnosticHO(); … … 7733 7733 case FSApproximationEnum: 7734 7734 return CreatePVectorDiagnosticFS(); 7735 case MacAyealHOApproximationEnum:7736 return CreatePVectorDiagnostic MacAyealHO();7737 case MacAyealFSApproximationEnum:7738 return CreatePVectorDiagnostic MacAyealFS();7735 case SSAHOApproximationEnum: 7736 return CreatePVectorDiagnosticSSAHO(); 7737 case SSAFSApproximationEnum: 7738 return CreatePVectorDiagnosticSSAFS(); 7739 7739 case HOFSApproximationEnum: 7740 7740 return CreatePVectorDiagnosticHOFS(); … … 7744 7744 } 7745 7745 /*}}}*/ 7746 /*FUNCTION Penta::CreatePVectorDiagnostic MacAyealHO{{{*/7747 ElementVector* Penta::CreatePVectorDiagnostic MacAyealHO(void){7746 /*FUNCTION Penta::CreatePVectorDiagnosticSSAHO{{{*/ 7747 ElementVector* Penta::CreatePVectorDiagnosticSSAHO(void){ 7748 7748 7749 7749 /*compute all load vectors for this element*/ 7750 ElementVector* pe1=CreatePVectorDiagnostic MacAyeal();7750 ElementVector* pe1=CreatePVectorDiagnosticSSA(); 7751 7751 ElementVector* pe2=CreatePVectorDiagnosticHO(); 7752 7752 ElementVector* pe =new ElementVector(pe1,pe2); … … 7758 7758 } 7759 7759 /*}}}*/ 7760 /*FUNCTION Penta::CreatePVectorDiagnostic MacAyealFS{{{*/7761 ElementVector* Penta::CreatePVectorDiagnostic MacAyealFS(void){7760 /*FUNCTION Penta::CreatePVectorDiagnosticSSAFS{{{*/ 7761 ElementVector* Penta::CreatePVectorDiagnosticSSAFS(void){ 7762 7762 7763 7763 /*compute all load vectors for this element*/ 7764 ElementVector* pe1=CreatePVectorDiagnostic MacAyeal();7764 ElementVector* pe1=CreatePVectorDiagnosticSSA(); 7765 7765 ElementVector* pe2=CreatePVectorDiagnosticFS(); 7766 ElementVector* pe3=CreatePVectorCoupling MacAyealFS();7766 ElementVector* pe3=CreatePVectorCouplingSSAFS(); 7767 7767 ElementVector* pe =new ElementVector(pe1,pe2,pe3); 7768 7768 … … 7875 7875 } 7876 7876 /*}}}*/ 7877 /*FUNCTION Penta::CreatePVectorDiagnostic MacAyeal{{{*/7878 ElementVector* Penta::CreatePVectorDiagnostic MacAyeal(void){7877 /*FUNCTION Penta::CreatePVectorDiagnosticSSA{{{*/ 7878 ElementVector* Penta::CreatePVectorDiagnosticSSA(void){ 7879 7879 7880 7880 if (!IsOnBed()) return NULL; … … 7882 7882 /*Call Tria function*/ 7883 7883 Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria. 7884 ElementVector* pe=tria->CreatePVectorDiagnostic MacAyeal();7884 ElementVector* pe=tria->CreatePVectorDiagnosticSSA(); 7885 7885 delete tria->material; delete tria; 7886 7886 … … 7896 7896 /*Call Tria function*/ 7897 7897 Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria. 7898 ElementVector* pe=tria->CreatePVectorDiagnostic MacAyeal();7898 ElementVector* pe=tria->CreatePVectorDiagnosticSSA(); 7899 7899 delete tria->material; delete tria; 7900 7900 … … 8106 8106 /*Initialize Element vector and return if necessary*/ 8107 8107 inputs->GetInputValue(&approximation,ApproximationEnum); 8108 if(approximation!=FSApproximationEnum && approximation!= MacAyealFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL;8108 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 8109 8109 ElementVector* pe=new ElementVector(nodes,NUMVERTICES,this->parameters,FSApproximationEnum); 8110 8110 … … 8276 8276 /*Initialize Element vector and return if necessary*/ 8277 8277 inputs->GetInputValue(&approximation,ApproximationEnum); 8278 if(approximation!=FSApproximationEnum && approximation!= MacAyealFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL;8278 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 8279 8279 parameters->FindParam(&FSreconditioning,DiagnosticFSreconditioningEnum); 8280 8280 ElementVector* pe=new ElementVector(nodes,NUMVERTICES,this->parameters,FSApproximationEnum); … … 8392 8392 inputs->GetInputValue(&approximation,ApproximationEnum); 8393 8393 this->parameters->FindParam(&shelf_dampening,DiagnosticShelfDampeningEnum); 8394 if(approximation!=FSApproximationEnum && approximation!= MacAyealFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL;8394 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 8395 8395 ElementVector* pe=new ElementVector(nodes,NUMVERTICES,this->parameters,FSApproximationEnum); 8396 8396 … … 8478 8478 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 8479 8479 Input* vzFS_input=NULL; 8480 if(approximation==HOFSApproximationEnum || approximation== MacAyealFSApproximationEnum){8480 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 8481 8481 vzFS_input=inputs->GetInput(VzFSEnum); _assert_(vzFS_input); 8482 8482 } … … 8493 8493 vx_input->GetInputDerivativeValue(&du[0],&xyz_list[0][0],gauss); 8494 8494 vy_input->GetInputDerivativeValue(&dv[0],&xyz_list[0][0],gauss); 8495 if(approximation==HOFSApproximationEnum || approximation== MacAyealFSApproximationEnum){8495 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 8496 8496 vzFS_input->GetInputDerivativeValue(&dw[0],&xyz_list[0][0],gauss); 8497 8497 dwdz=dw[2]; … … 8540 8540 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 8541 8541 Input* vzFS_input=NULL; 8542 if(approximation==HOFSApproximationEnum || approximation== MacAyealFSApproximationEnum){8542 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 8543 8543 vzFS_input=inputs->GetInput(VzFSEnum); _assert_(vzFS_input); 8544 8544 } … … 8554 8554 vx_input->GetInputValue(&vx, gauss); 8555 8555 vy_input->GetInputValue(&vy, gauss); 8556 if(approximation==HOFSApproximationEnum || approximation== MacAyealFSApproximationEnum){8556 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 8557 8557 vzFS_input->GetInputValue(&vz, gauss); 8558 8558 } … … 8580 8580 8581 8581 switch(approximation){ 8582 case MacAyealApproximationEnum:8582 case SSAApproximationEnum: 8583 8583 return CreateJacobianDiagnosticSSA2d(); 8584 8584 case HOApproximationEnum: … … 8784 8784 8785 8785 /*If the element is a coupling, do nothing: every node is also on an other elements 8786 * (as coupling is between MacAyealand HO) so the other element will take care of it*/8786 * (as coupling is between SSA and HO) so the other element will take care of it*/ 8787 8787 GetDofList(&doflist,approximation,GsetEnum); 8788 8788 … … 8999 8999 inputs->GetInputValue(&approximation,ApproximationEnum); 9000 9000 9001 /* MacAyeal, everything is done by the element on bed*/9002 if (approximation== MacAyealApproximationEnum){9001 /*SSA, everything is done by the element on bed*/ 9002 if (approximation==SSAApproximationEnum){ 9003 9003 if (!IsOnBed()){ 9004 9004 /*Do nothing. Element on bed will take care of it*/ … … 9006 9006 } 9007 9007 else{ 9008 InputUpdateFromSolutionDiagnostic MacAyeal(solution);9008 InputUpdateFromSolutionDiagnosticSSA(solution); 9009 9009 return; 9010 9010 } … … 9021 9021 InputUpdateFromSolutionDiagnosticHOFS(solution); 9022 9022 } 9023 else if (approximation== MacAyealFSApproximationEnum){9024 InputUpdateFromSolutionDiagnostic MacAyealFS(solution);9023 else if (approximation==SSAFSApproximationEnum){ 9024 InputUpdateFromSolutionDiagnosticSSAFS(solution); 9025 9025 } 9026 9026 else if (approximation==FSApproximationEnum || approximation==NoneApproximationEnum){ 9027 9027 InputUpdateFromSolutionDiagnosticFS(solution); 9028 9028 } 9029 else if (approximation== MacAyealHOApproximationEnum){9030 InputUpdateFromSolutionDiagnostic MacAyealHO(solution);9031 } 9032 } 9033 /*}}}*/ 9034 /*FUNCTION Penta::InputUpdateFromSolutionDiagnostic MacAyeal{{{*/9035 void Penta::InputUpdateFromSolutionDiagnostic MacAyeal(IssmDouble* solution){9029 else if (approximation==SSAHOApproximationEnum){ 9030 InputUpdateFromSolutionDiagnosticSSAHO(solution); 9031 } 9032 } 9033 /*}}}*/ 9034 /*FUNCTION Penta::InputUpdateFromSolutionDiagnosticSSA {{{*/ 9035 void Penta::InputUpdateFromSolutionDiagnosticSSA(IssmDouble* solution){ 9036 9036 9037 9037 const int numdof=NDOF2*NUMVERTICES; … … 9051 9051 9052 9052 /*Get dof list: */ 9053 GetDofList(&doflist, MacAyealApproximationEnum,GsetEnum);9053 GetDofList(&doflist,SSAApproximationEnum,GsetEnum); 9054 9054 9055 9055 /*Use the dof list to index into the solution vector: */ … … 9113 9113 } 9114 9114 /*}}}*/ 9115 /*FUNCTION Penta::InputUpdateFromSolutionDiagnostic MacAyealHO {{{*/9116 void Penta::InputUpdateFromSolutionDiagnostic MacAyealHO(IssmDouble* solution){9115 /*FUNCTION Penta::InputUpdateFromSolutionDiagnosticSSAHO {{{*/ 9116 void Penta::InputUpdateFromSolutionDiagnosticSSAHO(IssmDouble* solution){ 9117 9117 9118 9118 const int numdof=NDOF2*NUMVERTICES; … … 9140 9140 /*Get dof listof this element (HO dofs) and of the penta at base (SSA dofs): */ 9141 9141 GetDofList(&doflistp,HOApproximationEnum,GsetEnum); 9142 penta->GetDofList(&doflistm, MacAyealApproximationEnum,GsetEnum);9142 penta->GetDofList(&doflistm,SSAApproximationEnum,GsetEnum); 9143 9143 9144 9144 /*Get node data: */ … … 9197 9197 } 9198 9198 /*}}}*/ 9199 /*FUNCTION Penta::InputUpdateFromSolutionDiagnostic MacAyealFS {{{*/9200 void Penta::InputUpdateFromSolutionDiagnostic MacAyealFS(IssmDouble* solution){9199 /*FUNCTION Penta::InputUpdateFromSolutionDiagnosticSSAFS {{{*/ 9200 void Penta::InputUpdateFromSolutionDiagnosticSSAFS(IssmDouble* solution){ 9201 9201 9202 9202 const int numdofm=NDOF2*NUMVERTICES; … … 9225 9225 9226 9226 /*Get dof listof this element (SSA dofs) and of the penta at base (SSA dofs): */ 9227 penta->GetDofList(&doflistm, MacAyealApproximationEnum,GsetEnum);9227 penta->GetDofList(&doflistm,SSAApproximationEnum,GsetEnum); 9228 9228 GetDofList(&doflists,FSApproximationEnum,GsetEnum); 9229 9229 this->parameters->FindParam(&FSreconditioning,DiagnosticFSreconditioningEnum); … … 9260 9260 9261 9261 /*Get Vz*/ 9262 Input* vzSSA_input=inputs->GetInput(Vz MacAyealEnum);9262 Input* vzSSA_input=inputs->GetInput(VzSSAEnum); 9263 9263 if (vzSSA_input){ 9264 9264 if (vzSSA_input->ObjectEnum()!=PentaInputEnum){ 9265 _error_("Cannot compute Vel as Vz MacAyealis of type " << EnumToStringx(vzSSA_input->ObjectEnum()));9266 } 9267 GetInputListOnVertices(&vzSSA[0],Vz MacAyealEnum);9265 _error_("Cannot compute Vel as VzSSA is of type " << EnumToStringx(vzSSA_input->ObjectEnum())); 9266 } 9267 GetInputListOnVertices(&vzSSA[0],VzSSAEnum); 9268 9268 } 9269 9269 else{ 9270 _error_("Cannot update solution as Vz MacAyealis not present");9270 _error_("Cannot update solution as VzSSA is not present"); 9271 9271 } 9272 9272 … … 9653 9653 GetInputListOnVertices(&vy[0],VyEnum,0.0); //default is 0 9654 9654 9655 /*Do some modifications if we actually have a HOFS or MacAyealFS element*/9655 /*Do some modifications if we actually have a HOFS or SSAFS element*/ 9656 9656 if(approximation==HOFSApproximationEnum){ 9657 9657 Input* vzFS_input=inputs->GetInput(VzFSEnum); … … 9666 9666 } 9667 9667 } 9668 else if(approximation== MacAyealFSApproximationEnum){9668 else if(approximation==SSAFSApproximationEnum){ 9669 9669 Input* vzFS_input=inputs->GetInput(VzFSEnum); 9670 9670 if (vzFS_input){ … … 9672 9672 GetInputListOnVertices(&vzFS[0],VzFSEnum); 9673 9673 } 9674 else _error_("Cannot compute Vz as VzFS in not present in MacAyealFS element");9674 else _error_("Cannot compute Vz as VzFS in not present in SSAFS element"); 9675 9675 for(i=0;i<NUMVERTICES;i++){ 9676 9676 vzSSA[i]=vz[i]; … … 9684 9684 /*For pressure: we have not computed pressure in this analysis, for this element. We are in 3D, 9685 9685 *so the pressure is just the pressure at the z elevation: except it this is a HOFS element */ 9686 if(approximation!=HOFSApproximationEnum && approximation!= MacAyealFSApproximationEnum){9686 if(approximation!=HOFSApproximationEnum && approximation!=SSAFSApproximationEnum){ 9687 9687 rho_ice=matpar->GetRhoIce(); 9688 9688 g=matpar->GetG(); … … 9695 9695 this->inputs->ChangeEnum(VzEnum,VzPicardEnum); 9696 9696 9697 if(approximation!=HOFSApproximationEnum && approximation!= MacAyealFSApproximationEnum){9697 if(approximation!=HOFSApproximationEnum && approximation!=SSAFSApproximationEnum){ 9698 9698 this->inputs->ChangeEnum(PressureEnum,PressurePicardEnum); 9699 9699 this->inputs->AddInput(new PentaInput(PressureEnum,pressure,P1Enum)); … … 9702 9702 this->inputs->AddInput(new PentaInput(VzHOEnum,vzHO,P1Enum)); 9703 9703 } 9704 else if(approximation== MacAyealFSApproximationEnum){9705 this->inputs->AddInput(new PentaInput(Vz MacAyealEnum,vzSSA,P1Enum));9704 else if(approximation==SSAFSApproximationEnum){ 9705 this->inputs->AddInput(new PentaInput(VzSSAEnum,vzSSA,P1Enum)); 9706 9706 } 9707 9707 this->inputs->AddInput(new PentaInput(VzEnum,vz,P1Enum)); -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r15564 r15567 144 144 void GradientIndexing(int* indexing,int control_index); 145 145 void Gradj(Vector<IssmDouble>* gradient,int control_type,int control_index); 146 void GradjDrag MacAyeal(Vector<IssmDouble>* gradient,int control_index);146 void GradjDragSSA(Vector<IssmDouble>* gradient,int control_index); 147 147 void GradjDragHO(Vector<IssmDouble>* gradient,int control_index); 148 148 void GradjDragFS(Vector<IssmDouble>* gradient,int control_index); 149 void GradjBbar MacAyeal(Vector<IssmDouble>* gradient,int control_index);149 void GradjBbarSSA(Vector<IssmDouble>* gradient,int control_index); 150 150 void GradjBbarHO(Vector<IssmDouble>* gradient,int control_index); 151 151 void GradjBbarFS(Vector<IssmDouble>* gradient,int control_index); … … 223 223 224 224 #ifdef _HAVE_DIAGNOSTIC_ 225 ElementMatrix* CreateKMatrixCoupling MacAyealHO(void);226 ElementMatrix* CreateKMatrixCoupling MacAyealHOViscous(void);227 ElementMatrix* CreateKMatrixCoupling MacAyealHOFriction(void);228 ElementMatrix* CreateKMatrixCoupling MacAyealFS(void);229 ElementMatrix* CreateKMatrixCoupling MacAyealFSViscous(void);230 ElementMatrix* CreateKMatrixCoupling MacAyealFSFriction(void);225 ElementMatrix* CreateKMatrixCouplingSSAHO(void); 226 ElementMatrix* CreateKMatrixCouplingSSAHOViscous(void); 227 ElementMatrix* CreateKMatrixCouplingSSAHOFriction(void); 228 ElementMatrix* CreateKMatrixCouplingSSAFS(void); 229 ElementMatrix* CreateKMatrixCouplingSSAFSViscous(void); 230 ElementMatrix* CreateKMatrixCouplingSSAFSFriction(void); 231 231 ElementMatrix* CreateKMatrixCouplingHOFS(void); 232 232 ElementMatrix* CreateKMatrixDiagnosticHoriz(void); … … 235 235 ElementVector* CreateDVectorDiagnosticFS(void); 236 236 ElementMatrix* CreateKMatrixDiagnosticSIA(void); 237 ElementMatrix* CreateKMatrixDiagnostic MacAyeal2d(void);238 ElementMatrix* CreateKMatrixDiagnostic MacAyeal3d(void);239 ElementMatrix* CreateKMatrixDiagnostic MacAyeal3dViscous(void);240 ElementMatrix* CreateKMatrixDiagnostic MacAyeal3dFriction(void);241 ElementMatrix* CreateKMatrixDiagnostic MacAyealHO(void);242 ElementMatrix* CreateKMatrixDiagnostic MacAyealFS(void);237 ElementMatrix* CreateKMatrixDiagnosticSSA2d(void); 238 ElementMatrix* CreateKMatrixDiagnosticSSA3d(void); 239 ElementMatrix* CreateKMatrixDiagnosticSSA3dViscous(void); 240 ElementMatrix* CreateKMatrixDiagnosticSSA3dFriction(void); 241 ElementMatrix* CreateKMatrixDiagnosticSSAHO(void); 242 ElementMatrix* CreateKMatrixDiagnosticSSAFS(void); 243 243 ElementMatrix* CreateKMatrixDiagnosticL1L2(void); 244 244 ElementMatrix* CreateKMatrixDiagnosticL1L2Viscous(void); … … 261 261 ElementMatrix* CreateJacobianDiagnosticFS(void); 262 262 void InputUpdateFromSolutionDiagnosticHoriz( IssmDouble* solutiong); 263 void InputUpdateFromSolutionDiagnostic MacAyeal( IssmDouble* solutiong);264 void InputUpdateFromSolutionDiagnostic MacAyealHO( IssmDouble* solutiong);265 void InputUpdateFromSolutionDiagnostic MacAyealFS( IssmDouble* solutiong);263 void InputUpdateFromSolutionDiagnosticSSA( IssmDouble* solutiong); 264 void InputUpdateFromSolutionDiagnosticSSAHO( IssmDouble* solutiong); 265 void InputUpdateFromSolutionDiagnosticSSAFS( IssmDouble* solutiong); 266 266 void InputUpdateFromSolutionDiagnosticL1L2( IssmDouble* solutiong); 267 267 void InputUpdateFromSolutionDiagnosticHO( IssmDouble* solutiong); … … 274 274 void GetSolutionFromInputsDiagnosticFS(Vector<IssmDouble>* solutiong); 275 275 void GetSolutionFromInputsDiagnosticVert(Vector<IssmDouble>* solutiong); 276 ElementVector* CreatePVectorCoupling MacAyealFS(void);277 ElementVector* CreatePVectorCoupling MacAyealFSViscous(void);278 ElementVector* CreatePVectorCoupling MacAyealFSFriction(void);276 ElementVector* CreatePVectorCouplingSSAFS(void); 277 ElementVector* CreatePVectorCouplingSSAFSViscous(void); 278 ElementVector* CreatePVectorCouplingSSAFSFriction(void); 279 279 ElementVector* CreatePVectorCouplingHOFS(void); 280 280 ElementVector* CreatePVectorCouplingHOFSViscous(void); … … 282 282 ElementVector* CreatePVectorDiagnosticHoriz(void); 283 283 ElementVector* CreatePVectorDiagnosticSIA(void); 284 ElementVector* CreatePVectorDiagnostic MacAyeal(void);285 ElementVector* CreatePVectorDiagnostic MacAyealHO(void);286 ElementVector* CreatePVectorDiagnostic MacAyealFS(void);284 ElementVector* CreatePVectorDiagnosticSSA(void); 285 ElementVector* CreatePVectorDiagnosticSSAHO(void); 286 ElementVector* CreatePVectorDiagnosticSSAFS(void); 287 287 ElementVector* CreatePVectorDiagnosticL1L2(void); 288 288 ElementVector* CreatePVectorDiagnosticHO(void); … … 303 303 #ifdef _HAVE_CONTROL_ 304 304 ElementVector* CreatePVectorAdjointHoriz(void); 305 ElementMatrix* CreateKMatrixAdjoint MacAyeal2d(void);305 ElementMatrix* CreateKMatrixAdjointSSA2d(void); 306 306 ElementMatrix* CreateKMatrixAdjointHO(void); 307 307 ElementMatrix* CreateKMatrixAdjointFS(void); 308 ElementVector* CreatePVectorAdjoint MacAyeal(void);308 ElementVector* CreatePVectorAdjointSSA(void); 309 309 ElementVector* CreatePVectorAdjointHO(void); 310 310 ElementVector* CreatePVectorAdjointFS(void); -
issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp
r15564 r15567 54 54 55 55 /*Reference Element numerics*/ 56 /*FUNCTION PentaRef::GetB MacAyealHO {{{*/57 void PentaRef::GetB MacAyealHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){56 /*FUNCTION PentaRef::GetBSSAHO {{{*/ 57 void PentaRef::GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){ 58 58 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2. 59 59 * For node i, Bi can be expressed in the actual coordinate system … … 85 85 } 86 86 /*}}}*/ 87 /*FUNCTION PentaRef::GetB MacAyealFS{{{*/88 void PentaRef::GetB MacAyealFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){87 /*FUNCTION PentaRef::GetBSSAFS{{{*/ 88 void PentaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){ 89 89 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2. 90 90 * For node i, Bi can be expressed in the actual coordinate system … … 209 209 } 210 210 /*}}}*/ 211 /*FUNCTION PentaRef::GetBprime MacAyealFS{{{*/212 void PentaRef::GetBprime MacAyealFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussPenta* gauss){211 /*FUNCTION PentaRef::GetBprimeSSAFS{{{*/ 212 void PentaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussPenta* gauss){ 213 213 /*Compute Bprime matrix. Bprime=[Bprime1 Bprime2 Bprime3 Bprime4 Bprime5 Bprime6] where Bprimei is of size 5*NDOF2. 214 214 * For node i, Bprimei can be expressed in the actual coordinate system … … 786 786 } 787 787 /*}}}*/ 788 /*FUNCTION PentaRef::GetL MacAyealFS {{{*/789 void PentaRef::GetL MacAyealFS(IssmDouble* LFS, GaussPenta* gauss){788 /*FUNCTION PentaRef::GetLSSAFS {{{*/ 789 void PentaRef::GetLSSAFS(IssmDouble* LFS, GaussPenta* gauss){ 790 790 /* 791 791 * Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof. … … 832 832 } 833 833 /*}}}*/ 834 /*FUNCTION PentaRef::GetLprime MacAyealFS {{{*/835 void PentaRef::GetLprime MacAyealFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss){834 /*FUNCTION PentaRef::GetLprimeSSAFS {{{*/ 835 void PentaRef::GetLprimeSSAFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss){ 836 836 /* Compute Lprime matrix. Lprime=[Lp1 Lp2 Lp3] where Lpi is square and of size numdof. 837 837 * For node i, Lpi can be expressed in the actual coordinate system … … 895 895 } 896 896 /*}}}*/ 897 /*FUNCTION PentaRef::GetLFS MacAyeal{{{*/898 void PentaRef::GetLFS MacAyeal(IssmDouble* LFS, GaussPenta* gauss){897 /*FUNCTION PentaRef::GetLFSSSA {{{*/ 898 void PentaRef::GetLFSSSA(IssmDouble* LFS, GaussPenta* gauss){ 899 899 /* Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof. 900 900 * For node i, Li can be expressed in the actual coordinate system … … 936 936 } 937 937 /*}}}*/ 938 /*FUNCTION PentaRef::GetLprimeFS MacAyeal{{{*/939 void PentaRef::GetLprimeFS MacAyeal(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss){938 /*FUNCTION PentaRef::GetLprimeFSSSA {{{*/ 939 void PentaRef::GetLprimeFSSSA(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss){ 940 940 /* Compute Lprime matrix. Lprime=[Lp1 Lp2 Lp3] where Lpi is square and of size numdof. 941 941 * For node i, Lpi can be expressed in the actual coordinate system -
issm/trunk-jpl/src/c/classes/Elements/PentaRef.h
r15564 r15567 38 38 void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussPenta* gauss); 39 39 void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,GaussPenta* gauss); 40 void GetB MacAyealHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);41 void GetB MacAyealFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);40 void GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 41 void GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 42 42 void GetBHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 43 43 void GetBFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 44 44 void GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 45 void GetBprime MacAyealFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussPenta* gauss);45 void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussPenta* gauss); 46 46 void GetBprimeHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 47 47 void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussPenta* gauss); … … 55 55 void GetLFS(IssmDouble* LFS, GaussPenta* gauss); 56 56 void GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss); 57 void GetL MacAyealFS(IssmDouble* LMacAyealFS, GaussPenta* gauss);58 void GetLprime MacAyealFS(IssmDouble* LprimeMacAyealFS, IssmDouble* xyz_list, GaussPenta* gauss);59 void GetLFS MacAyeal(IssmDouble* LFSMacAyeal, GaussPenta* gauss);60 void GetLprimeFS MacAyeal(IssmDouble* LprimeFSMacAyeal, IssmDouble* xyz_list, GaussPenta* gauss);57 void GetLSSAFS(IssmDouble* LSSAFS, GaussPenta* gauss); 58 void GetLprimeSSAFS(IssmDouble* LprimeSSAFS, IssmDouble* xyz_list, GaussPenta* gauss); 59 void GetLFSSSA(IssmDouble* LFSSSA, GaussPenta* gauss); 60 void GetLprimeFSSSA(IssmDouble* LprimeFSSSA, IssmDouble* xyz_list, GaussPenta* gauss); 61 61 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist, GaussPenta* gauss); 62 62 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist,GaussTria* gauss){_error_("only PentaGauss are supported");}; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r15564 r15567 191 191 #ifdef _HAVE_DIAGNOSTIC_ 192 192 case DiagnosticHorizAnalysisEnum: 193 Ke=CreateKMatrixDiagnostic MacAyeal();193 Ke=CreateKMatrixDiagnosticSSA(); 194 194 break; 195 195 case DiagnosticSIAAnalysisEnum: … … 224 224 break; 225 225 case AdjointHorizAnalysisEnum: 226 Ke=CreateKMatrixAdjoint MacAyeal();226 Ke=CreateKMatrixAdjointSSA(); 227 227 break; 228 228 #endif … … 304 304 #ifdef _HAVE_DIAGNOSTIC_ 305 305 case DiagnosticHorizAnalysisEnum: 306 pe=CreatePVectorDiagnostic MacAyeal();306 pe=CreatePVectorDiagnosticSSA(); 307 307 break; 308 308 case DiagnosticSIAAnalysisEnum: … … 2886 2886 2887 2887 #ifdef _HAVE_DIAGNOSTIC_ 2888 /*FUNCTION Tria::CreateKMatrixDiagnostic MacAyeal{{{*/2889 ElementMatrix* Tria::CreateKMatrixDiagnostic MacAyeal(void){2888 /*FUNCTION Tria::CreateKMatrixDiagnosticSSA {{{*/ 2889 ElementMatrix* Tria::CreateKMatrixDiagnosticSSA(void){ 2890 2890 2891 2891 /*compute all stiffness matrices for this element*/ 2892 ElementMatrix* Ke1=CreateKMatrixDiagnostic MacAyealViscous();2893 ElementMatrix* Ke2=CreateKMatrixDiagnostic MacAyealFriction();2892 ElementMatrix* Ke1=CreateKMatrixDiagnosticSSAViscous(); 2893 ElementMatrix* Ke2=CreateKMatrixDiagnosticSSAFriction(); 2894 2894 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2); 2895 2895 … … 2900 2900 } 2901 2901 /*}}}*/ 2902 /*FUNCTION Tria::CreateKMatrixDiagnostic MacAyealViscous{{{*/2903 ElementMatrix* Tria::CreateKMatrixDiagnostic MacAyealViscous(void){2902 /*FUNCTION Tria::CreateKMatrixDiagnosticSSAViscous{{{*/ 2903 ElementMatrix* Tria::CreateKMatrixDiagnosticSSAViscous(void){ 2904 2904 2905 2905 /*Intermediaries*/ … … 2916 2916 2917 2917 /*Initialize Element matrix and vectors*/ 2918 ElementMatrix* Ke = new ElementMatrix(nodes,numnodes,this->parameters, MacAyealApproximationEnum);2918 ElementMatrix* Ke = new ElementMatrix(nodes,numnodes,this->parameters,SSAApproximationEnum); 2919 2919 IssmDouble* B = xNew<IssmDouble>(3*numdof); 2920 2920 IssmDouble* Bprime = xNew<IssmDouble>(3*numdof); … … 2937 2937 2938 2938 GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss); 2939 GetB MacAyeal(&B[0], &xyz_list[0][0], gauss);2940 GetBprime MacAyeal(&Bprime[0], &xyz_list[0][0], gauss);2939 GetBSSA(&B[0], &xyz_list[0][0], gauss); 2940 GetBprimeSSA(&Bprime[0], &xyz_list[0][0], gauss); 2941 2941 2942 2942 this->GetStrainRate2d(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input); … … 2967 2967 } 2968 2968 /*}}}*/ 2969 /*FUNCTION Tria::CreateKMatrixDiagnostic MacAyealFriction {{{*/2970 ElementMatrix* Tria::CreateKMatrixDiagnostic MacAyealFriction(void){2969 /*FUNCTION Tria::CreateKMatrixDiagnosticSSAFriction {{{*/ 2970 ElementMatrix* Tria::CreateKMatrixDiagnosticSSAFriction(void){ 2971 2971 2972 2972 /*Intermediaries*/ … … 2993 2993 2994 2994 /*Initialize Element matrix and vectors*/ 2995 ElementMatrix* Ke = new ElementMatrix(nodes,numnodes,this->parameters, MacAyealApproximationEnum);2995 ElementMatrix* Ke = new ElementMatrix(nodes,numnodes,this->parameters,SSAApproximationEnum); 2996 2996 IssmDouble* B = xNew<IssmDouble>(2*numdof); 2997 2997 IssmDouble* D = xNewZeroInit<IssmDouble>(2*2); … … 3033 3033 } 3034 3034 3035 GetB MacAyealFriction(&B[0], &xyz_list[0][0], gauss);3035 GetBSSAFriction(&B[0], &xyz_list[0][0], gauss); 3036 3036 GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss); 3037 3037 D_scalar=alpha2*gauss->weight*Jdet; … … 3076 3076 } 3077 3077 /*}}}*/ 3078 /*FUNCTION Tria::CreatePVectorDiagnostic MacAyeal{{{*/3079 ElementVector* Tria::CreatePVectorDiagnostic MacAyeal(){3078 /*FUNCTION Tria::CreatePVectorDiagnosticSSA {{{*/ 3079 ElementVector* Tria::CreatePVectorDiagnosticSSA(){ 3080 3080 3081 3081 /*compute all load vectors for this element*/ 3082 ElementVector* pe1=CreatePVectorDiagnostic MacAyealDrivingStress();3083 ElementVector* pe2=CreatePVectorDiagnostic MacAyealFront();3082 ElementVector* pe1=CreatePVectorDiagnosticSSADrivingStress(); 3083 ElementVector* pe2=CreatePVectorDiagnosticSSAFront(); 3084 3084 ElementVector* pe =new ElementVector(pe1,pe2); 3085 3085 … … 3090 3090 } 3091 3091 /*}}}*/ 3092 /*FUNCTION Tria::CreatePVectorDiagnostic MacAyealDrivingStress {{{*/3093 ElementVector* Tria::CreatePVectorDiagnostic MacAyealDrivingStress(){3092 /*FUNCTION Tria::CreatePVectorDiagnosticSSADrivingStress {{{*/ 3093 ElementVector* Tria::CreatePVectorDiagnosticSSADrivingStress(){ 3094 3094 3095 3095 /*Intermediaries */ … … 3106 3106 3107 3107 /*Initialize Element vector and vectors*/ 3108 ElementVector* pe=new ElementVector(nodes,numnodes,this->parameters, MacAyealApproximationEnum);3108 ElementVector* pe=new ElementVector(nodes,numnodes,this->parameters,SSAApproximationEnum); 3109 3109 GaussTria* gauss = new GaussTria(2); 3110 3110 IssmDouble* basis = xNew<IssmDouble>(numnodes); … … 3146 3146 } 3147 3147 /*}}}*/ 3148 /*FUNCTION Tria::CreatePVectorDiagnostic MacAyealFront {{{*/3149 ElementVector* Tria::CreatePVectorDiagnostic MacAyealFront(){3148 /*FUNCTION Tria::CreatePVectorDiagnosticSSAFront {{{*/ 3149 ElementVector* Tria::CreatePVectorDiagnosticSSAFront(){ 3150 3150 3151 3151 /*Intermediaries */ … … 3181 3181 3182 3182 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 3183 ElementVector* pe=new ElementVector(nodes,numnodes,this->parameters, MacAyealApproximationEnum);3183 ElementVector* pe=new ElementVector(nodes,numnodes,this->parameters,SSAApproximationEnum); 3184 3184 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 3185 3185 Input* bed_input =inputs->GetInput(BedEnum); _assert_(bed_input); … … 3293 3293 3294 3294 /*Initialize Element matrix, vectors and Gaussian points*/ 3295 ElementMatrix* Ke=CreateKMatrixDiagnostic MacAyeal(); //Initialize Jacobian with regular MacAyeal(first part of the Gateau derivative)3295 ElementMatrix* Ke=CreateKMatrixDiagnosticSSA(); //Initialize Jacobian with regular SSA (first part of the Gateau derivative) 3296 3296 IssmDouble* dbasis = xNew<IssmDouble>(2*numnodes); 3297 3297 … … 3730 3730 switch(control_type){ 3731 3731 case FrictionCoefficientEnum: 3732 GradjDrag MacAyeal(gradient,control_index);3732 GradjDragSSA(gradient,control_index); 3733 3733 break; 3734 3734 case MaterialsRheologyBbarEnum: 3735 GradjB MacAyeal(gradient,control_index);3735 GradjBSSA(gradient,control_index); 3736 3736 break; 3737 3737 case MaterialsRheologyZbarEnum: 3738 GradjZ MacAyeal(gradient,control_index);3738 GradjZSSA(gradient,control_index); 3739 3739 break; 3740 3740 case BalancethicknessThickeningRateEnum: … … 3868 3868 } 3869 3869 /*}}}*/ 3870 /*FUNCTION Tria::GradjB MacAyeal{{{*/3871 void Tria::GradjB MacAyeal(Vector<IssmDouble>* gradient,int control_index){3870 /*FUNCTION Tria::GradjBSSA{{{*/ 3871 void Tria::GradjBSSA(Vector<IssmDouble>* gradient,int control_index){ 3872 3872 3873 3873 /*Intermediaries*/ … … 3925 3925 } 3926 3926 /*}}}*/ 3927 /*FUNCTION Tria::GradjZ MacAyeal{{{*/3928 void Tria::GradjZ MacAyeal(Vector<IssmDouble>* gradient,int control_index){3927 /*FUNCTION Tria::GradjZSSA{{{*/ 3928 void Tria::GradjZSSA(Vector<IssmDouble>* gradient,int control_index){ 3929 3929 3930 3930 /*Intermediaries*/ … … 3982 3982 } 3983 3983 /*}}}*/ 3984 /*FUNCTION Tria::GradjDrag MacAyeal{{{*/3985 void Tria::GradjDrag MacAyeal(Vector<IssmDouble>* gradient,int control_index){3984 /*FUNCTION Tria::GradjDragSSA {{{*/ 3985 void Tria::GradjDragSSA(Vector<IssmDouble>* gradient,int control_index){ 3986 3986 3987 3987 int i; … … 5385 5385 } 5386 5386 /*}}}*/ 5387 /*FUNCTION Tria::CreateKMatrixAdjoint MacAyeal{{{*/5388 ElementMatrix* Tria::CreateKMatrixAdjoint MacAyeal(void){5387 /*FUNCTION Tria::CreateKMatrixAdjointSSA{{{*/ 5388 ElementMatrix* Tria::CreateKMatrixAdjointSSA(void){ 5389 5389 5390 5390 /*Constants*/ … … 5404 5404 GaussTria *gauss=NULL; 5405 5405 5406 /*Initialize Jacobian with regular MacAyeal(first part of the Gateau derivative)*/5406 /*Initialize Jacobian with regular SSA (first part of the Gateau derivative)*/ 5407 5407 parameters->FindParam(&incomplete_adjoint,InversionIncompleteAdjointEnum); 5408 ElementMatrix* Ke=CreateKMatrixDiagnostic MacAyeal();5408 ElementMatrix* Ke=CreateKMatrixDiagnosticSSA(); 5409 5409 if(incomplete_adjoint) return Ke; 5410 5410 … … 6519 6519 } 6520 6520 else if(stabilization==1){ 6521 /* MacAyeal*/6521 /*SSA*/ 6522 6522 vxaverage_input->GetInputAverage(&vx); 6523 6523 vyaverage_input->GetInputAverage(&vy); … … 6978 6978 } 6979 6979 else if(stabilization==2){ 6980 /* MacAyeal*/6980 /*SSA*/ 6981 6981 vxaverage_input->GetInputAverage(&vx); 6982 6982 vyaverage_input->GetInputAverage(&vy); -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r15564 r15567 144 144 void GradjBGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index); 145 145 void GradjZGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index); 146 void GradjB MacAyeal(Vector<IssmDouble>* gradient,int control_index);147 void GradjZ MacAyeal(Vector<IssmDouble>* gradient,int control_index);148 void GradjDrag MacAyeal(Vector<IssmDouble>* gradient,int control_index);146 void GradjBSSA(Vector<IssmDouble>* gradient,int control_index); 147 void GradjZSSA(Vector<IssmDouble>* gradient,int control_index); 148 void GradjDragSSA(Vector<IssmDouble>* gradient,int control_index); 149 149 void GradjDragFS(Vector<IssmDouble>* gradient,int control_index); 150 150 void GradjDragGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index); … … 220 220 221 221 #ifdef _HAVE_DIAGNOSTIC_ 222 ElementMatrix* CreateKMatrixDiagnostic MacAyeal(void);223 ElementMatrix* CreateKMatrixDiagnostic MacAyealViscous(void);224 ElementMatrix* CreateKMatrixDiagnostic MacAyealFriction(void);222 ElementMatrix* CreateKMatrixDiagnosticSSA(void); 223 ElementMatrix* CreateKMatrixDiagnosticSSAViscous(void); 224 ElementMatrix* CreateKMatrixDiagnosticSSAFriction(void); 225 225 ElementMatrix* CreateKMatrixDiagnosticSIA(void); 226 ElementVector* CreatePVectorDiagnostic MacAyeal(void);227 ElementVector* CreatePVectorDiagnostic MacAyealDrivingStress(void);228 ElementVector* CreatePVectorDiagnostic MacAyealFront(void);226 ElementVector* CreatePVectorDiagnosticSSA(void); 227 ElementVector* CreatePVectorDiagnosticSSADrivingStress(void); 228 ElementVector* CreatePVectorDiagnosticSSAFront(void); 229 229 ElementVector* CreatePVectorDiagnosticSIA(void); 230 230 ElementMatrix* CreateJacobianDiagnosticSSA(void); … … 237 237 #ifdef _HAVE_CONTROL_ 238 238 ElementMatrix* CreateKMatrixAdjointBalancethickness(void); 239 ElementMatrix* CreateKMatrixAdjoint MacAyeal(void);239 ElementMatrix* CreateKMatrixAdjointSSA(void); 240 240 ElementVector* CreatePVectorAdjointHoriz(void); 241 241 ElementVector* CreatePVectorAdjointFS(void); -
issm/trunk-jpl/src/c/classes/Elements/TriaRef.cpp
r15564 r15567 80 80 } 81 81 /*}}}*/ 82 /*FUNCTION TriaRef::GetB MacAyeal{{{*/83 void TriaRef::GetB MacAyeal(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){82 /*FUNCTION TriaRef::GetBSSA {{{*/ 83 void TriaRef::GetBSSA(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){ 84 84 /*Compute B matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 85 85 * For node i, Bi can be expressed in the actual coordinate system … … 114 114 } 115 115 /*}}}*/ 116 /*FUNCTION TriaRef::GetB MacAyealFS {{{*/117 void TriaRef::GetB MacAyealFS(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){116 /*FUNCTION TriaRef::GetBSSAFS {{{*/ 117 void TriaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){ 118 118 119 119 /*Compute B matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. … … 230 230 } 231 231 /*}}}*/ 232 /*FUNCTION TriaRef::GetBprime MacAyeal{{{*/233 void TriaRef::GetBprime MacAyeal(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss){232 /*FUNCTION TriaRef::GetBprimeSSA {{{*/ 233 void TriaRef::GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss){ 234 234 235 235 /*Compute B' matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2. … … 265 265 } 266 266 /*}}}*/ 267 /*FUNCTION TriaRef::GetBprime MacAyealFS {{{*/268 void TriaRef::GetBprime MacAyealFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss){267 /*FUNCTION TriaRef::GetBprimeSSAFS {{{*/ 268 void TriaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss){ 269 269 /*Compute Bprime matrix. Bprime=[Bprime1 Bprime2 Bprime3] where Bprimei is of size 3*NDOF2. 270 270 * For node i, Bprimei can be expressed in the actual coordinate system … … 331 331 } 332 332 /*}}}*/ 333 /*FUNCTION TriaRef::GetB MacAyealFriction{{{*/334 void TriaRef::GetB MacAyealFriction(IssmDouble* B, IssmDouble* xyz_list,GaussTria* gauss){333 /*FUNCTION TriaRef::GetBSSAFriction{{{*/ 334 void TriaRef::GetBSSAFriction(IssmDouble* B, IssmDouble* xyz_list,GaussTria* gauss){ 335 335 /*Compute B matrix. B=[B1 B2 B3] where Bi is square and of size 2. 336 336 * For node i, Bi can be expressed in the actual coordinate system -
issm/trunk-jpl/src/c/classes/Elements/TriaRef.h
r15564 r15567 23 23 24 24 /*Numerics*/ 25 void GetB MacAyeal(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss);26 void GetB MacAyealFS(IssmDouble* B , IssmDouble* xyz_list, GaussTria* gauss);27 void GetBprime MacAyeal(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss);28 void GetBprime MacAyealFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss);25 void GetBSSA(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss); 26 void GetBSSAFS(IssmDouble* B , IssmDouble* xyz_list, GaussTria* gauss); 27 void GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss); 28 void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss); 29 29 void GetBprimePrognostic(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss); 30 30 void GetBPrognostic(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss); 31 31 void GetBHydro(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss); 32 void GetB MacAyealFriction(IssmDouble* L, IssmDouble* xyz_list,GaussTria* gauss);32 void GetBSSAFriction(IssmDouble* L, IssmDouble* xyz_list,GaussTria* gauss); 33 33 void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussTria* gauss); 34 34 void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss); -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
r15417 r15567 130 130 131 131 /*Get B matrix: */ 132 GetB MacAyeal(&B[0],xyz_list,gauss);132 GetBSSA(&B[0],xyz_list,gauss); 133 133 134 134 /*Here, we are computing the strain rate of (vx,0)*/ … … 156 156 157 157 /*Get B matrix: */ 158 GetB MacAyeal(&B[0],xyz_list,gauss);158 GetBSSA(&B[0],xyz_list,gauss); 159 159 160 160 /*Here, we are computing the strain rate of (0,vy)*/ -
issm/trunk-jpl/src/c/classes/Loads/Icefront.cpp
r15564 r15567 65 65 icefront_mparid = iomodel->numberofelements+1; 66 66 67 if (in_icefront_type== MacAyeal2dIceFrontEnum || in_icefront_type==MacAyeal3dIceFrontEnum){67 if (in_icefront_type==SSA2dIceFrontEnum || in_icefront_type==SSA3dIceFrontEnum){ 68 68 numnodes = 2; 69 69 numvertices = 2; … … 152 152 // icefront_mparid=numberofelements+1; //matlab indexing 153 153 // 154 if (in_icefront_type== MacAyeal2dIceFrontEnum || in_icefront_type==MacAyeal3dIceFrontEnum){154 if (in_icefront_type==SSA2dIceFrontEnum || in_icefront_type==SSA3dIceFrontEnum){ 155 155 // icefront_node_ids[0]=iomodel->nodecounter+reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+0)); 156 156 // icefront_node_ids[1]=iomodel->nodecounter+reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+1)); … … 375 375 376 376 switch(type){ 377 case MacAyeal2dIceFrontEnum:378 case MacAyeal3dIceFrontEnum:377 case SSA2dIceFrontEnum: 378 case SSA3dIceFrontEnum: 379 379 for(int i=0;i<NUMVERTICESSEG;i++) sidlist[i]=nodes[i]->Sid(); 380 380 return; … … 397 397 398 398 switch(type){ 399 case MacAyeal2dIceFrontEnum:399 case SSA2dIceFrontEnum: 400 400 return NUMVERTICESSEG; 401 401 #ifdef _HAVE_3D_ 402 case MacAyeal3dIceFrontEnum:402 case SSA3dIceFrontEnum: 403 403 return NUMVERTICESSEG; 404 404 case HOIceFrontEnum: … … 559 559 560 560 switch(type){ 561 case MacAyeal2dIceFrontEnum:562 return CreatePVectorDiagnostic MacAyeal2d();561 case SSA2dIceFrontEnum: 562 return CreatePVectorDiagnosticSSA2d(); 563 563 #ifdef _HAVE_3D_ 564 case MacAyeal3dIceFrontEnum:565 return CreatePVectorDiagnostic MacAyeal3d();564 case SSA3dIceFrontEnum: 565 return CreatePVectorDiagnosticSSA3d(); 566 566 case HOIceFrontEnum: 567 567 return CreatePVectorDiagnosticHO(); … … 574 574 } 575 575 /*}}}*/ 576 /*FUNCTION Icefront::CreatePVectorDiagnostic MacAyeal2d{{{*/577 ElementVector* Icefront::CreatePVectorDiagnostic MacAyeal2d(void){576 /*FUNCTION Icefront::CreatePVectorDiagnosticSSA2d{{{*/ 577 ElementVector* Icefront::CreatePVectorDiagnosticSSA2d(void){ 578 578 579 579 /*Intermediary*/ … … 595 595 596 596 /*Initialize Element vector and vectors*/ 597 ElementVector* pe=new ElementVector(tria->nodes,numnodes,this->parameters, MacAyealApproximationEnum);597 ElementVector* pe=new ElementVector(tria->nodes,numnodes,this->parameters,SSAApproximationEnum); 598 598 IssmDouble* basis = xNew<IssmDouble>(numnodes); 599 599 … … 669 669 #endif 670 670 #ifdef _HAVE_3D_ 671 /*FUNCTION Icefront::CreatePVectorDiagnostic MacAyeal3d{{{*/672 ElementVector* Icefront::CreatePVectorDiagnostic MacAyeal3d(void){671 /*FUNCTION Icefront::CreatePVectorDiagnosticSSA3d{{{*/ 672 ElementVector* Icefront::CreatePVectorDiagnosticSSA3d(void){ 673 673 674 674 Icefront *icefront = NULL; … … 682 682 if(!penta->IsOnBed() || penta->IsOnWater()) return NULL; 683 683 684 /*Spawn Tria and call MacAyeal2d*/684 /*Spawn Tria and call SSA2d*/ 685 685 tria =(Tria*)penta->SpawnTria(0,1,2); 686 686 icefront=(Icefront*)this->copy(); 687 687 icefront->element=tria; 688 icefront->inputs->AddInput(new IntInput(IceFrontTypeEnum, MacAyeal2dIceFrontEnum));689 ElementVector* pe=icefront->CreatePVectorDiagnostic MacAyeal2d();688 icefront->inputs->AddInput(new IntInput(IceFrontTypeEnum,SSA2dIceFrontEnum)); 689 ElementVector* pe=icefront->CreatePVectorDiagnosticSSA2d(); 690 690 691 691 /*clean-up and return*/ … … 870 870 871 871 /*How many nodes? :*/ 872 if(type== MacAyeal2dIceFrontEnum || type==MacAyeal3dIceFrontEnum)872 if(type==SSA2dIceFrontEnum || type==SSA3dIceFrontEnum) 873 873 numberofnodes=2; 874 874 else -
issm/trunk-jpl/src/c/classes/Loads/Icefront.h
r15564 r15567 93 93 #ifdef _HAVE_DIAGNOSTIC_ 94 94 ElementVector* CreatePVectorDiagnosticHoriz(void); 95 ElementVector* CreatePVectorDiagnostic MacAyeal2d(void);95 ElementVector* CreatePVectorDiagnosticSSA2d(void); 96 96 #endif 97 97 #ifdef _HAVE_3D_ 98 ElementVector* CreatePVectorDiagnostic MacAyeal3d(void);98 ElementVector* CreatePVectorDiagnosticSSA3d(void); 99 99 ElementVector* CreatePVectorDiagnosticHO(void); 100 100 ElementVector* CreatePVectorDiagnosticFS(void); -
issm/trunk-jpl/src/c/classes/Loads/Penpair.cpp
r15564 r15567 299 299 300 300 switch(approximation0){ 301 case MacAyealApproximationEnum:301 case SSAApproximationEnum: 302 302 switch(approximation1){ 303 case MacAyealApproximationEnum: return PenaltyCreateKMatrixDiagnosticMacAyealHO(kmax);304 case HOApproximationEnum: return PenaltyCreateKMatrixDiagnostic MacAyealHO(kmax);303 case SSAApproximationEnum: return PenaltyCreateKMatrixDiagnosticSSAHO(kmax); 304 case HOApproximationEnum: return PenaltyCreateKMatrixDiagnosticSSAHO(kmax); 305 305 default: _error_("not supported yet"); 306 306 } 307 307 case HOApproximationEnum: 308 308 switch(approximation1){ 309 case MacAyealApproximationEnum: return PenaltyCreateKMatrixDiagnosticMacAyealHO(kmax);310 case HOApproximationEnum: return PenaltyCreateKMatrixDiagnostic MacAyealHO(kmax);309 case SSAApproximationEnum: return PenaltyCreateKMatrixDiagnosticSSAHO(kmax); 310 case HOApproximationEnum: return PenaltyCreateKMatrixDiagnosticSSAHO(kmax); 311 311 default: _error_("not supported yet"); 312 312 } … … 327 327 } 328 328 /*}}}*/ 329 /*FUNCTION Penpair::PenaltyCreateKMatrixDiagnostic MacAyealHO {{{*/330 ElementMatrix* Penpair::PenaltyCreateKMatrixDiagnostic MacAyealHO(IssmDouble kmax){329 /*FUNCTION Penpair::PenaltyCreateKMatrixDiagnosticSSAHO {{{*/ 330 ElementMatrix* Penpair::PenaltyCreateKMatrixDiagnosticSSAHO(IssmDouble kmax){ 331 331 332 332 const int numdof=NUMVERTICES*NDOF2; -
issm/trunk-jpl/src/c/classes/Loads/Penpair.h
r15564 r15567 68 68 /*Penpair management: {{{*/ 69 69 ElementMatrix* PenaltyCreateKMatrixDiagnosticHoriz(IssmDouble kmax); 70 ElementMatrix* PenaltyCreateKMatrixDiagnostic MacAyealHO(IssmDouble kmax);70 ElementMatrix* PenaltyCreateKMatrixDiagnosticSSAHO(IssmDouble kmax); 71 71 ElementMatrix* PenaltyCreateKMatrixDiagnosticFS(IssmDouble kmax); 72 72 ElementMatrix* PenaltyCreateKMatrixPrognostic(IssmDouble kmax); -
issm/trunk-jpl/src/c/classes/Materials/Matdamageice.cpp
r15564 r15567 282 282 void Matdamageice::GetViscosity3d(IssmDouble* pviscosity3d, IssmDouble* epsilon){ 283 283 284 /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:284 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 285 285 * 286 286 * B … … 353 353 /*FUNCTION Matdamageice::GetViscosity3dFS {{{*/ 354 354 void Matdamageice::GetViscosity3dFS(IssmDouble* pviscosity3d, IssmDouble* epsilon){ 355 /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:355 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 356 356 * 357 357 * B … … 426 426 /*FUNCTION Matdamageice::GetViscosityComplement {{{*/ 427 427 void Matdamageice::GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){ 428 /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:428 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 429 429 * 430 430 * 1 -
issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
r15564 r15567 274 274 void Matice::GetViscosity3d(IssmDouble* pviscosity3d, IssmDouble* epsilon){ 275 275 276 /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:276 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 277 277 * 278 278 * B … … 344 344 /*FUNCTION Matice::GetViscosity3dFS {{{*/ 345 345 void Matice::GetViscosity3dFS(IssmDouble* pviscosity3d, IssmDouble* epsilon){ 346 /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:346 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 347 347 * 348 348 * B … … 416 416 /*FUNCTION Matice::GetViscosityComplement {{{*/ 417 417 void Matice::GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){ 418 /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:418 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 419 419 * 420 420 * 1 -
issm/trunk-jpl/src/c/classes/Node.cpp
r15564 r15567 77 77 _assert_(iomodel->Data(MeshVertexonbedEnum)); 78 78 _assert_(iomodel->Data(FlowequationVertexEquationEnum)); 79 if(node_type== MacAyealApproximationEnum && !reCast<int>(iomodel->Data(MeshVertexonbedEnum)[io_index])){79 if(node_type==SSAApproximationEnum && !reCast<int>(iomodel->Data(MeshVertexonbedEnum)[io_index])){ 80 80 this->Deactivate(); 81 81 } … … 83 83 this->Deactivate(); 84 84 } 85 if(node_type== MacAyealHOApproximationEnum && reCast<int>(iomodel->Data(FlowequationBorderSSAEnum)[io_index])){85 if(node_type==SSAHOApproximationEnum && reCast<int>(iomodel->Data(FlowequationBorderSSAEnum)[io_index])){ 86 86 if(!reCast<int>(iomodel->Data(MeshVertexonbedEnum)[io_index])){ 87 87 this->Deactivate(); 88 88 } 89 89 } 90 if(node_type== MacAyealFSApproximationEnum && reCast<int>(iomodel->Data(FlowequationBorderSSAEnum)[io_index])){90 if(node_type==SSAFSApproximationEnum && reCast<int>(iomodel->Data(FlowequationBorderSSAEnum)[io_index])){ 91 91 if(!reCast<int>(iomodel->Data(MeshVertexonbedEnum)[io_index])){ 92 92 for(k=1;k<=2;k++) this->FreezeDof(k); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r15564 r15567 100 100 101 101 /*Start with adding spcs of coupling: zero at the border SSA/HO for the appropriate dofs*/ 102 if (reCast<int,IssmDouble>(vertices_type[i]== MacAyealHOApproximationEnum)){102 if (reCast<int,IssmDouble>(vertices_type[i]==SSAHOApproximationEnum)){ 103 103 /*If grionSSA, spc HO dofs: 3 & 4*/ 104 104 if (reCast<int,IssmDouble>(nodeonHO[i])){ … … 132 132 133 133 } 134 else _error_("if vertices_type is MacAyealHO, you shoud have nodeonHO or nodeonSSA");134 else _error_("if vertices_type is SSAHO, you shoud have nodeonHO or nodeonSSA"); 135 135 } 136 136 /*Also add spcs of coupling: zero at the border HO/FS for the appropriate dofs*/ … … 175 175 } 176 176 /*Also add spcs of coupling: zero at the border HO/FS for the appropriate dofs*/ 177 else if (reCast<int,IssmDouble>(vertices_type[i])== MacAyealFSApproximationEnum){177 else if (reCast<int,IssmDouble>(vertices_type[i])==SSAFSApproximationEnum){ 178 178 /*If grion,HO spc FS dofs: 3 4 & 5*/ 179 179 if (reCast<int,IssmDouble>(nodeonSSA[i])){ … … 212 212 } 213 213 } 214 else _error_("if vertices_type is MacAyealFS, you shoud have nodeonSSA or nodeonFS");214 else _error_("if vertices_type is SSAFS, you shoud have nodeonSSA or nodeonFS"); 215 215 } 216 216 /*Now add the regular spcs*/ … … 294 294 if (iomodel->dim==3) if(reCast<int,IssmDouble>(nodeonbed[i]) && reCast<int,IssmDouble>(nodeonicesheet[i]) && reCast<int,IssmDouble>(nodeonFS[i])){ 295 295 switch(reCast<int,IssmDouble>(vertices_type[i])){ 296 case MacAyealFSApproximationEnum:296 case SSAFSApproximationEnum: 297 297 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,5,0.,DiagnosticHorizAnalysisEnum)); 298 298 count++; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp
r15564 r15567 18 18 case DiagnosticHorizAnalysisEnum: 19 19 switch(node_type){ 20 case MacAyealApproximationEnum:20 case SSAApproximationEnum: 21 21 numdofs=2; 22 22 break; … … 36 36 numdofs=4; 37 37 break; 38 case MacAyealHOApproximationEnum:38 case SSAHOApproximationEnum: 39 39 numdofs=4; 40 40 doftype=xNew<int>(numdofs); 41 doftype[0]= MacAyealApproximationEnum;42 doftype[1]= MacAyealApproximationEnum;41 doftype[0]=SSAApproximationEnum; 42 doftype[1]=SSAApproximationEnum; 43 43 doftype[2]=HOApproximationEnum; 44 44 doftype[3]=HOApproximationEnum; … … 54 54 doftype[5]=FSApproximationEnum; 55 55 break; 56 case MacAyealFSApproximationEnum:56 case SSAFSApproximationEnum: 57 57 numdofs=6; 58 58 doftype=xNew<int>(numdofs); 59 doftype[0]= MacAyealApproximationEnum;60 doftype[1]= MacAyealApproximationEnum;59 doftype[0]=SSAApproximationEnum; 60 doftype[1]=SSAApproximationEnum; 61 61 doftype[2]=FSApproximationEnum; 62 62 doftype[3]=FSApproximationEnum; -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r15564 r15567 311 311 NoneApproximationEnum, 312 312 SIAApproximationEnum, 313 MacAyealApproximationEnum,314 MacAyealHOApproximationEnum,315 MacAyealFSApproximationEnum,313 SSAApproximationEnum, 314 SSAHOApproximationEnum, 315 SSAFSApproximationEnum, 316 316 L1L2ApproximationEnum, 317 317 HOApproximationEnum, … … 356 356 TransientParamEnum, 357 357 IceFrontTypeEnum, 358 MacAyeal2dIceFrontEnum,359 MacAyeal3dIceFrontEnum,358 SSA2dIceFrontEnum, 359 SSA3dIceFrontEnum, 360 360 MaticeEnum, 361 361 MatdamageiceEnum, … … 460 460 VyPicardEnum, 461 461 VzEnum, 462 Vz MacAyealEnum,462 VzSSAEnum, 463 463 VzHOEnum, 464 464 VzPicardEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r15564 r15567 315 315 case NoneApproximationEnum : return "NoneApproximation"; 316 316 case SIAApproximationEnum : return "SIAApproximation"; 317 case MacAyealApproximationEnum : return "MacAyealApproximation";318 case MacAyealHOApproximationEnum : return "MacAyealHOApproximation";319 case MacAyealFSApproximationEnum : return "MacAyealFSApproximation";317 case SSAApproximationEnum : return "SSAApproximation"; 318 case SSAHOApproximationEnum : return "SSAHOApproximation"; 319 case SSAFSApproximationEnum : return "SSAFSApproximation"; 320 320 case L1L2ApproximationEnum : return "L1L2Approximation"; 321 321 case HOApproximationEnum : return "HOApproximation"; … … 356 356 case TransientParamEnum : return "TransientParam"; 357 357 case IceFrontTypeEnum : return "IceFrontType"; 358 case MacAyeal2dIceFrontEnum : return "MacAyeal2dIceFront";359 case MacAyeal3dIceFrontEnum : return "MacAyeal3dIceFront";358 case SSA2dIceFrontEnum : return "SSA2dIceFront"; 359 case SSA3dIceFrontEnum : return "SSA3dIceFront"; 360 360 case MaticeEnum : return "Matice"; 361 361 case MatdamageiceEnum : return "Matdamageice"; … … 454 454 case VyPicardEnum : return "VyPicard"; 455 455 case VzEnum : return "Vz"; 456 case Vz MacAyealEnum : return "VzMacAyeal";456 case VzSSAEnum : return "VzSSA"; 457 457 case VzHOEnum : return "VzHO"; 458 458 case VzPicardEnum : return "VzPicard"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r15564 r15567 321 321 else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum; 322 322 else if (strcmp(name,"SIAApproximation")==0) return SIAApproximationEnum; 323 else if (strcmp(name," MacAyealApproximation")==0) return MacAyealApproximationEnum;324 else if (strcmp(name," MacAyealHOApproximation")==0) return MacAyealHOApproximationEnum;325 else if (strcmp(name," MacAyealFSApproximation")==0) return MacAyealFSApproximationEnum;323 else if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum; 324 else if (strcmp(name,"SSAHOApproximation")==0) return SSAHOApproximationEnum; 325 else if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum; 326 326 else if (strcmp(name,"L1L2Approximation")==0) return L1L2ApproximationEnum; 327 327 else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum; … … 362 362 else if (strcmp(name,"TransientParam")==0) return TransientParamEnum; 363 363 else if (strcmp(name,"IceFrontType")==0) return IceFrontTypeEnum; 364 else if (strcmp(name," MacAyeal2dIceFront")==0) return MacAyeal2dIceFrontEnum;365 else if (strcmp(name," MacAyeal3dIceFront")==0) return MacAyeal3dIceFrontEnum;364 else if (strcmp(name,"SSA2dIceFront")==0) return SSA2dIceFrontEnum; 365 else if (strcmp(name,"SSA3dIceFront")==0) return SSA3dIceFrontEnum; 366 366 else if (strcmp(name,"Matice")==0) return MaticeEnum; 367 367 else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum; … … 463 463 else if (strcmp(name,"VyPicard")==0) return VyPicardEnum; 464 464 else if (strcmp(name,"Vz")==0) return VzEnum; 465 else if (strcmp(name,"Vz MacAyeal")==0) return VzMacAyealEnum;465 else if (strcmp(name,"VzSSA")==0) return VzSSAEnum; 466 466 else if (strcmp(name,"VzHO")==0) return VzHOEnum; 467 467 else if (strcmp(name,"VzPicard")==0) return VzPicardEnum; -
issm/trunk-jpl/src/m/classes/balancethickness.m
r15132 r15567 38 38 fielddisplay(obj,'spcthickness','thickness constraints (NaN means no constraint) [m]'); 39 39 fielddisplay(obj,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt) [m/yr]'); 40 fielddisplay(obj,'stabilization','0: None, 1: SU, 2: MacAyeal''s artificial diffusivity, 3:DG');40 fielddisplay(obj,'stabilization','0: None, 1: SU, 2: SSA''s artificial diffusivity, 3:DG'); 41 41 42 42 end % }}} -
issm/trunk-jpl/src/m/classes/balancethickness.py
r15132 r15567 27 27 string="%s\n%s"%(string,fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint) [m]')) 28 28 string="%s\n%s"%(string,fielddisplay(self,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt) [m/yr]')) 29 string="%s\n%s"%(string,fielddisplay(self,'stabilization',"0: None, 1: SU, 2: MacAyeal's artificial diffusivity, 3:DG"))29 string="%s\n%s"%(string,fielddisplay(self,'stabilization',"0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG")) 30 30 return string 31 31 #}}} -
issm/trunk-jpl/src/m/classes/flowequation.m
r15564 r15567 132 132 pos=find(data==0); data(pos,end)=NoneApproximationEnum(); 133 133 pos=find(data==1); data(pos,end)=SIAApproximationEnum(); 134 pos=find(data==2); data(pos,end)= MacAyealApproximationEnum();134 pos=find(data==2); data(pos,end)=SSAApproximationEnum(); 135 135 pos=find(data==3); data(pos,end)=HOApproximationEnum(); 136 136 pos=find(data==4); data(pos,end)=FSApproximationEnum(); 137 pos=find(data==5); data(pos,end)= MacAyealHOApproximationEnum();138 pos=find(data==6); data(pos,end)= MacAyealFSApproximationEnum();137 pos=find(data==5); data(pos,end)=SSAHOApproximationEnum(); 138 pos=find(data==6); data(pos,end)=SSAFSApproximationEnum(); 139 139 pos=find(data==7); data(pos,end)=HOFSApproximationEnum(); 140 140 pos=find(data==8); data(pos,end)=L1L2ApproximationEnum(); … … 143 143 pos=find(data==0); data(pos,end)=NoneApproximationEnum(); 144 144 pos=find(data==1); data(pos,end)=SIAApproximationEnum(); 145 pos=find(data==2); data(pos,end)= MacAyealApproximationEnum();145 pos=find(data==2); data(pos,end)=SSAApproximationEnum(); 146 146 pos=find(data==3); data(pos,end)=HOApproximationEnum(); 147 147 pos=find(data==4); data(pos,end)=FSApproximationEnum(); 148 pos=find(data==5); data(pos,end)= MacAyealHOApproximationEnum();149 pos=find(data==6); data(pos,end)= MacAyealFSApproximationEnum();148 pos=find(data==5); data(pos,end)=SSAHOApproximationEnum(); 149 pos=find(data==6); data(pos,end)=SSAFSApproximationEnum(); 150 150 pos=find(data==7); data(pos,end)=HOFSApproximationEnum(); 151 151 pos=find(data==8); data(pos,end)=L1L2ApproximationEnum(); -
issm/trunk-jpl/src/m/classes/flowequation.py
r15564 r15567 94 94 data[numpy.nonzero(data==0)]=NoneApproximationEnum() 95 95 data[numpy.nonzero(data==1)]=SIAApproximationEnum() 96 data[numpy.nonzero(data==2)]= MacAyealApproximationEnum()96 data[numpy.nonzero(data==2)]=SSAApproximationEnum() 97 97 data[numpy.nonzero(data==3)]=HOApproximationEnum() 98 98 data[numpy.nonzero(data==4)]=FSApproximationEnum() 99 data[numpy.nonzero(data==5)]= MacAyealHOApproximationEnum()100 data[numpy.nonzero(data==6)]= MacAyealFSApproximationEnum()99 data[numpy.nonzero(data==5)]=SSAHOApproximationEnum() 100 data[numpy.nonzero(data==6)]=SSAFSApproximationEnum() 101 101 data[numpy.nonzero(data==7)]=HOFSApproximationEnum() 102 102 data[numpy.nonzero(data==8)]=L1L2ApproximationEnum() … … 105 105 data[numpy.nonzero(data==0)]=NoneApproximationEnum() 106 106 data[numpy.nonzero(data==1)]=SIAApproximationEnum() 107 data[numpy.nonzero(data==2)]= MacAyealApproximationEnum()107 data[numpy.nonzero(data==2)]=SSAApproximationEnum() 108 108 data[numpy.nonzero(data==3)]=HOApproximationEnum() 109 109 data[numpy.nonzero(data==4)]=FSApproximationEnum() 110 data[numpy.nonzero(data==5)]= MacAyealHOApproximationEnum()111 data[numpy.nonzero(data==6)]= MacAyealFSApproximationEnum()110 data[numpy.nonzero(data==5)]=SSAHOApproximationEnum() 111 data[numpy.nonzero(data==6)]=SSAFSApproximationEnum() 112 112 data[numpy.nonzero(data==7)]=HOFSApproximationEnum() 113 113 data[numpy.nonzero(data==8)]=L1L2ApproximationEnum() -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r15564 r15567 4181 4181 return StringToEnum('SIAApproximation')[0] 4182 4182 4183 def MacAyealApproximationEnum():4184 """ 4185 MACAYEALAPPROXIMATIONENUM - Enum of MacAyealApproximation4186 4187 WARNING: DO NOT MODIFY THIS FILE 4188 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4189 Please read src/c/shared/Enum/README for more information 4190 4191 Usage: 4192 macro= MacAyealApproximationEnum()4193 """ 4194 4195 return StringToEnum(' MacAyealApproximation')[0]4196 4197 def MacAyealHOApproximationEnum():4198 """ 4199 MACAYEALHOAPPROXIMATIONENUM - Enum of MacAyealHOApproximation4200 4201 WARNING: DO NOT MODIFY THIS FILE 4202 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4203 Please read src/c/shared/Enum/README for more information 4204 4205 Usage: 4206 macro= MacAyealHOApproximationEnum()4207 """ 4208 4209 return StringToEnum(' MacAyealHOApproximation')[0]4210 4211 def MacAyealFSApproximationEnum():4212 """ 4213 MACAYEALFSAPPROXIMATIONENUM - Enum of MacAyealFSApproximation4214 4215 WARNING: DO NOT MODIFY THIS FILE 4216 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4217 Please read src/c/shared/Enum/README for more information 4218 4219 Usage: 4220 macro= MacAyealFSApproximationEnum()4221 """ 4222 4223 return StringToEnum(' MacAyealFSApproximation')[0]4183 def SSAApproximationEnum(): 4184 """ 4185 SSAAPPROXIMATIONENUM - Enum of SSAApproximation 4186 4187 WARNING: DO NOT MODIFY THIS FILE 4188 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4189 Please read src/c/shared/Enum/README for more information 4190 4191 Usage: 4192 macro=SSAApproximationEnum() 4193 """ 4194 4195 return StringToEnum('SSAApproximation')[0] 4196 4197 def SSAHOApproximationEnum(): 4198 """ 4199 SSAHOAPPROXIMATIONENUM - Enum of SSAHOApproximation 4200 4201 WARNING: DO NOT MODIFY THIS FILE 4202 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4203 Please read src/c/shared/Enum/README for more information 4204 4205 Usage: 4206 macro=SSAHOApproximationEnum() 4207 """ 4208 4209 return StringToEnum('SSAHOApproximation')[0] 4210 4211 def SSAFSApproximationEnum(): 4212 """ 4213 SSAFSAPPROXIMATIONENUM - Enum of SSAFSApproximation 4214 4215 WARNING: DO NOT MODIFY THIS FILE 4216 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4217 Please read src/c/shared/Enum/README for more information 4218 4219 Usage: 4220 macro=SSAFSApproximationEnum() 4221 """ 4222 4223 return StringToEnum('SSAFSApproximation')[0] 4224 4224 4225 4225 def L1L2ApproximationEnum(): … … 4755 4755 return StringToEnum('IceFrontType')[0] 4756 4756 4757 def MacAyeal2dIceFrontEnum():4758 """ 4759 MACAYEAL2DICEFRONTENUM - Enum of MacAyeal2dIceFront4760 4761 WARNING: DO NOT MODIFY THIS FILE 4762 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4763 Please read src/c/shared/Enum/README for more information 4764 4765 Usage: 4766 macro= MacAyeal2dIceFrontEnum()4767 """ 4768 4769 return StringToEnum(' MacAyeal2dIceFront')[0]4770 4771 def MacAyeal3dIceFrontEnum():4772 """ 4773 MACAYEAL3DICEFRONTENUM - Enum of MacAyeal3dIceFront4774 4775 WARNING: DO NOT MODIFY THIS FILE 4776 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4777 Please read src/c/shared/Enum/README for more information 4778 4779 Usage: 4780 macro= MacAyeal3dIceFrontEnum()4781 """ 4782 4783 return StringToEnum(' MacAyeal3dIceFront')[0]4757 def SSA2dIceFrontEnum(): 4758 """ 4759 SSA2DICEFRONTENUM - Enum of SSA2dIceFront 4760 4761 WARNING: DO NOT MODIFY THIS FILE 4762 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4763 Please read src/c/shared/Enum/README for more information 4764 4765 Usage: 4766 macro=SSA2dIceFrontEnum() 4767 """ 4768 4769 return StringToEnum('SSA2dIceFront')[0] 4770 4771 def SSA3dIceFrontEnum(): 4772 """ 4773 SSA3DICEFRONTENUM - Enum of SSA3dIceFront 4774 4775 WARNING: DO NOT MODIFY THIS FILE 4776 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 4777 Please read src/c/shared/Enum/README for more information 4778 4779 Usage: 4780 macro=SSA3dIceFrontEnum() 4781 """ 4782 4783 return StringToEnum('SSA3dIceFront')[0] 4784 4784 4785 4785 def MaticeEnum(): … … 6127 6127 return StringToEnum('Vz')[0] 6128 6128 6129 def Vz MacAyealEnum():6130 """ 6131 VZ MACAYEALENUM - Enum of VzMacAyeal6132 6133 WARNING: DO NOT MODIFY THIS FILE 6134 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 6135 Please read src/c/shared/Enum/README for more information 6136 6137 Usage: 6138 macro=Vz MacAyealEnum()6139 """ 6140 6141 return StringToEnum('Vz MacAyeal')[0]6129 def VzSSAEnum(): 6130 """ 6131 VZSSAENUM - Enum of VzSSA 6132 6133 WARNING: DO NOT MODIFY THIS FILE 6134 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh 6135 Please read src/c/shared/Enum/README for more information 6136 6137 Usage: 6138 macro=VzSSAEnum() 6139 """ 6140 6141 return StringToEnum('VzSSA')[0] 6142 6142 6143 6143 def VzHOEnum(): -
issm/trunk-jpl/src/m/mech/mechanicalproperties.m
r15564 r15567 21 21 end 22 22 if any(md.flowequation.element_equation~=2), 23 disp('Warning: the model has some non SSA elements. These will be treated like MacAyeal''s elements');23 disp('Warning: the model has some non SSA elements. These will be treated like SSA''s elements'); 24 24 end 25 25 -
issm/trunk-jpl/src/m/mech/strainrateuncert.m
r15564 r15567 36 36 end 37 37 if any(md.flowequation.element_equation~=2), 38 disp('Warning: the model has some non SSA elements. These will be treated like MacAyeal''s elements');38 disp('Warning: the model has some non SSA elements. These will be treated like SSA''s elements'); 39 39 end 40 40 -
issm/trunk-jpl/src/m/miscellaneous/issmdoc.m
r15564 r15567 11 11 disp(sprintf('%-63s %s',' md=setmask(md,''all'','''');','%defines the glacier system as an ice shelf (no island)')); 12 12 disp(sprintf('%-63s %s',' md=parameterize(md,''Square.par'');','%fills all the other fields of the model')); 13 disp(sprintf('%-63s %s',' md=setflowequation(md,''SSA'',''all'');','%defines all elements as MacAyeal''s SSA'));13 disp(sprintf('%-63s %s',' md=setflowequation(md,''SSA'',''all'');','%defines all elements as SSA''s SSA')); 14 14 disp(sprintf('%-63s %s',' md=solve(md,DiagnosticSolutionEnum());','%solve for stress balance')); 15 15 disp(sprintf('%-63s %s',' plotmodel(md,''data'',md.results.DiagnosticSolution.Vel);','%displays the velocity (type plotdoc for plotmodel help)')); -
issm/trunk-jpl/src/m/parameterization/setflowequation.m
r15564 r15567 116 116 end 117 117 118 %Now take care of the coupling between MacAyealand HO118 %Now take care of the coupling between SSA and HO 119 119 md.diagnostic.vertex_pairing=[]; 120 120 nodeonSSAHO=zeros(md.mesh.numberofvertices,1); … … 125 125 HOFSflag=zeros(md.mesh.numberofelements,1); 126 126 if strcmpi(coupling_method,'penalties'), 127 %Create the border nodes between HO and MacAyealand extrude them127 %Create the border nodes between HO and SSA and extrude them 128 128 numnodes2d=md.mesh.numberofvertices2d; 129 129 numlayers=md.mesh.numberoflayers; … … 142 142 %Find node at the border 143 143 nodeonSSAHO(find(nodeonSSA & nodeonHO))=1; 144 %SSA elements in contact with this layer become MacAyealHO elements144 %SSA elements in contact with this layer become SSAHO elements 145 145 matrixelements=ismember(md.mesh.elements,find(nodeonSSAHO)); 146 146 commonelements=sum(matrixelements,2)~=0; … … 206 206 %Find node at the border 207 207 nodeonSSAFS(find(nodeonSSA & nodeonFS))=1; 208 %FS elements in contact with this layer become MacAyealFS elements208 %FS elements in contact with this layer become SSAFS elements 209 209 matrixelements=ismember(md.mesh.elements,find(nodeonSSAFS)); 210 210 commonelements=sum(matrixelements,2)~=0; -
issm/trunk-jpl/src/m/parameterization/setflowequation.py
r15564 r15567 112 112 noneflag[numpy.nonzero(numpy.logical_not(FSflag))]=True 113 113 114 #Now take care of the coupling between MacAyealand HO114 #Now take care of the coupling between SSA and HO 115 115 md.diagnostic.vertex_pairing=numpy.array([]) 116 116 nodeonSSAHO=numpy.zeros(md.mesh.numberofvertices,bool) … … 121 121 HOFSflag=numpy.zeros(md.mesh.numberofelements,bool) 122 122 if strcmpi(coupling_method,'penalties'): 123 #Create the border nodes between HO and MacAyealand extrude them123 #Create the border nodes between HO and SSA and extrude them 124 124 numnodes2d=md.mesh.numberofvertices2d 125 125 numlayers=md.mesh.numberoflayers … … 137 137 #Find node at the border 138 138 nodeonSSAHO[numpy.nonzero(numpy.logical_and(nodeonSSA,nodeonHO))]=True 139 #SSA elements in contact with this layer become MacAyealHO elements139 #SSA elements in contact with this layer become SSAHO elements 140 140 matrixelements=ismember(md.mesh.elements-1,numpy.nonzero(nodeonSSAHO)[0]) 141 141 commonelements=numpy.sum(matrixelements,axis=1)!=0 … … 201 201 #Find node at the border 202 202 nodeonSSAFS[numpy.nonzero(numpy.logical_and(nodeonSSA,nodeonFS))]=True 203 #FS elements in contact with this layer become MacAyealFS elements203 #FS elements in contact with this layer become SSAFS elements 204 204 matrixelements=ismember(md.mesh.elements-1,numpy.nonzero(nodeonSSAFS)[0]) 205 205 commonelements=numpy.sum(matrixelements,axis=1)!=0 … … 233 233 raise TypeError("type of coupling not supported yet") 234 234 235 #Create MacAyealHOApproximation where needed235 #Create SSAHOApproximation where needed 236 236 md.flowequation.element_equation=numpy.zeros(md.mesh.numberofelements,int) 237 237 md.flowequation.element_equation[numpy.nonzero(noneflag)]=0 -
issm/trunk-jpl/src/m/plot/plot_elementstype.m
r15564 r15567 22 22 A=elements(posH,1); B=elements(posH,2); C=elements(posH,3); 23 23 p1=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',1,'FaceColor','flat','EdgeColor',edgecolor); 24 % MacAyealelement24 %SSA element 25 25 posM=find(data==2); 26 26 A=elements(posM,1); B=elements(posM,2); C=elements(posM,3); … … 30 30 A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); 31 31 p3=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',3,'FaceColor','flat','EdgeColor',edgecolor); 32 % MacAyealHO element32 %SSAHO element 33 33 posMP=find(data==5); 34 34 A=elements(posMP,1); B=elements(posMP,2); C=elements(posMP,3); … … 38 38 A=elements(posS,1); B=elements(posS,2); C=elements(posS,3); 39 39 p6=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',4,'FaceColor','flat','EdgeColor',edgecolor); 40 % MacAyealFS elements40 %SSAFS elements 41 41 posMS=find(data==6); 42 42 A=elements(posMS,1); B=elements(posMS,2); C=elements(posMS,3); … … 52 52 53 53 legend([p1 p2 p3 p5 p6 p7 p8 p9],... 54 'SIA''s elements',' MacAyeal''s elements','HO''s elements',...55 ' MacAyealHO''s elements','FS''s elements','MacAyealFS''s elements','HOFS''s elements','None element');54 'SIA''s elements','SSA''s elements','HO''s elements',... 55 'SSAHO''s elements','FS''s elements','SSAFS''s elements','HOFS''s elements','None element'); 56 56 57 57 else … … 64 64 patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor); 65 65 patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor); 66 % MacAyealelements66 %SSA elements 67 67 posM=find(data==2); 68 68 A=elements(posM,1); B=elements(posM,2); C=elements(posM,3); D=elements(posM,4); E=elements(posM,5); F=elements(posM,6); … … 88 88 patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor); 89 89 patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor); 90 % MacAyealHO elements90 %SSAHO elements 91 91 posP=find(data==5); 92 92 A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); D=elements(posP,4); E=elements(posP,5); F=elements(posP,6); … … 104 104 patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor); 105 105 patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor); 106 % MacAyealFS elements106 %SSAFS elements 107 107 PosMS=find(data==6); 108 108 A=elements(PosMS,1); B=elements(PosMS,2); C=elements(PosMS,3); D=elements(PosMS,4); E=elements(PosMS,5); F=elements(PosMS,6); … … 122 122 123 123 legend([p1 p2 p3 p4 p5 p6 p7 p8],... 124 'SIA''s elements',' MacAyeal''s elements','HO''s elements','FS''s elements',...125 ' MacAyealHO''s elements','HOFS''s elements','MacAyealFS''s elements','None elements');124 'SIA''s elements','SSA''s elements','HO''s elements','FS''s elements',... 125 'SSAHO''s elements','HOFS''s elements','SSAFS''s elements','None elements'); 126 126 end 127 127 -
issm/trunk-jpl/src/m/plot/plot_penalties.m
r15564 r15567 40 40 P2=plot3(x(md.penalties(i,:)),y(md.penalties(i,:)),z(md.penalties(i,:)),'bo-','LineWidth',2,'MarkerSize',8,'MarkerFaceColor','b'); 41 41 end 42 legend([P1 P2],' MacAyeal''s penalized nodes','HO''s penalized nodes');42 legend([P1 P2],'SSA''s penalized nodes','HO''s penalized nodes'); 43 43 end 44 44
Note:
See TracChangeset
for help on using the changeset viewer.