Changeset 27298


Ignore:
Timestamp:
Oct 10, 2022, 3:18:19 AM (4 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.