Changeset 21261
- Timestamp:
- 10/12/16 12:16:21 (8 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 3 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r20983 r21261 466 466 endif 467 467 #}}} 468 #Esa sources {{{ 469 if ESA 470 issm_sources += ./cores/esa_core.cpp\ 471 ./analyses/EsaAnalysis.cpp 472 endif 473 #}}} 468 474 #Slr sources {{{ 469 475 if SEALEVELRISE -
issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
r21096 r21261 107 107 case GiaAnalysisEnum : return new GiaAnalysis(); 108 108 #endif 109 #ifdef _HAVE_ESA_ 110 case EsaAnalysisEnum : return new EsaAnalysis(); 111 #endif 109 112 #ifdef _HAVE_MESHDEFORMATION_ 110 113 case MeshdeformationAnalysisEnum : return new MeshdeformationAnalysis(); -
issm/trunk-jpl/src/c/analyses/analyses.h
r20983 r21261 24 24 #include "./FreeSurfaceTopAnalysis.h" 25 25 #include "./GiaAnalysis.h" 26 #include "./EsaAnalysis.h" 26 27 #include "./HydrologyDCEfficientAnalysis.h" 27 28 #include "./HydrologyDCInefficientAnalysis.h" -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r21232 r21261 1527 1527 name==SealevelEustaticEnum || 1528 1528 name==SealevelriseDeltathicknessEnum || 1529 name==EsaUmotionEnum || 1530 name==EsaNmotionEnum || 1531 name==EsaEmotionEnum || 1532 name==EsaDeltathicknessEnum || 1529 1533 name==GiaWEnum || 1530 1534 name==GiadWdtEnum || -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r20999 r21261 296 296 virtual void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y)=0; 297 297 #endif 298 #ifdef _HAVE_ESA_ 299 virtual void EsaGeodetic(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz,IssmDouble eartharea)=0; 300 #endif 298 301 #ifdef _HAVE_SEALEVELRISE_ 299 302 virtual IssmDouble GetArea3D(void)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r20999 r21261 183 183 void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y); 184 184 #endif 185 #ifdef _HAVE_ESA_ 186 void EsaGeodetic(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz,IssmDouble eartharea){_error_("not implemented yet!");}; 187 #endif 185 188 #ifdef _HAVE_SEALEVELRISE_ 186 189 IssmDouble OceanArea(void){_error_("not implemented yet!");}; -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r20999 r21261 168 168 void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");}; 169 169 #endif 170 170 #ifdef _HAVE_ESA_ 171 void EsaGeodetic(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz,IssmDouble eartharea){_error_("not implemented yet!");}; 172 #endif 171 173 #ifdef _HAVE_SEALEVELRISE_ 172 174 void SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");}; -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r20999 r21261 175 175 void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");}; 176 176 #endif 177 #ifdef _HAVE_ESA_ 178 void EsaGeodetic(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz,IssmDouble eartharea){_error_("not implemented yet!");}; 179 #endif 177 180 #ifdef _HAVE_SEALEVELRISE_ 178 181 void SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");}; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r21248 r21261 3580 3580 /*}}}*/ 3581 3581 #endif 3582 3582 #ifdef _HAVE_ESA_ 3583 void Tria::EsaGeodetic(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz,IssmDouble eartharea){ /*{{{*/ 3584 3585 /*diverse:*/ 3586 int gsize; 3587 bool spherical=true; 3588 IssmDouble llr_list[NUMVERTICES][3]; 3589 IssmDouble xyz_list[NUMVERTICES][3]; 3590 IssmDouble area; 3591 IssmDouble I; //ice/water loading 3592 IssmDouble late,longe,re; 3593 IssmDouble lati,longi,ri; 3594 IssmDouble rho_ice,rho_water,rho_earth; 3595 IssmDouble minlong=400; 3596 IssmDouble maxlong=-20; 3597 3598 /*precomputed elastic green functions:*/ 3599 IssmDouble* U_elastic_precomputed = NULL; 3600 IssmDouble* H_elastic_precomputed = NULL; 3601 int M; 3602 3603 /*computation of Green functions:*/ 3604 IssmDouble* U_elastic= NULL; 3605 IssmDouble* N_elastic= NULL; 3606 IssmDouble* E_elastic= NULL; 3607 3608 /*optimization:*/ 3609 bool store_green_functions=false; 3610 3611 /*early return if we are not on the (ice) loading point: */ 3612 //if(!(this->inputs->Max(MaskIceLevelsetEnum)<0)) return; 3613 3614 /*recover material parameters: */ 3615 rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum); 3616 rho_water=matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum); 3617 rho_earth=matpar->GetMaterialParameter(MaterialsEarthDensityEnum); 3618 3619 /*how many dofs are we working with here? */ 3620 this->parameters->FindParam(&gsize,MeshNumberofverticesEnum); 3621 3622 /*compute area of element:*/ 3623 area=GetAreaSpherical(); 3624 3625 /*element centroid (spherical): */ 3626 /* Where is the centroid of this element?:{{{*/ 3627 ::GetVerticesCoordinates(&llr_list[0][0],this->vertices,NUMVERTICES,spherical); 3628 3629 minlong=400; maxlong=-20; 3630 for (int i=0;i<NUMVERTICES;i++){ 3631 llr_list[i][0]=(90-llr_list[i][0]); 3632 if(llr_list[i][1]<0)llr_list[i][1]=180+(180+llr_list[i][1]); 3633 if(llr_list[i][1]>maxlong)maxlong=llr_list[i][1]; 3634 if(llr_list[i][1]<minlong)minlong=llr_list[i][1]; 3635 } 3636 if(minlong==0 && maxlong>180){ 3637 if (llr_list[0][1]==0)llr_list[0][1]=360; 3638 if (llr_list[1][1]==0)llr_list[1][1]=360; 3639 if (llr_list[2][1]==0)llr_list[2][1]=360; 3640 } 3641 3642 // correction at the north pole 3643 if(llr_list[0][0]==0)llr_list[0][1]=(llr_list[1][1]+llr_list[2][1])/2.0; 3644 if(llr_list[1][0]==0)llr_list[1][1]=(llr_list[0][1]+llr_list[2][1])/2.0; 3645 if(llr_list[2][0]==0)llr_list[2][1]=(llr_list[0][1]+llr_list[1][1])/2.0; 3646 3647 //correction at the south pole 3648 if(llr_list[0][0]==180)llr_list[0][1]=(llr_list[1][1]+llr_list[2][1])/2.0; 3649 if(llr_list[1][0]==180)llr_list[1][1]=(llr_list[0][1]+llr_list[2][1])/2.0; 3650 if(llr_list[2][0]==180)llr_list[2][1]=(llr_list[0][1]+llr_list[1][1])/2.0; 3651 3652 late=(llr_list[0][0]+llr_list[1][0]+llr_list[2][0])/3.0; 3653 longe=(llr_list[0][1]+llr_list[1][1]+llr_list[2][1])/3.0; 3654 3655 late=90-late; 3656 if(longe>180)longe=(longe-180)-180; 3657 3658 late=late/180*PI; 3659 longe=longe/180*PI; 3660 /*}}}*/ 3661 3662 /*figure out gravity center of our element (Cartesian): */ 3663 IssmDouble x_element, y_element, z_element; 3664 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 3665 x_element=(xyz_list[0][0]+xyz_list[1][0]+xyz_list[2][0])/3.0; 3666 y_element=(xyz_list[0][1]+xyz_list[1][1]+xyz_list[2][1])/3.0; 3667 z_element=(xyz_list[0][2]+xyz_list[1][2]+xyz_list[2][2])/3.0; 3668 3669 /*recover elastic Green's functions for displacement:*/ 3670 DoubleVecParam* U_parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(EsaUElasticEnum)); _assert_(U_parameter); 3671 DoubleVecParam* H_parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(EsaHElasticEnum)); _assert_(H_parameter); 3672 U_parameter->GetParameterValueByPointer(&U_elastic_precomputed,&M); 3673 H_parameter->GetParameterValueByPointer(&H_elastic_precomputed,&M); 3674 3675 /*Compute ice thickness change: */ 3676 Input* deltathickness_input=inputs->GetInput(EsaDeltathicknessEnum); 3677 if (!deltathickness_input)_error_("delta thickness input needed to compute elastic adjustment!"); 3678 deltathickness_input->GetInputAverage(&I); 3679 3680 /*initialize: */ 3681 U_elastic=xNewZeroInit<IssmDouble>(gsize); 3682 N_elastic=xNewZeroInit<IssmDouble>(gsize); 3683 E_elastic=xNewZeroInit<IssmDouble>(gsize); 3684 3685 int* indices=xNew<int>(gsize); 3686 IssmDouble* U_values=xNewZeroInit<IssmDouble>(gsize); 3687 IssmDouble* N_values=xNewZeroInit<IssmDouble>(gsize); 3688 IssmDouble* E_values=xNewZeroInit<IssmDouble>(gsize); 3689 IssmDouble alpha; 3690 IssmDouble delPhi,delLambda; 3691 IssmDouble dx, dy, dz, x, y, z; 3692 IssmDouble N_azim, E_azim; 3693 3694 for(int i=0;i<gsize;i++){ 3695 3696 indices[i]=i; 3697 3698 /*Compute alpha angle between centroid and current vertex: */ 3699 lati=latitude[i]/180*PI; longi=longitude[i]/180*PI; 3700 3701 delPhi=fabs(lati-late); delLambda=fabs(longi-longe); 3702 alpha=2.*asin(sqrt(pow(sin(delPhi/2),2.0)+cos(lati)*cos(late)*pow(sin(delLambda/2),2))); 3703 3704 /*Compute azimuths, both north and east components: */ 3705 x = xx[i]; y = yy[i]; z = zz[i]; 3706 if(latitude[i]==90){ 3707 x=1e-12; y=1e-12; 3708 } 3709 if(latitude[i]==-90){ 3710 x=1e-12; y=1e-12; 3711 } 3712 dx = x_element-x; dy = y_element-y; dz = z_element-z; 3713 N_azim = (-z*x*dx-z*y*dy+(pow(x,2)+pow(y,2))*dz) /pow((pow(x,2)+pow(y,2))*(pow(x,2)+pow(y,2)+pow(z,2))*(pow(dx,2)+pow(dy,2)+pow(dz,2)),0.5); 3714 E_azim = (-y*dx+x*dy) /pow((pow(x,2)+pow(y,2))*(pow(dx,2)+pow(dy,2)+pow(dz,2)),0.5); 3715 3716 /*Elastic component (from Eq 17 in Adhikari et al, GMD 2015): */ 3717 int index=reCast<int,IssmDouble>(alpha/PI*(M-1)); 3718 U_elastic[i] += U_elastic_precomputed[index]; 3719 N_elastic[i] += H_elastic_precomputed[index]*N_azim; 3720 E_elastic[i] += H_elastic_precomputed[index]*E_azim; 3721 3722 /*Add all components to the pUp solution vectors:*/ 3723 U_values[i]+=3*rho_ice/rho_earth*area/eartharea*I*U_elastic[i]; 3724 N_values[i]+=3*rho_ice/rho_earth*area/eartharea*I*N_elastic[i]; 3725 E_values[i]+=3*rho_ice/rho_earth*area/eartharea*I*E_elastic[i]; 3726 } 3727 pUp->SetValues(gsize,indices,U_values,ADD_VAL); 3728 pNorth->SetValues(gsize,indices,N_values,ADD_VAL); 3729 pEast->SetValues(gsize,indices,E_values,ADD_VAL); 3730 3731 /*free ressources:*/ 3732 xDelete<int>(indices); 3733 xDelete<IssmDouble>(U_values); xDelete<IssmDouble>(N_values); xDelete<IssmDouble>(E_values); 3734 xDelete<IssmDouble>(U_elastic); xDelete<IssmDouble>(N_elastic); xDelete<IssmDouble>(E_elastic); 3735 3736 return; 3737 } 3738 /*}}}*/ 3739 #endif 3583 3740 #ifdef _HAVE_SEALEVELRISE_ 3584 3741 IssmDouble Tria::OceanArea(void){ /*{{{*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r20999 r21261 144 144 void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y); 145 145 #endif 146 #ifdef _HAVE_ESA_ 147 void EsaGeodetic(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz,IssmDouble eartharea); 148 #endif 146 149 #ifdef _HAVE_SEALEVELRISE_ 147 150 IssmDouble OceanArea(void); -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r21159 r21261 625 625 break; 626 626 627 case EsaSolutionEnum: 628 analyses_temp[numanalyses++]=EsaAnalysisEnum; 629 break; 630 627 631 case SealevelriseSolutionEnum: 628 632 analyses_temp[numanalyses++]=SealevelriseAnalysisEnum; … … 638 642 639 643 case TransientSolutionEnum:{ 640 bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslr,is gia;644 bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslr,isesa,isgia; 641 645 iomodel->FindConstant(&isSIA,"md.flowequation.isSIA"); 642 646 iomodel->FindConstant(&isFS,"md.flowequation.isFS"); … … 651 655 iomodel->FindConstant(&issmb,"md.transient.issmb"); 652 656 iomodel->FindConstant(&isslr,"md.transient.isslr"); 657 iomodel->FindConstant(&isesa,"md.transient.isesa"); 653 658 iomodel->FindConstant(&isgia,"md.transient.isgia"); 654 659 if(isstressbalance){ … … 694 699 if(isslr){ 695 700 analyses_temp[numanalyses++]=SealevelriseAnalysisEnum; 701 } 702 if(isesa){ 703 analyses_temp[numanalyses++]=EsaAnalysisEnum; 696 704 } 697 705 if(isgia){ … … 2291 2299 /*}}}*/ 2292 2300 #endif 2301 #ifdef _HAVE_ESA_ 2302 void FemModel::EsaGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){/*{{{*/ 2303 2304 IssmDouble eartharea=0; 2305 IssmDouble eartharea_cpu=0; 2306 2307 int ns,nsmax; 2308 2309 /*Go through elements, and add contribution from each element to the deflection vector wg:*/ 2310 ns = elements->Size(); 2311 2312 /*First, figure out the surface area of Earth: */ 2313 for(int i=0;i<ns;i++){ 2314 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 2315 eartharea_cpu += element->GetAreaSpherical(); 2316 } 2317 ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 2318 ISSM_MPI_Bcast(&eartharea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 2319 2320 /*Figure out max of ns: */ 2321 ISSM_MPI_Reduce(&ns,&nsmax,1,ISSM_MPI_INT,ISSM_MPI_MAX,0,IssmComm::GetComm()); 2322 ISSM_MPI_Bcast(&nsmax,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 2323 2324 /*Call the esa geodetic core: */ 2325 for(int i=0;i<nsmax;i++){ 2326 if(i<ns){ 2327 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 2328 element->EsaGeodetic(pUp,pNorth,pEast,latitude,longitude,radius,xx,yy,zz,eartharea); 2329 } 2330 if(i%100==0){ 2331 pUp->Assemble(); 2332 pNorth->Assemble(); 2333 pEast->Assemble(); 2334 } 2335 } 2336 2337 /*One last time: */ 2338 pUp->Assemble(); 2339 pNorth->Assemble(); 2340 pEast->Assemble(); 2341 2342 /*Free ressources:*/ 2343 xDelete<IssmDouble>(latitude); 2344 xDelete<IssmDouble>(longitude); 2345 xDelete<IssmDouble>(radius); 2346 xDelete<IssmDouble>(xx); 2347 xDelete<IssmDouble>(yy); 2348 xDelete<IssmDouble>(zz); 2349 } 2350 /*}}}*/ 2351 #endif 2293 2352 #ifdef _HAVE_SEALEVELRISE_ 2294 2353 void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius) { /*{{{*/ -
issm/trunk-jpl/src/c/classes/FemModel.h
r20999 r21261 113 113 void Deflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt, IssmDouble* x, IssmDouble* y); 114 114 #endif 115 #ifdef _HAVE_ESA_ 116 void EsaGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz); 117 #endif 115 118 #ifdef _HAVE_SEALEVELRISE_ 116 119 void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius); -
issm/trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp
r19984 r21261 62 62 solutioncore=&sealevelrise_core; 63 63 break; 64 case EsaSolutionEnum: 65 solutioncore=&esa_core; 66 break; 64 67 case GiaSolutionEnum: 65 68 #if _HAVE_GIA_ -
issm/trunk-jpl/src/c/cores/cores.h
r20454 r21261 47 47 void dummy_core(FemModel* femmodel); 48 48 void gia_core(FemModel* femmodel); 49 void esa_core(FemModel* femmodel); 49 50 void smb_core(FemModel* femmodel); 50 51 void damage_core(FemModel* femmodel); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r20690 r21261 77 77 parameters->AddObject(iomodel->CopyConstantObject("md.transient.isgroundingline",TransientIsgroundinglineEnum)); 78 78 parameters->AddObject(iomodel->CopyConstantObject("md.transient.isgia",TransientIsgiaEnum)); 79 parameters->AddObject(iomodel->CopyConstantObject("md.transient.isesa",TransientIsesaEnum)); 79 80 parameters->AddObject(iomodel->CopyConstantObject("md.transient.isdamageevolution",TransientIsdamageevolutionEnum)); 80 81 parameters->AddObject(iomodel->CopyConstantObject("md.transient.ishydrology",TransientIshydrologyEnum)); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r21232 r21261 343 343 TransientIsthermalEnum, 344 344 TransientIsgiaEnum, 345 TransientIsesaEnum, 345 346 TransientIsdamageevolutionEnum, 346 347 TransientIshydrologyEnum, … … 779 780 SealevelriseNumRequestedOutputsEnum, 780 781 /*}}}*/ 782 /*Elastic adjustment (ESA){{{*/ 783 EsaUmotionEnum, 784 EsaNmotionEnum, 785 EsaEmotionEnum, 786 EsaDeltathicknessEnum, 787 EsaUElasticEnum, 788 EsaHElasticEnum, 789 EsaTransitionsEnum, 790 EsaRequestedOutputsEnum, 791 EsaNumRequestedOutputsEnum, 792 /*}}}*/ 781 793 ParametersENDEnum, 782 794 /*Coordinate Systems{{{*/ … … 898 910 GiaSolutionEnum, 899 911 GiaAnalysisEnum, 912 EsaSolutionEnum, 913 EsaAnalysisEnum, 900 914 MeshdeformationAnalysisEnum, 901 915 LevelsetAnalysisEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r21232 r21261 349 349 case TransientIsthermalEnum : return "TransientIsthermal"; 350 350 case TransientIsgiaEnum : return "TransientIsgia"; 351 case TransientIsesaEnum : return "TransientIsesa"; 351 352 case TransientIsdamageevolutionEnum : return "TransientIsdamageevolution"; 352 353 case TransientIshydrologyEnum : return "TransientIshydrology"; … … 759 760 case SealevelriseRequestedOutputsEnum : return "SealevelriseRequestedOutputs"; 760 761 case SealevelriseNumRequestedOutputsEnum : return "SealevelriseNumRequestedOutputs"; 762 case EsaUmotionEnum : return "EsaUmotion"; 763 case EsaNmotionEnum : return "EsaNmotion"; 764 case EsaEmotionEnum : return "EsaEmotion"; 765 case EsaDeltathicknessEnum : return "EsaDeltathickness"; 766 case EsaUElasticEnum : return "EsaUElastic"; 767 case EsaHElasticEnum : return "EsaHElastic"; 768 case EsaTransitionsEnum : return "EsaTransitions"; 769 case EsaRequestedOutputsEnum : return "EsaRequestedOutputs"; 770 case EsaNumRequestedOutputsEnum : return "EsaNumRequestedOutputs"; 761 771 case ParametersENDEnum : return "ParametersEND"; 762 772 case XYEnum : return "XY"; … … 871 881 case GiaSolutionEnum : return "GiaSolution"; 872 882 case GiaAnalysisEnum : return "GiaAnalysis"; 883 case EsaSolutionEnum : return "EsaSolution"; 884 case EsaAnalysisEnum : return "EsaAnalysis"; 873 885 case MeshdeformationAnalysisEnum : return "MeshdeformationAnalysis"; 874 886 case LevelsetAnalysisEnum : return "LevelsetAnalysis"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r21232 r21261 355 355 else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum; 356 356 else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum; 357 else if (strcmp(name,"TransientIsesa")==0) return TransientIsesaEnum; 357 358 else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum; 358 359 else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum; … … 382 383 else if (strcmp(name,"SmbSizeini")==0) return SmbSizeiniEnum; 383 384 else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum; 384 else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SMBgemb")==0) return SMBgembEnum; 388 if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum; 389 else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum; 389 390 else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum; 390 391 else if (strcmp(name,"SmbTa")==0) return SmbTaEnum; … … 505 506 else if (strcmp(name,"VxAverage")==0) return VxAverageEnum; 506 507 else if (strcmp(name,"Vx")==0) return VxEnum; 507 else if (strcmp(name,"VxPicard")==0) return VxPicardEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"VyAverage")==0) return VyAverageEnum; 511 if (strcmp(name,"VxPicard")==0) return VxPicardEnum; 512 else if (strcmp(name,"VyAverage")==0) return VyAverageEnum; 512 513 else if (strcmp(name,"Vy")==0) return VyEnum; 513 514 else if (strcmp(name,"VyPicard")==0) return VyPicardEnum; … … 628 629 else if (strcmp(name,"Outputdefinition46")==0) return Outputdefinition46Enum; 629 630 else if (strcmp(name,"Outputdefinition47")==0) return Outputdefinition47Enum; 630 else if (strcmp(name,"Outputdefinition48")==0) return Outputdefinition48Enum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"Outputdefinition49")==0) return Outputdefinition49Enum; 634 if (strcmp(name,"Outputdefinition48")==0) return Outputdefinition48Enum; 635 else if (strcmp(name,"Outputdefinition49")==0) return Outputdefinition49Enum; 635 636 else if (strcmp(name,"Outputdefinition50")==0) return Outputdefinition50Enum; 636 637 else if (strcmp(name,"Outputdefinition51")==0) return Outputdefinition51Enum; … … 751 752 else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum; 752 753 else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum; 753 else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum; 757 if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum; 758 else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum; 758 759 else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum; 759 760 else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum; … … 777 778 else if (strcmp(name,"SealevelriseRequestedOutputs")==0) return SealevelriseRequestedOutputsEnum; 778 779 else if (strcmp(name,"SealevelriseNumRequestedOutputs")==0) return SealevelriseNumRequestedOutputsEnum; 780 else if (strcmp(name,"EsaUmotion")==0) return EsaUmotionEnum; 781 else if (strcmp(name,"EsaNmotion")==0) return EsaNmotionEnum; 782 else if (strcmp(name,"EsaEmotion")==0) return EsaEmotionEnum; 783 else if (strcmp(name,"EsaDeltathickness")==0) return EsaDeltathicknessEnum; 784 else if (strcmp(name,"EsaUElastic")==0) return EsaUElasticEnum; 785 else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum; 786 else if (strcmp(name,"EsaTransitions")==0) return EsaTransitionsEnum; 787 else if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum; 788 else if (strcmp(name,"EsaNumRequestedOutputs")==0) return EsaNumRequestedOutputsEnum; 779 789 else if (strcmp(name,"ParametersEND")==0) return ParametersENDEnum; 780 790 else if (strcmp(name,"XY")==0) return XYEnum; … … 865 875 else if (strcmp(name,"StressbalanceVerticalAnalysis")==0) return StressbalanceVerticalAnalysisEnum; 866 876 else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum; 867 else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum; 868 881 else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum; 869 882 else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; … … 875 888 else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum; 876 889 else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum; 890 else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum; 881 891 else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum; 882 892 else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum; … … 892 902 else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum; 893 903 else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum; 904 else if (strcmp(name,"EsaSolution")==0) return EsaSolutionEnum; 905 else if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum; 894 906 else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum; 895 907 else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
Note:
See TracChangeset
for help on using the changeset viewer.