Changeset 27298


Ignore:
Timestamp:
10/10/22 03:18:19 (2 years ago)
Author:
rueckamp
Message:

NEW: Debris Analysis

Location:
issm/trunk-jpl/src
Files:
3 added
12 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/Makefile.am

    r27202 r27298  
    284284        ./cores/smb_core.cpp \
    285285        ./cores/bmb_core.cpp \
     286        ./cores/debris_core.cpp \
    286287        ./solutionsequences/solutionsequence_thermal_nonlinear.cpp \
    287288        ./modules/ControlInputSetGradientx/ControlInputSetGradientx.cpp \
     
    443444issm_sources += ./modules/Damagex/Damagex.cpp
    444445endif
     446if DEBRIS
     447issm_sources += ./analyses/DebrisAnalysis.cpp
     448endif
    445449if STRESSBALANCE
    446450issm_sources += ./analyses/StressbalanceAnalysis.cpp
  • issm/trunk-jpl/src/c/analyses/analyses.h

    r27154 r27298  
    1717#include "./BalancevelocityAnalysis.h"
    1818#include "./DamageEvolutionAnalysis.h"
     19#include "./DebrisAnalysis.h"
    1920#include "./DepthAverageAnalysis.h"
    2021#include "./EnthalpyAnalysis.h"
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r27102 r27298  
    851851                case TransientSolutionEnum:{
    852852                        /*We have multiple analyses here, process one by one*/
    853                         bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isoceantransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslc,isesa,issampling;
     853                        bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isoceantransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslc,isesa,isdebris,issampling;
    854854                        iomodel->FindConstant(&isthermal,"md.transient.isthermal");
    855855                        iomodel->FindConstant(&ismovingfront,"md.transient.ismovingfront");
     
    863863                        iomodel->FindConstant(&isslc,"md.transient.isslc");
    864864                        iomodel->FindConstant(&isesa,"md.transient.isesa");
     865                        iomodel->FindConstant(&isdebris,"md.transient.isdebris");
    865866                        iomodel->FindConstant(&issampling,"md.transient.issampling");
    866867      int* analyses_iter     = NULL;
     
    910911                                analyses_temp[numanalyses++]=EsaAnalysisEnum;
    911912                        }
     913                        if(isdebris){
     914                                analyses_temp[numanalyses++]=DebrisAnalysisEnum;
     915                        }
    912916                        if(issampling){
    913917                                analyses_temp[numanalyses++]=SamplingAnalysisEnum;
     
    993997                if(profiler->Used(GROUNDINGLINECORE)) _printf0_("   "<<setw(40)<<left<<"Groundingline migration core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(GROUNDINGLINECORE) << " sec\n");
    994998                if(profiler->Used(ESACORE)) _printf0_("   "<<setw(40)<<left<<"ESA core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(ESACORE) << " sec\n");
     999                if(profiler->Used(DEBRISCORE)) _printf0_("   "<<setw(40)<<left<<"DEBRIS core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(SLRCORE) << " sec\n");
    9951000                if(profiler->Used(SLRCORE)) _printf0_("   "<<setw(40)<<left<<"SLR core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(SLRCORE) << " sec\n");
    9961001                if(profiler->Used(MPISERIAL)) _printf0_("   "<<setw(40)<<left<<"MPISERIAL elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(MPISERIAL) << " sec\n");
  • issm/trunk-jpl/src/c/classes/Node.cpp

    r27102 r27298  
    159159        }
    160160        if(
    161                                 analysis_enum==FreeSurfaceTopAnalysisEnum
     161                        analysis_enum==FreeSurfaceTopAnalysisEnum ||
     162                        analysis_enum==DebrisAnalysisEnum
    162163          ){
    163164                if(iomodel->domaintype!=Domain2DhorizontalEnum){
  • issm/trunk-jpl/src/c/classes/Profiler.h

    r26469 r27298  
    2727#define ESACORE                         14 /*Profiling ESA */
    2828#define SLRCORE                         15 /*Profiling SLR */
    29 #define SAMPLINGCORE    16 /*Profiling SAMPLING */
    30 #define MPISERIAL                               17 /*Profiling MPISerial */
    31 #define SEDLOOP                         18 /*Profiling MPISerial */
    32 #define SEDMatrix                               19 /*Profiling MPISerial */
    33 #define SEDUpdate                               20 /*Profiling MPISerial */
    34 #define EPLLOOP                         21 /*Profiling MPISerial */
    35 #define EPLMasking                      22 /*Profiling MPISerial */
    36 #define EPLMatrices                     23 /*Profiling MPISerial */
    37 #define EPLUpdate                               24 /*Profiling MPISerial */
    38 #define MAXPROFSIZE                     25 /*Used to initialize static arrays*/
     29#define DEBRISCORE                              16 /*Profiling DEBRIS */
     30#define SAMPLINGCORE    17 /*Profiling SAMPLING */
     31#define MPISERIAL                               18 /*Profiling MPISerial */
     32#define SEDLOOP                         19 /*Profiling MPISerial */
     33#define SEDMatrix                               20 /*Profiling MPISerial */
     34#define SEDUpdate                               21 /*Profiling MPISerial */
     35#define EPLLOOP                         22 /*Profiling MPISerial */
     36#define EPLMasking                      23 /*Profiling MPISerial */
     37#define EPLMatrices                     24 /*Profiling MPISerial */
     38#define EPLUpdate                               25 /*Profiling MPISerial */
     39#define MAXPROFSIZE                     26 /*Used to initialize static arrays*/
    3940
    4041class Profiler: public Object{
  • issm/trunk-jpl/src/c/cores/cores.h

    r26222 r27298  
    5757void damage_core(FemModel* femmodel);
    5858void sampling_core(FemModel* femmodel);
     59void debris_core(FemModel* femmodel);
    5960
    6061/*sealevel change cores:*/
  • issm/trunk-jpl/src/c/cores/transient_core.cpp

    r27154 r27298  
    7878                if(VerboseSolution()){
    7979                        _printf0_("iteration " << step << "/" << ceil((finaltime-time)/dt)+step << \
    80                                                 "  time [yr]: " <<std::fixed<<setprecision(2)<< time/yts << " (time step: " << dt/yts << ")\n");
     80                                        "  time [yr]: " <<std::fixed<<setprecision(2)<< time/yts << " (time step: " << dt/yts << ")\n");
    8181                }
    8282                bool save_results=false;
     
    101101                if(amr_frequency){
    102102
    103                         #if !defined(_HAVE_AD_)
     103#if !defined(_HAVE_AD_)
    104104                        if(save_results) femmodel->WriteMeshInResults();
    105105                        if(step%amr_frequency==0 && time<finaltime){
     
    108108                        }
    109109
    110                         #else
     110#else
    111111                        _error_("AMR not suppored with AD");
    112                         #endif
     112#endif
    113113                }
    114114
     
    132132        bool isstressbalance,ismasstransport,isage,isoceantransport,issmb,isthermal,isgroundingline,isesa,issampling;
    133133        bool isslc,ismovingfront,isdamageevolution,ishydrology,isoceancoupling,isstochasticforcing,save_results;
     134        bool isdebris;
    134135        int  step,sb_coupling_frequency;
    135136        int  domaintype,numoutputs;
     
    153154        femmodel->parameters->FindParam(&isdamageevolution,TransientIsdamageevolutionEnum);
    154155        femmodel->parameters->FindParam(&ishydrology,TransientIshydrologyEnum);
     156        femmodel->parameters->FindParam(&isdebris,TransientIsdebrisEnum);
    155157        femmodel->parameters->FindParam(&issampling,TransientIssamplingEnum);
    156158        femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
    157159        femmodel->parameters->FindParam(&isstochasticforcing,StochasticForcingIsStochasticForcingEnum);
    158160
    159         #if defined(_HAVE_OCEAN_ )
     161#if defined(_HAVE_OCEAN_ )
    160162        if(isoceancoupling) OceanExchangeDatax(femmodel,false);
    161         #endif
     163#endif
    162164
    163165        if(isstochasticforcing){
     
    208210        }
    209211
     212        if(isdebris){
     213                debris_core(femmodel);
     214        }
     215
    210216        /* from here on, prepare geometry for next time step*/
    211217
     
    229235        /*Sea level change: */
    230236        if(isslc){
    231                 #ifdef _HAVE_SEALEVELCHANGE_
     237#ifdef _HAVE_SEALEVELCHANGE_
    232238                sealevelchange_core(femmodel);
    233                 #else
     239#else
    234240                _error_("Compiled with SeaLevelChange capability");
    235                 #endif
     241#endif
    236242        }
    237243
     
    263269        femmodel->parameters->FindParam(&isslc,TransientIsslcEnum);
    264270
    265         #if defined(_HAVE_BAMG_) && !defined(_HAVE_AD_)
     271#if defined(_HAVE_BAMG_) && !defined(_HAVE_AD_)
    266272        if(amr_frequency){
    267273                femmodel->parameters->FindParam(&amr_restart,AmrRestartEnum);
    268274                if(amr_restart) femmodel->ReMesh();
    269275        }
    270         #endif
    271 
    272         #if defined(_HAVE_OCEAN_ )
     276#endif
     277
     278#if defined(_HAVE_OCEAN_ )
    273279        if(isoceancoupling) OceanExchangeDatax(femmodel,true);
    274         #endif
    275 
    276         #if defined(_HAVE_SEALEVELCHANGE_)
     280#endif
     281
     282#if defined(_HAVE_SEALEVELCHANGE_)
    277283        if(isslc) sealevelchange_initialgeometry(femmodel);
    278         #endif
     284#endif
    279285}/*}}}*/
    280286
     
    335341                if(VerboseSolution()){
    336342                        _printf0_("iteration " << step << "/" << ceil((finaltime-time)/dt)+step << \
    337                                                 "  time [yr]: " <<std::fixed<<setprecision(2)<< time/yts << " (time step: " << dt/yts << ")\n");
     343                                        "  time [yr]: " <<std::fixed<<setprecision(2)<< time/yts << " (time step: " << dt/yts << ")\n");
    338344                }
    339345
     
    383389
    384390        /*Start tracing*/
    385         #if _CODIPACK_MAJOR_==2
     391#if _CODIPACK_MAJOR_==2
    386392        auto& tape_codi = IssmDouble::getTape();
    387         #elif _CODIPACK_MAJOR_==1
     393#elif _CODIPACK_MAJOR_==1
    388394        auto& tape_codi = IssmDouble::getGlobalTape();
    389         #else
    390         #error "_CODIPACK_MAJOR_ not supported"
    391         #endif
     395#else
     396#error "_CODIPACK_MAJOR_ not supported"
     397#endif
    392398        tape_codi.setActive();
    393399
     
    410416
    411417                tape_codi.registerOutput(J);
    412                 #if _CODIPACK_MAJOR_==2
     418#if _CODIPACK_MAJOR_==2
    413419                codi_global.output_indices.push_back(J.getIdentifier());
    414                 #elif _CODIPACK_MAJOR_==1
     420#elif _CODIPACK_MAJOR_==1
    415421                codi_global.output_indices.push_back(J.getGradientData());
    416                 #else
    417                 #error "_CODIPACK_MAJOR_ not supported"
    418                 #endif
     422#else
     423#error "_CODIPACK_MAJOR_ not supported"
     424#endif
    419425
    420426                /*Keep track of output for printing*/
    421427                Jlist[count] = output_value.getValue();
    422       count++;
     428                count++;
    423429        }
    424430        Jlist[count] = J.getValue();
     
    473479                        if(VerboseSolution()){
    474480                                _printf0_("step "<<thisstep<<" ("<<ii+1<<"/"<<checkpoint_frequency<<") time [yr]: "\
    475                                                         <<std::fixed<<std::setprecision(2)<<thistime/yts<< " (time step: " << thisdt/yts << ")\n");
     481                                                <<std::fixed<<std::setprecision(2)<<thistime/yts<< " (time step: " << thisdt/yts << ")\n");
    476482                        }
    477483
     
    524530        xDelete<double>(Yb);
    525531        xDelete<int>(Yin);
    526    return J.getValue();
     532        return J.getValue();
    527533}/*}}}*/
    528534#endif
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp

    r25627 r27298  
    618618                xDelete<int>(vertex_pairing);
    619619        }
    620         if(!isamr && (analysis==MasstransportAnalysisEnum || analysis==FreeSurfaceBaseAnalysisEnum || analysis==FreeSurfaceTopAnalysisEnum)){
     620        if(!isamr && (analysis==MasstransportAnalysisEnum || analysis==FreeSurfaceBaseAnalysisEnum || analysis==FreeSurfaceTopAnalysisEnum || analysis==DebrisAnalysisEnum)){
    621621                int *vertex_pairing = NULL;
    622622                int  numvertex_pairing;
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r27297 r27298  
    9090                parameters->AddObject(iomodel->CopyConstantObject("md.transient.isoceancoupling",TransientIsoceancouplingEnum));
    9191                parameters->AddObject(iomodel->CopyConstantObject("md.transient.amr_frequency",TransientAmrFrequencyEnum));
     92                parameters->AddObject(iomodel->CopyConstantObject("md.transient.isdebris",TransientIsdebrisEnum));
    9293                parameters->AddObject(iomodel->CopyConstantObject("md.transient.issampling",TransientIssamplingEnum));
    9394                parameters->AddObject(iomodel->CopyConstantObject("md.stochasticforcing.isstochasticforcing",StochasticForcingIsStochasticForcingEnum));
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27297 r27298  
    156156        DamageStressThresholdEnum,
    157157        DamageStressUBoundEnum,
     158        DebrisMinThicknessEnum,
     159        DebrisNumRequestedOutputsEnum,
     160        DebrisPenaltyFactorEnum,
     161        DebrisRequestedOutputsEnum,
     162        DebrisStabilizationEnum,
     163        DebrisRemovalmodelEnum,
     164        DebrisDisplacementmodelEnum,
     165        DebrisRemovalSlopeThresholdEnum,
     166        DebrisRemovalStressThresholdEnum,
     167        DebrisPackingFractionEnum,
    158168        DebugProfilingEnum,
    159169        DebrisThicknessEnum,
     
    593603        TransientIsageEnum,
    594604        TransientIsdamageevolutionEnum,
     605        TransientIsdebrisEnum,
    595606        TransientIsesaEnum,
    596607        TransientIsgiaEnum,
     
    11211132        VxAverageEnum,
    11221133        VxBaseEnum,
     1134        VxDebrisEnum,
    11231135        VxEnum,
    11241136        VxMeshEnum,
     
    11281140        VyAverageEnum,
    11291141        VyBaseEnum,
     1142        VyDebrisEnum,
    11301143        VyEnum,
    11311144        VyMeshEnum,
     
    13181331        DataSetParamEnum,
    13191332        DatasetInputEnum,
     1333        DebrisAnalysisEnum,
     1334        DebrisSolutionEnum,
    13201335        DefaultAnalysisEnum,
    13211336        DefaultCalvingEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r27297 r27298  
    164164                case DamageStressThresholdEnum : return "DamageStressThreshold";
    165165                case DamageStressUBoundEnum : return "DamageStressUBound";
     166                case DebrisMinThicknessEnum : return "DebrisMinThickness";
     167                case DebrisNumRequestedOutputsEnum : return "DebrisNumRequestedOutputs";
     168                case DebrisPenaltyFactorEnum : return "DebrisPenaltyFactor";
     169                case DebrisRequestedOutputsEnum : return "DebrisRequestedOutputs";
     170                case DebrisStabilizationEnum : return "DebrisStabilization";
     171                case DebrisRemovalmodelEnum : return "DebrisRemovalmodel";
     172                case DebrisDisplacementmodelEnum : return "DebrisDisplacementmodel";
     173                case DebrisRemovalSlopeThresholdEnum : return "DebrisRemovalSlopeThreshold";
     174                case DebrisRemovalStressThresholdEnum : return "DebrisRemovalStressThreshold";
     175                case DebrisPackingFractionEnum : return "DebrisPackingFraction";
    166176                case DebugProfilingEnum : return "DebugProfiling";
    167177                case DebrisThicknessEnum : return "DebrisThickness";
     
    601611                case TransientIsageEnum : return "TransientIsage";
    602612                case TransientIsdamageevolutionEnum : return "TransientIsdamageevolution";
     613                case TransientIsdebrisEnum : return "TransientIsdebris";
    603614                case TransientIsesaEnum : return "TransientIsesa";
    604615                case TransientIsgiaEnum : return "TransientIsgia";
     
    11261137                case VxAverageEnum : return "VxAverage";
    11271138                case VxBaseEnum : return "VxBase";
     1139                case VxDebrisEnum : return "VxDebris";
    11281140                case VxEnum : return "Vx";
    11291141                case VxMeshEnum : return "VxMesh";
     
    11331145                case VyAverageEnum : return "VyAverage";
    11341146                case VyBaseEnum : return "VyBase";
     1147                case VyDebrisEnum : return "VyDebris";
    11351148                case VyEnum : return "Vy";
    11361149                case VyMeshEnum : return "VyMesh";
     
    13211334                case DataSetParamEnum : return "DataSetParam";
    13221335                case DatasetInputEnum : return "DatasetInput";
     1336                case DebrisAnalysisEnum : return "DebrisAnalysis";
     1337                case DebrisSolutionEnum : return "DebrisSolution";
    13231338                case DefaultAnalysisEnum : return "DefaultAnalysis";
    13241339                case DefaultCalvingEnum : return "DefaultCalving";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27297 r27298  
    167167              else if (strcmp(name,"DamageStressThreshold")==0) return DamageStressThresholdEnum;
    168168              else if (strcmp(name,"DamageStressUBound")==0) return DamageStressUBoundEnum;
     169              else if (strcmp(name,"DebrisMinThickness")==0) return DebrisMinThicknessEnum;
     170              else if (strcmp(name,"DebrisNumRequestedOutputs")==0) return DebrisNumRequestedOutputsEnum;
     171              else if (strcmp(name,"DebrisPenaltyFactor")==0) return DebrisPenaltyFactorEnum;
     172              else if (strcmp(name,"DebrisRequestedOutputs")==0) return DebrisRequestedOutputsEnum;
     173              else if (strcmp(name,"DebrisStabilization")==0) return DebrisStabilizationEnum;
     174              else if (strcmp(name,"DebrisRemovalmodel")==0) return DebrisRemovalmodelEnum;
     175              else if (strcmp(name,"DebrisDisplacementmodel")==0) return DebrisDisplacementmodelEnum;
     176              else if (strcmp(name,"DebrisRemovalSlopeThreshold")==0) return DebrisRemovalSlopeThresholdEnum;
     177              else if (strcmp(name,"DebrisRemovalStressThreshold")==0) return DebrisRemovalStressThresholdEnum;
     178              else if (strcmp(name,"DebrisPackingFraction")==0) return DebrisPackingFractionEnum;
    169179              else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum;
    170180              else if (strcmp(name,"DebrisThickness")==0) return DebrisThicknessEnum;
     
    250260              else if (strcmp(name,"HydrologydcLeakageFactor")==0) return HydrologydcLeakageFactorEnum;
    251261              else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum;
    252               else if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum;
     262         else stage=3;
     263   }
     264   if(stage==3){
     265              if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum;
    253266              else if (strcmp(name,"HydrologydcPenaltyLock")==0) return HydrologydcPenaltyLockEnum;
    254267              else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum;
     
    260273              else if (strcmp(name,"HydrologydcSedimentThickness")==0) return HydrologydcSedimentThicknessEnum;
    261274              else if (strcmp(name,"HydrologyStepAdapt")==0) return HydrologyStepAdaptEnum;
    262          else stage=3;
    263    }
    264    if(stage==3){
    265               if (strcmp(name,"HydrologydcTransferFlag")==0) return HydrologydcTransferFlagEnum;
     275              else if (strcmp(name,"HydrologydcTransferFlag")==0) return HydrologydcTransferFlagEnum;
    266276              else if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum;
    267277              else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
     
    373383              else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
    374384              else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
    375               else if (strcmp(name,"Outputdefinition")==0) return OutputdefinitionEnum;
     385         else stage=4;
     386   }
     387   if(stage==4){
     388              if (strcmp(name,"Outputdefinition")==0) return OutputdefinitionEnum;
    376389              else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
    377390              else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
     
    383396              else if (strcmp(name,"QmuResponsedescriptors")==0) return QmuResponsedescriptorsEnum;
    384397              else if (strcmp(name,"QmuVariableDescriptors")==0) return QmuVariableDescriptorsEnum;
    385          else stage=4;
    386    }
    387    if(stage==4){
    388               if (strcmp(name,"QmuVariablePartitions")==0) return QmuVariablePartitionsEnum;
     398              else if (strcmp(name,"QmuVariablePartitions")==0) return QmuVariablePartitionsEnum;
    389399              else if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum;
    390400              else if (strcmp(name,"QmuVariablePartitionsNt")==0) return QmuVariablePartitionsNtEnum;
     
    496506              else if (strcmp(name,"SmbARMAInitialTime")==0) return SmbARMAInitialTimeEnum;
    497507              else if (strcmp(name,"SmbARMATimestep")==0) return SmbARMATimestepEnum;
    498               else if (strcmp(name,"SmbARMAarOrder")==0) return SmbARMAarOrderEnum;
     508         else stage=5;
     509   }
     510   if(stage==5){
     511              if (strcmp(name,"SmbARMAarOrder")==0) return SmbARMAarOrderEnum;
    499512              else if (strcmp(name,"SmbARMAmaOrder")==0) return SmbARMAmaOrderEnum;
    500513              else if (strcmp(name,"SmbAveraging")==0) return SmbAveragingEnum;
     
    506519              else if (strcmp(name,"SmbElevationBins")==0) return SmbElevationBinsEnum;
    507520              else if (strcmp(name,"SmbCldFrac")==0) return SmbCldFracEnum;
    508          else stage=5;
    509    }
    510    if(stage==5){
    511               if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
     521              else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
    512522              else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
    513523              else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
     
    613623              else if (strcmp(name,"TransientIsage")==0) return TransientIsageEnum;
    614624              else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
     625              else if (strcmp(name,"TransientIsdebris")==0) return TransientIsdebrisEnum;
    615626              else if (strcmp(name,"TransientIsesa")==0) return TransientIsesaEnum;
    616627              else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
     
    618629              else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
    619630              else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
    620               else if (strcmp(name,"TransientIsoceantransport")==0) return TransientIsoceantransportEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"TransientIsoceantransport")==0) return TransientIsoceantransportEnum;
    621635              else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum;
    622636              else if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum;
     
    629643              else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
    630644              else if (strcmp(name,"Velocity")==0) return VelocityEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"Xxe")==0) return XxeEnum;
     645              else if (strcmp(name,"Xxe")==0) return XxeEnum;
    635646              else if (strcmp(name,"Yye")==0) return YyeEnum;
    636647              else if (strcmp(name,"Zze")==0) return ZzeEnum;
     
    741752              else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
    742753              else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
    743               else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
    744758              else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
    745759              else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
     
    752766              else if (strcmp(name,"Domain3D")==0) return Domain3DEnum;
    753767              else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
     768              else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
    758769              else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
    759770              else if (strcmp(name,"Dummy")==0) return DummyEnum;
     
    864875              else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
    865876              else if (strcmp(name,"MaterialsRheologyBbar")==0) return MaterialsRheologyBbarEnum;
    866               else if (strcmp(name,"MaterialsRheologyE")==0) return MaterialsRheologyEEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"MaterialsRheologyE")==0) return MaterialsRheologyEEnum;
    867881              else if (strcmp(name,"MaterialsRheologyEbar")==0) return MaterialsRheologyEbarEnum;
    868882              else if (strcmp(name,"MaterialsRheologyEc")==0) return MaterialsRheologyEcEnum;
     
    875889              else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum;
    876890              else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"Misfit")==0) return MisfitEnum;
     891              else if (strcmp(name,"Misfit")==0) return MisfitEnum;
    881892              else if (strcmp(name,"MovingFrontalVx")==0) return MovingFrontalVxEnum;
    882893              else if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum;
     
    987998              else if (strcmp(name,"SmbAdiff")==0) return SmbAdiffEnum;
    988999              else if (strcmp(name,"SmbAValue")==0) return SmbAValueEnum;
    989               else if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
     1000         else stage=9;
     1001   }
     1002   if(stage==9){
     1003              if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
    9901004              else if (strcmp(name,"SmbAdiffini")==0) return SmbAdiffiniEnum;
    9911005              else if (strcmp(name,"SmbAini")==0) return SmbAiniEnum;
     
    9981012              else if (strcmp(name,"SmbC")==0) return SmbCEnum;
    9991013              else if (strcmp(name,"SmbCcsnowValue")==0) return SmbCcsnowValueEnum;
    1000          else stage=9;
    1001    }
    1002    if(stage==9){
    1003               if (strcmp(name,"SmbCciceValue")==0) return SmbCciceValueEnum;
     1014              else if (strcmp(name,"SmbCciceValue")==0) return SmbCciceValueEnum;
    10041015              else if (strcmp(name,"SmbCotValue")==0) return SmbCotValueEnum;
    10051016              else if (strcmp(name,"SmbD")==0) return SmbDEnum;
     
    11101121              else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
    11111122              else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
    1112               else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
     1123         else stage=10;
     1124   }
     1125   if(stage==10){
     1126              if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
    11131127              else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
    11141128              else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
     
    11211135              else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
    11221136              else if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum;
    1123          else stage=10;
    1124    }
    1125    if(stage==10){
    1126               if (strcmp(name,"Surface")==0) return SurfaceEnum;
     1137              else if (strcmp(name,"Surface")==0) return SurfaceEnum;
    11271138              else if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum;
    11281139              else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
     
    11531164              else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
    11541165              else if (strcmp(name,"VxBase")==0) return VxBaseEnum;
     1166              else if (strcmp(name,"VxDebris")==0) return VxDebrisEnum;
    11551167              else if (strcmp(name,"Vx")==0) return VxEnum;
    11561168              else if (strcmp(name,"VxMesh")==0) return VxMeshEnum;
     
    11601172              else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
    11611173              else if (strcmp(name,"VyBase")==0) return VyBaseEnum;
     1174              else if (strcmp(name,"VyDebris")==0) return VyDebrisEnum;
    11621175              else if (strcmp(name,"Vy")==0) return VyEnum;
    11631176              else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
     
    12311244              else if (strcmp(name,"Outputdefinition54")==0) return Outputdefinition54Enum;
    12321245              else if (strcmp(name,"Outputdefinition55")==0) return Outputdefinition55Enum;
    1233               else if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
     1246         else stage=11;
     1247   }
     1248   if(stage==11){
     1249              if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
    12341250              else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum;
    12351251              else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
     
    12441260              else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
    12451261              else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
    1246          else stage=11;
    1247    }
    1248    if(stage==11){
    1249               if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
     1262              else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
    12501263              else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
    12511264              else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
     
    13511364              else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
    13521365              else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
     1366              else if (strcmp(name,"DebrisAnalysis")==0) return DebrisAnalysisEnum;
     1367              else if (strcmp(name,"DebrisSolution")==0) return DebrisSolutionEnum;
    13531368              else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
    1354               else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
     1369         else stage=12;
     1370   }
     1371   if(stage==12){
     1372              if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
    13551373              else if (strcmp(name,"Dense")==0) return DenseEnum;
    13561374              else if (strcmp(name,"DependentObject")==0) return DependentObjectEnum;
     
    13671385              else if (strcmp(name,"DoubleMatParam")==0) return DoubleMatParamEnum;
    13681386              else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum;
    1369          else stage=12;
    1370    }
    1371    if(stage==12){
    1372               if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;
     1387              else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;
    13731388              else if (strcmp(name,"Element")==0) return ElementEnum;
    13741389              else if (strcmp(name,"ElementHook")==0) return ElementHookEnum;
     
    14751490              else if (strcmp(name,"LoveKernelsReal")==0) return LoveKernelsRealEnum;
    14761491              else if (strcmp(name,"LoveKf")==0) return LoveKfEnum;
    1477               else if (strcmp(name,"LoveKt")==0) return LoveKtEnum;
     1492         else stage=13;
     1493   }
     1494   if(stage==13){
     1495              if (strcmp(name,"LoveKt")==0) return LoveKtEnum;
    14781496              else if (strcmp(name,"LoveLf")==0) return LoveLfEnum;
    14791497              else if (strcmp(name,"LoveLt")==0) return LoveLtEnum;
     
    14901508              else if (strcmp(name,"MantlePlumeGeothermalFlux")==0) return MantlePlumeGeothermalFluxEnum;
    14911509              else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
    1492          else stage=13;
    1493    }
    1494    if(stage==13){
    1495               if (strcmp(name,"Masscon")==0) return MassconEnum;
     1510              else if (strcmp(name,"Masscon")==0) return MassconEnum;
    14961511              else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
    14971512              else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
     
    15981613              else if (strcmp(name,"SSAHOApproximation")==0) return SSAHOApproximationEnum;
    15991614              else if (strcmp(name,"Scaled")==0) return ScaledEnum;
    1600               else if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum;
     1615         else stage=14;
     1616   }
     1617   if(stage==14){
     1618              if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum;
    16011619              else if (strcmp(name,"SealevelEmotion")==0) return SealevelEmotionEnum;
    16021620              else if (strcmp(name,"SealevelchangePolarMotionX")==0) return SealevelchangePolarMotionXEnum;
     
    16131631              else if (strcmp(name,"Separate")==0) return SeparateEnum;
    16141632              else if (strcmp(name,"Seq")==0) return SeqEnum;
    1615          else stage=14;
    1616    }
    1617    if(stage==14){
    1618               if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;
     1633              else if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;
    16191634              else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;
    16201635              else if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum;
Note: See TracChangeset for help on using the changeset viewer.