Changeset 24049
- Timestamp:
- 06/26/19 16:09:31 (6 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r24048 r24049 3293 3293 break; 3294 3294 case CalvingFluxLevelsetEnum: this->CalvingFluxLevelset(); break; 3295 case CalvingMeltingFluxLevelsetEnum: this->CalvingMeltingFluxLevelset(); break; 3295 3296 case StrainRateparallelEnum: this->StrainRateparallel(); break; 3296 3297 case StrainRateperpendicularEnum: this->StrainRateperpendicular(); break; -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r24048 r24049 209 209 virtual void CalvingRateLevermann(void)=0; 210 210 virtual void CalvingFluxLevelset(void){_error_("not implemented yet");}; 211 virtual void CalvingMeltingFluxLevelset(void){_error_("not implemented yet");}; 211 212 virtual IssmDouble CharacteristicLength(void)=0; 212 213 virtual void ComputeBasalStress(void){_error_("not implemented yet");}; … … 323 324 virtual IssmDouble TimeAdapt()=0; 324 325 virtual IssmDouble TotalCalvingFluxLevelset(bool scaled){_error_("not implemented");}; 326 virtual IssmDouble TotalCalvingMeltingFluxLevelset(bool scaled){_error_("not implemented");}; 325 327 virtual IssmDouble TotalFloatingBmb(bool scaled)=0; 326 328 virtual IssmDouble TotalGroundedBmb(bool scaled)=0; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r24048 r24049 615 615 616 616 this->inputs->AddInput(new TriaInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum)); 617 } 618 } 619 /*}}}*/ 620 void Tria::CalvingMeltingFluxLevelset(){/*{{{*/ 621 622 /*Make sure there is an ice front here*/ 623 if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){ 624 IssmDouble flux_per_area=0; 625 this->inputs->AddInput(new TriaInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum)); 626 } 627 else{ 628 int domaintype,index1,index2; 629 const IssmPDouble epsilon = 1.e-15; 630 IssmDouble s1,s2; 631 IssmDouble gl[NUMVERTICES]; 632 IssmDouble xyz_front[2][3]; 633 634 635 IssmDouble *xyz_list = NULL; 636 this->GetVerticesCoordinates(&xyz_list); 637 638 /*Recover parameters and values*/ 639 parameters->FindParam(&domaintype,DomainTypeEnum); 640 GetInputListOnVertices(&gl[0],MaskIceLevelsetEnum); 641 642 /*Be sure that values are not zero*/ 643 if(gl[0]==0.) gl[0]=gl[0]+epsilon; 644 if(gl[1]==0.) gl[1]=gl[1]+epsilon; 645 if(gl[2]==0.) gl[2]=gl[2]+epsilon; 646 647 if(domaintype==Domain2DverticalEnum){ 648 _error_("not implemented"); 649 } 650 else if(domaintype==Domain2DhorizontalEnum || domaintype==Domain3DEnum || domaintype==Domain3DsurfaceEnum){ 651 int pt1 = 0; 652 int pt2 = 1; 653 if(gl[0]*gl[1]>0){ //Nodes 0 and 1 are similar, so points must be found on segment 0-2 and 1-2 654 655 /*Portion of the segments*/ 656 s1=gl[2]/(gl[2]-gl[1]); 657 s2=gl[2]/(gl[2]-gl[0]); 658 if(gl[2]<0.){ 659 pt1 = 1; pt2 = 0; 660 } 661 xyz_front[pt2][0]=xyz_list[3*2+0]+s1*(xyz_list[3*1+0]-xyz_list[3*2+0]); 662 xyz_front[pt2][1]=xyz_list[3*2+1]+s1*(xyz_list[3*1+1]-xyz_list[3*2+1]); 663 xyz_front[pt2][2]=xyz_list[3*2+2]+s1*(xyz_list[3*1+2]-xyz_list[3*2+2]); 664 xyz_front[pt1][0]=xyz_list[3*2+0]+s2*(xyz_list[3*0+0]-xyz_list[3*2+0]); 665 xyz_front[pt1][1]=xyz_list[3*2+1]+s2*(xyz_list[3*0+1]-xyz_list[3*2+1]); 666 xyz_front[pt1][2]=xyz_list[3*2+2]+s2*(xyz_list[3*0+2]-xyz_list[3*2+2]); 667 } 668 else if(gl[1]*gl[2]>0){ //Nodes 1 and 2 are similar, so points must be found on segment 0-1 and 0-2 669 670 /*Portion of the segments*/ 671 s1=gl[0]/(gl[0]-gl[1]); 672 s2=gl[0]/(gl[0]-gl[2]); 673 if(gl[0]<0.){ 674 pt1 = 1; pt2 = 0; 675 } 676 677 xyz_front[pt1][0]=xyz_list[3*0+0]+s1*(xyz_list[3*1+0]-xyz_list[3*0+0]); 678 xyz_front[pt1][1]=xyz_list[3*0+1]+s1*(xyz_list[3*1+1]-xyz_list[3*0+1]); 679 xyz_front[pt1][2]=xyz_list[3*0+2]+s1*(xyz_list[3*1+2]-xyz_list[3*0+2]); 680 xyz_front[pt2][0]=xyz_list[3*0+0]+s2*(xyz_list[3*2+0]-xyz_list[3*0+0]); 681 xyz_front[pt2][1]=xyz_list[3*0+1]+s2*(xyz_list[3*2+1]-xyz_list[3*0+1]); 682 xyz_front[pt2][2]=xyz_list[3*0+2]+s2*(xyz_list[3*2+2]-xyz_list[3*0+2]); 683 } 684 else if(gl[0]*gl[2]>0){ //Nodes 0 and 2 are similar, so points must be found on segment 1-0 and 1-2 685 686 /*Portion of the segments*/ 687 s1=gl[1]/(gl[1]-gl[0]); 688 s2=gl[1]/(gl[1]-gl[2]); 689 if(gl[1]<0.){ 690 pt1 = 1; pt2 = 0; 691 } 692 693 xyz_front[pt2][0]=xyz_list[3*1+0]+s1*(xyz_list[3*0+0]-xyz_list[3*1+0]); 694 xyz_front[pt2][1]=xyz_list[3*1+1]+s1*(xyz_list[3*0+1]-xyz_list[3*1+1]); 695 xyz_front[pt2][2]=xyz_list[3*1+2]+s1*(xyz_list[3*0+2]-xyz_list[3*1+2]); 696 xyz_front[pt1][0]=xyz_list[3*1+0]+s2*(xyz_list[3*2+0]-xyz_list[3*1+0]); 697 xyz_front[pt1][1]=xyz_list[3*1+1]+s2*(xyz_list[3*2+1]-xyz_list[3*1+1]); 698 xyz_front[pt1][2]=xyz_list[3*1+2]+s2*(xyz_list[3*2+2]-xyz_list[3*1+2]); 699 } 700 else{ 701 _error_("case not possible"); 702 } 703 704 } 705 else _error_("mesh type "<<EnumToStringx(domaintype)<<"not supported yet "); 706 707 /*Some checks in debugging mode*/ 708 _assert_(s1>=0 && s1<=1.); 709 _assert_(s2>=0 && s2<=1.); 710 711 /*Get normal vector*/ 712 IssmDouble normal[3]; 713 this->NormalSection(&normal[0],&xyz_front[0][0]); 714 normal[0] = -normal[0]; 715 normal[1] = -normal[1]; 716 717 /*Get inputs*/ 718 IssmDouble flux = 0.; 719 IssmDouble area = 0.; 720 IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet,flux_per_area; 721 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 722 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 723 Input* calvingratex_input=NULL; 724 Input* calvingratey_input=NULL; 725 Input* vx_input=NULL; 726 Input* vy_input=NULL; 727 Input* meltingrate_input=NULL; 728 if(domaintype==Domain2DhorizontalEnum){ 729 calvingratex_input=inputs->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 730 calvingratey_input=inputs->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 731 vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 732 vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 733 meltingrate_input=inputs->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 734 } 735 else{ 736 calvingratex_input=inputs->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 737 calvingratey_input=inputs->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 738 } 739 740 /*Start looping on Gaussian points*/ 741 Gauss* gauss=this->NewGauss(xyz_list,&xyz_front[0][0],3); 742 for(int ig=gauss->begin();ig<gauss->end();ig++){ 743 744 gauss->GaussPoint(ig); 745 thickness_input->GetInputValue(&thickness,gauss); 746 calvingratex_input->GetInputValue(&calvingratex,gauss); 747 calvingratey_input->GetInputValue(&calvingratey,gauss); 748 vx_input->GetInputValue(&vx,gauss); 749 vy_input->GetInputValue(&vy,gauss); 750 vel=vx*vx+vy*vy; 751 meltingrate_input->GetInputValue(&meltingrate,gauss); 752 meltingratex=meltingrate*vx/(sqrt(vel)+1.e-14); 753 meltingratey=meltingrate*vy/(sqrt(vel)+1.e-14); 754 this->JacobianDeterminantSurface(&Jdet,&xyz_front[0][0],gauss); 755 756 flux += rho_ice*Jdet*gauss->weight*thickness*((calvingratex+meltingratex)*normal[0] + (calvingratey+meltingratey)*normal[1]); 757 area += Jdet*gauss->weight*thickness; 758 759 flux_per_area=flux/area; 760 } 761 762 this->inputs->AddInput(new TriaInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum)); 617 763 } 618 764 } … … 4002 4148 } 4003 4149 /*}}}*/ 4150 IssmDouble Tria::TotalCalvingMeltingFluxLevelset(bool scaled){/*{{{*/ 4151 4152 /*Make sure there is an ice front here*/ 4153 if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)) return 0; 4154 4155 /*Scaled not implemented yet...*/ 4156 _assert_(!scaled); 4157 4158 int domaintype,index1,index2; 4159 const IssmPDouble epsilon = 1.e-15; 4160 IssmDouble s1,s2; 4161 IssmDouble gl[NUMVERTICES]; 4162 IssmDouble xyz_front[2][3]; 4163 4164 4165 IssmDouble *xyz_list = NULL; 4166 this->GetVerticesCoordinates(&xyz_list); 4167 4168 /*Recover parameters and values*/ 4169 parameters->FindParam(&domaintype,DomainTypeEnum); 4170 GetInputListOnVertices(&gl[0],MaskIceLevelsetEnum); 4171 4172 /*Be sure that values are not zero*/ 4173 if(gl[0]==0.) gl[0]=gl[0]+epsilon; 4174 if(gl[1]==0.) gl[1]=gl[1]+epsilon; 4175 if(gl[2]==0.) gl[2]=gl[2]+epsilon; 4176 4177 if(domaintype==Domain2DverticalEnum){ 4178 _error_("not implemented"); 4179 } 4180 else if(domaintype==Domain2DhorizontalEnum || domaintype==Domain3DEnum || domaintype==Domain3DsurfaceEnum){ 4181 int pt1 = 0; 4182 int pt2 = 1; 4183 if(gl[0]*gl[1]>0){ //Nodes 0 and 1 are similar, so points must be found on segment 0-2 and 1-2 4184 4185 /*Portion of the segments*/ 4186 s1=gl[2]/(gl[2]-gl[1]); 4187 s2=gl[2]/(gl[2]-gl[0]); 4188 if(gl[2]<0.){ 4189 pt1 = 1; pt2 = 0; 4190 } 4191 xyz_front[pt2][0]=xyz_list[3*2+0]+s1*(xyz_list[3*1+0]-xyz_list[3*2+0]); 4192 xyz_front[pt2][1]=xyz_list[3*2+1]+s1*(xyz_list[3*1+1]-xyz_list[3*2+1]); 4193 xyz_front[pt2][2]=xyz_list[3*2+2]+s1*(xyz_list[3*1+2]-xyz_list[3*2+2]); 4194 xyz_front[pt1][0]=xyz_list[3*2+0]+s2*(xyz_list[3*0+0]-xyz_list[3*2+0]); 4195 xyz_front[pt1][1]=xyz_list[3*2+1]+s2*(xyz_list[3*0+1]-xyz_list[3*2+1]); 4196 xyz_front[pt1][2]=xyz_list[3*2+2]+s2*(xyz_list[3*0+2]-xyz_list[3*2+2]); 4197 } 4198 else if(gl[1]*gl[2]>0){ //Nodes 1 and 2 are similar, so points must be found on segment 0-1 and 0-2 4199 4200 /*Portion of the segments*/ 4201 s1=gl[0]/(gl[0]-gl[1]); 4202 s2=gl[0]/(gl[0]-gl[2]); 4203 if(gl[0]<0.){ 4204 pt1 = 1; pt2 = 0; 4205 } 4206 4207 xyz_front[pt1][0]=xyz_list[3*0+0]+s1*(xyz_list[3*1+0]-xyz_list[3*0+0]); 4208 xyz_front[pt1][1]=xyz_list[3*0+1]+s1*(xyz_list[3*1+1]-xyz_list[3*0+1]); 4209 xyz_front[pt1][2]=xyz_list[3*0+2]+s1*(xyz_list[3*1+2]-xyz_list[3*0+2]); 4210 xyz_front[pt2][0]=xyz_list[3*0+0]+s2*(xyz_list[3*2+0]-xyz_list[3*0+0]); 4211 xyz_front[pt2][1]=xyz_list[3*0+1]+s2*(xyz_list[3*2+1]-xyz_list[3*0+1]); 4212 xyz_front[pt2][2]=xyz_list[3*0+2]+s2*(xyz_list[3*2+2]-xyz_list[3*0+2]); 4213 } 4214 else if(gl[0]*gl[2]>0){ //Nodes 0 and 2 are similar, so points must be found on segment 1-0 and 1-2 4215 4216 /*Portion of the segments*/ 4217 s1=gl[1]/(gl[1]-gl[0]); 4218 s2=gl[1]/(gl[1]-gl[2]); 4219 if(gl[1]<0.){ 4220 pt1 = 1; pt2 = 0; 4221 } 4222 4223 xyz_front[pt2][0]=xyz_list[3*1+0]+s1*(xyz_list[3*0+0]-xyz_list[3*1+0]); 4224 xyz_front[pt2][1]=xyz_list[3*1+1]+s1*(xyz_list[3*0+1]-xyz_list[3*1+1]); 4225 xyz_front[pt2][2]=xyz_list[3*1+2]+s1*(xyz_list[3*0+2]-xyz_list[3*1+2]); 4226 xyz_front[pt1][0]=xyz_list[3*1+0]+s2*(xyz_list[3*2+0]-xyz_list[3*1+0]); 4227 xyz_front[pt1][1]=xyz_list[3*1+1]+s2*(xyz_list[3*2+1]-xyz_list[3*1+1]); 4228 xyz_front[pt1][2]=xyz_list[3*1+2]+s2*(xyz_list[3*2+2]-xyz_list[3*1+2]); 4229 } 4230 else{ 4231 _error_("case not possible"); 4232 } 4233 4234 } 4235 else _error_("mesh type "<<EnumToStringx(domaintype)<<"not supported yet "); 4236 4237 /*Some checks in debugging mode*/ 4238 _assert_(s1>=0 && s1<=1.); 4239 _assert_(s2>=0 && s2<=1.); 4240 4241 /*Get normal vector*/ 4242 IssmDouble normal[3]; 4243 this->NormalSection(&normal[0],&xyz_front[0][0]); 4244 normal[0] = -normal[0]; 4245 normal[1] = -normal[1]; 4246 4247 /*Get inputs*/ 4248 IssmDouble flux = 0.; 4249 IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet,flux_per_area; 4250 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 4251 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 4252 Input* calvingratex_input=NULL; 4253 Input* calvingratey_input=NULL; 4254 Input* vx_input=NULL; 4255 Input* vy_input=NULL; 4256 Input* meltingrate_input=NULL; 4257 if(domaintype==Domain2DhorizontalEnum){ 4258 calvingratex_input=inputs->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 4259 calvingratey_input=inputs->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 4260 vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 4261 vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 4262 meltingrate_input=inputs->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 4263 } 4264 else{ 4265 calvingratex_input=inputs->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 4266 calvingratey_input=inputs->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 4267 } 4268 4269 /*Start looping on Gaussian points*/ 4270 Gauss* gauss=this->NewGauss(xyz_list,&xyz_front[0][0],3); 4271 for(int ig=gauss->begin();ig<gauss->end();ig++){ 4272 4273 gauss->GaussPoint(ig); 4274 thickness_input->GetInputValue(&thickness,gauss); 4275 calvingratex_input->GetInputValue(&calvingratex,gauss); 4276 calvingratey_input->GetInputValue(&calvingratey,gauss); 4277 vx_input->GetInputValue(&vx,gauss); 4278 vy_input->GetInputValue(&vy,gauss); 4279 vel=vx*vx+vy*vy; 4280 meltingrate_input->GetInputValue(&meltingrate,gauss); 4281 meltingratex=meltingrate*vx/(sqrt(vel)+1.e-14); 4282 meltingratey=meltingrate*vy/(sqrt(vel)+1.e-14); 4283 this->JacobianDeterminantSurface(&Jdet,&xyz_front[0][0],gauss); 4284 4285 flux += rho_ice*Jdet*gauss->weight*thickness*((calvingratex+meltingratex)*normal[0] + (calvingratey+meltingratey)*normal[1]); 4286 } 4287 4288 return flux; 4289 } 4290 /*}}}*/ 4004 4291 IssmDouble Tria::TotalFloatingBmb(bool scaled){/*{{{*/ 4005 4292 -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r24048 r24049 55 55 void CalvingRateLevermann(); 56 56 void CalvingFluxLevelset(); 57 void CalvingMeltingFluxLevelset(); 57 58 IssmDouble CharacteristicLength(void); 58 59 void ComputeBasalStress(void); … … 135 136 IssmDouble TimeAdapt(); 136 137 IssmDouble TotalCalvingFluxLevelset(bool scaled); 138 IssmDouble TotalCalvingMeltingFluxLevelset(bool scaled); 137 139 IssmDouble TotalFloatingBmb(bool scaled); 138 140 IssmDouble TotalGroundedBmb(bool scaled); -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r24048 r24049 1040 1040 } 1041 1041 /*}}}*/ 1042 void FemModel::CalvingMeltingFluxLevelsetx(){/*{{{*/ 1043 1044 for(int i=0;i<elements->Size();i++){ 1045 Element* element=dynamic_cast<Element*>(this->elements->GetObjectByOffset(i)); 1046 element->CalvingMeltingFluxLevelset(); 1047 } 1048 } 1049 /*}}}*/ 1042 1050 void FemModel::CostFunctionx(IssmDouble* pJ,IssmDouble** pJlist,int* pn){/*{{{*/ 1043 1051 … … 2282 2290 case MaxAbsVzEnum: this->MaxAbsVzx(&double_result); break; 2283 2291 case MassFluxEnum: this->MassFluxx(&double_result); break; 2284 case TotalCalvingFluxLevelsetEnum: this->TotalCalvingFluxLevelsetx(&double_result,false); break; 2292 case TotalCalvingFluxLevelsetEnum: this->TotalCalvingFluxLevelsetx(&double_result,false); break; 2293 case TotalCalvingMeltingFluxLevelsetEnum:this->TotalCalvingMeltingFluxLevelsetx(&double_result,false); break; 2285 2294 case TotalFloatingBmbEnum: this->TotalFloatingBmbx(&double_result,false); break; 2286 2295 case TotalFloatingBmbScaledEnum: this->TotalFloatingBmbx(&double_result,true); break; … … 2527 2536 case DragCoefficientAbsGradientEnum: DragCoefficientAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break; 2528 2537 case BalancethicknessMisfitEnum: BalancethicknessMisfitx(responses); break; 2529 case TotalCalvingFluxLevelsetEnum: this->TotalCalvingFluxLevelsetx(responses, false); break; 2538 case TotalCalvingFluxLevelsetEnum: this->TotalCalvingFluxLevelsetx(responses, false); break; 2539 case TotalCalvingMeltingFluxLevelsetEnum:this->TotalCalvingMeltingFluxLevelsetx(responses, false); break; 2530 2540 case TotalFloatingBmbEnum: this->TotalFloatingBmbx(responses, false); break; 2531 2541 case TotalFloatingBmbScaledEnum: this->TotalFloatingBmbx(responses, true); break; … … 2800 2810 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 2801 2811 local_calving_flux+=element->TotalCalvingFluxLevelset(scaled); 2812 } 2813 ISSM_MPI_Reduce(&local_calving_flux,&total_calving_flux,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 2814 ISSM_MPI_Bcast(&total_calving_flux,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 2815 2816 /*Assign output pointers: */ 2817 *pM=total_calving_flux; 2818 2819 }/*}}}*/ 2820 void FemModel::TotalCalvingMeltingFluxLevelsetx(IssmDouble* pM, bool scaled){/*{{{*/ 2821 2822 IssmDouble local_calving_flux = 0; 2823 IssmDouble total_calving_flux; 2824 2825 for(int i=0;i<this->elements->Size();i++){ 2826 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 2827 local_calving_flux+=element->TotalCalvingMeltingFluxLevelset(scaled); 2802 2828 } 2803 2829 ISSM_MPI_Reduce(&local_calving_flux,&total_calving_flux,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); -
issm/trunk-jpl/src/c/classes/FemModel.h
r24048 r24049 91 91 void CalvingRateLevermannx(); 92 92 void CalvingFluxLevelsetx(); 93 void CalvingMeltingFluxLevelsetx(); 93 94 void DeviatoricStressx(); 94 95 void Divergencex(IssmDouble* pdiv); … … 131 132 void RignotMeltParameterizationx(); 132 133 void TotalCalvingFluxLevelsetx(IssmDouble* pGbmb, bool scaled); 134 void TotalCalvingMeltingFluxLevelsetx(IssmDouble* pGbmb, bool scaled); 133 135 void TotalFloatingBmbx(IssmDouble* pFbmb, bool scaled); 134 136 void TotalGroundedBmbx(IssmDouble* pGbmb, bool scaled); -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r24048 r24049 483 483 syn keyword cConstant CalvingrateyEnum 484 484 syn keyword cConstant CalvingFluxLevelsetEnum 485 syn keyword cConstant CalvingMeltingFluxLevelsetEnum 485 486 syn keyword cConstant ConvergedEnum 486 487 syn keyword cConstant CrevasseDepthEnum … … 1219 1220 syn keyword cConstant ThicknessErrorEstimatorEnum 1220 1221 syn keyword cConstant TotalCalvingFluxLevelsetEnum 1222 syn keyword cConstant TotalCalvingMeltingFluxLevelsetEnum 1221 1223 syn keyword cConstant TotalFloatingBmbEnum 1222 1224 syn keyword cConstant TotalFloatingBmbScaledEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r24048 r24049 479 479 CalvingrateyEnum, 480 480 CalvingFluxLevelsetEnum, 481 CalvingMeltingFluxLevelsetEnum, 481 482 ConvergedEnum, 482 483 CrevasseDepthEnum, … … 1217 1218 ThicknessErrorEstimatorEnum, 1218 1219 TotalCalvingFluxLevelsetEnum, 1220 TotalCalvingMeltingFluxLevelsetEnum, 1219 1221 TotalFloatingBmbEnum, 1220 1222 TotalFloatingBmbScaledEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r24048 r24049 485 485 case CalvingrateyEnum : return "Calvingratey"; 486 486 case CalvingFluxLevelsetEnum : return "CalvingFluxLevelset"; 487 case CalvingMeltingFluxLevelsetEnum : return "CalvingMeltingFluxLevelset"; 487 488 case ConvergedEnum : return "Converged"; 488 489 case CrevasseDepthEnum : return "CrevasseDepth"; … … 1221 1222 case ThicknessErrorEstimatorEnum : return "ThicknessErrorEstimator"; 1222 1223 case TotalCalvingFluxLevelsetEnum : return "TotalCalvingFluxLevelset"; 1224 case TotalCalvingMeltingFluxLevelsetEnum : return "TotalCalvingMeltingFluxLevelset"; 1223 1225 case TotalFloatingBmbEnum : return "TotalFloatingBmb"; 1224 1226 case TotalFloatingBmbScaledEnum : return "TotalFloatingBmbScaled"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r24048 r24049 494 494 else if (strcmp(name,"Calvingratey")==0) return CalvingrateyEnum; 495 495 else if (strcmp(name,"CalvingFluxLevelset")==0) return CalvingFluxLevelsetEnum; 496 else if (strcmp(name,"CalvingMeltingFluxLevelset")==0) return CalvingMeltingFluxLevelsetEnum; 496 497 else if (strcmp(name,"Converged")==0) return ConvergedEnum; 497 498 else if (strcmp(name,"CrevasseDepth")==0) return CrevasseDepthEnum; … … 505 506 else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum; 506 507 else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum; 507 else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum; 511 if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum; 512 else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum; 512 513 else if (strcmp(name,"DeviatoricStress1")==0) return DeviatoricStress1Enum; 513 514 else if (strcmp(name,"DeviatoricStress2")==0) return DeviatoricStress2Enum; … … 628 629 else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum; 629 630 else if (strcmp(name,"Misfit")==0) return MisfitEnum; 630 else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"NewDamage")==0) return NewDamageEnum; 634 if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum; 635 else if (strcmp(name,"NewDamage")==0) return NewDamageEnum; 635 636 else if (strcmp(name,"Node")==0) return NodeEnum; 636 637 else if (strcmp(name,"OmegaAbsGradient")==0) return OmegaAbsGradientEnum; … … 751 752 else if (strcmp(name,"SmbVmean")==0) return SmbVmeanEnum; 752 753 else if (strcmp(name,"SmbVz")==0) return SmbVzEnum; 753 else if (strcmp(name,"SmbW")==0) return SmbWEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SmbWini")==0) return SmbWiniEnum; 757 if (strcmp(name,"SmbW")==0) return SmbWEnum; 758 else if (strcmp(name,"SmbWini")==0) return SmbWiniEnum; 758 759 else if (strcmp(name,"SmbZMax")==0) return SmbZMaxEnum; 759 760 else if (strcmp(name,"SmbZMin")==0) return SmbZMinEnum; … … 874 875 else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum; 875 876 else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum; 876 else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum; 880 if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum; 881 else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum; 881 882 else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum; 882 883 else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum; … … 997 998 else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum; 998 999 else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum; 999 else if (strcmp(name,"Element")==0) return ElementEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"ElementHook")==0) return ElementHookEnum; 1003 if (strcmp(name,"Element")==0) return ElementEnum; 1004 else if (strcmp(name,"ElementHook")==0) return ElementHookEnum; 1004 1005 else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum; 1005 1006 else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum; … … 1120 1121 else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum; 1121 1122 else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum; 1122 else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum; 1126 if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum; 1127 else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum; 1127 1128 else if (strcmp(name,"MaxVel")==0) return MaxVelEnum; 1128 1129 else if (strcmp(name,"MaxVx")==0) return MaxVxEnum; … … 1243 1244 else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum; 1244 1245 else if (strcmp(name,"Tetra")==0) return TetraEnum; 1245 else if (strcmp(name,"TetraInput")==0) return TetraInputEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum; 1249 if (strcmp(name,"TetraInput")==0) return TetraInputEnum; 1250 else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum; 1250 1251 else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum; 1251 1252 else if (strcmp(name,"ThicknessErrorEstimator")==0) return ThicknessErrorEstimatorEnum; 1252 1253 else if (strcmp(name,"TotalCalvingFluxLevelset")==0) return TotalCalvingFluxLevelsetEnum; 1254 else if (strcmp(name,"TotalCalvingMeltingFluxLevelset")==0) return TotalCalvingMeltingFluxLevelsetEnum; 1253 1255 else if (strcmp(name,"TotalFloatingBmb")==0) return TotalFloatingBmbEnum; 1254 1256 else if (strcmp(name,"TotalFloatingBmbScaled")==0) return TotalFloatingBmbScaledEnum;
Note:
See TracChangeset
for help on using the changeset viewer.