Changeset 22285


Ignore:
Timestamp:
12/01/17 07:46:02 (7 years ago)
Author:
bdef
Message:

NEW : Enum clean up and average field aditions

Location:
issm/trunk-jpl/src/c
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r22284 r22285  
    44764476}
    44774477/*}}}*/
    4478 void FemModel::StackTransientOutputx(int* input_enum,IssmDouble hydrotime,int numoutputs){ /*{{{*/
     4478void FemModel::StackTransientOutputx(int* input_enum,int* stackedinput_enum,IssmDouble hydrotime,int numoutputs){ /*{{{*/
    44794479
    44804480  for(int i=0;i<numoutputs;i++){
     
    44874487                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    44884488                                TransientInput* stacking_input=NULL;
    4489                                 Input* input=element->inputs->GetInput(EffectivePressureStackedEnum); _assert_(input);
     4489                                Input* input=element->inputs->GetInput(stackedinput_enum[i]); _assert_(input);
    44904490                                Input* input_to_stack=element->GetInput(input_enum[i]); _assert_(input_to_stack);
    44914491                                stacking_input=dynamic_cast<TransientInput*>(input);
     
    44964496                                switch(element->ObjectEnum()){
    44974497                                case TriaEnum:
    4498                                         stacking_input->AddTimeInput(new TriaInput(EffectivePressureStackedEnum,&N[0],P1Enum),hydrotime);
     4498                                        stacking_input->AddTimeInput(new TriaInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
    44994499                                        break;
    45004500                                case PentaEnum:
    4501                                         stacking_input->AddTimeInput(new PentaInput(EffectivePressureStackedEnum,&N[0],P1Enum),hydrotime);
     4501                                        stacking_input->AddTimeInput(new PentaInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
    45024502                                        break;
    45034503                                case TetraEnum:
    4504                                         stacking_input->AddTimeInput(new TetraInput(EffectivePressureStackedEnum,&N[0],P1Enum),hydrotime);
     4504                                        stacking_input->AddTimeInput(new TetraInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
    45054505                                        break;
    45064506                                default: _error_("Not implemented yet");
     
    45124512}
    45134513/*}}}*/
    4514 void FemModel::AverageTransientOutputx(int* input_enum,IssmDouble init_time,int numoutputs){ /*{{{*/
     4514void FemModel::AverageTransientOutputx(int* input_enum,int* averagedinput_enum,IssmDouble init_time,int numoutputs){ /*{{{*/
    45154515
    45164516  for(int i=0;i<numoutputs;i++){
     
    45304530                                stacking_input->GetInputAverageOnTimes(&time_averaged,init_time);
    45314531
    4532                                 element->AddInput(EffectivePressureTimeAverageEnum,&time_averaged[0],P1Enum);
     4532                                element->AddInput(averagedinput_enum[i],&time_averaged[0],P1Enum);
    45334533                                xDelete<IssmDouble>(time_averaged);
    45344534                        }
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r22277 r22285  
    150150                void UpdateConstraintsL2ProjectionEPLx(IssmDouble* pL2count);
    151151                void InitTransientOutputx(int* input_enum, int numoutputs);
    152                 void StackTransientOutputx(int* input_enum, IssmDouble hydrotime, int numoutputs);
    153                 void AverageTransientOutputx(int* input_enum,IssmDouble hydrotime,int numoutputs);
     152                void StackTransientOutputx(int* input_enum,int* stackedinput_enum, IssmDouble hydrotime, int numoutputs);
     153                void AverageTransientOutputx(int* input_enum,int* averagedinput_enum,IssmDouble hydrotime,int numoutputs);
    154154                void UpdateConstraintsx(void);
    155155                int  UpdateVertexPositionsx(void);
  • issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp

    r22282 r22285  
    7070        output->numtimesteps=this->numtimesteps;
    7171        output->timesteps=xNew<IssmDouble>(this->numtimesteps);
    72         xMemCpy(output->timesteps,this->timesteps,this->numtimesteps);
    73         output->inputs=static_cast<Inputs*>(this->inputs->Copy());
     72        if(this->numtimesteps>0){
     73                xMemCpy(output->timesteps,this->timesteps,this->numtimesteps);
     74                output->inputs=static_cast<Inputs*>(this->inputs->Copy());
     75        }
    7476        output->parameters=this->parameters;
    7577
  • issm/trunk-jpl/src/c/cores/hydrology_core.cpp

    r22284 r22285  
    1818        bool save_results;
    1919        bool modify_loads=true;
    20         bool isefficientlayer;
    2120        char **requested_outputs = NULL;
    2221
     
    2726        femmodel->parameters->FindParam(&numoutputs,HydrologyNumRequestedOutputsEnum);
    2827        if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,HydrologyRequestedOutputsEnum);
    29 
    3028        /*Using the Shreve based Model*/
    3129        if (hydrology_model==HydrologyshreveEnum){
     
    4240                InputDuplicatex(femmodel,WatercolumnEnum,WaterColumnOldEnum);
    4341               
    44                 if(save_results){
    45                         if(VerboseSolution()) _printf0_("   saving results \n");
    46                         femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
    47                 }
    4842        }
    4943
     
    5145        else if (hydrology_model==HydrologydcEnum){
    5246                /*intermediary: */
     47                bool       isefficientlayer;
    5348                int        step,hydroslices;
    5449                IssmDouble time,init_time,hydrotime,yts;
    5550                IssmDouble dt,hydrodt;
    5651
     52                femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
    5753                femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    5854                femmodel->parameters->FindParam(&step,StepEnum);
     
    6056                femmodel->parameters->FindParam(&hydroslices,HydrologyStepsPerStepEnum);
    6157                femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
     58
    6259                init_time = time-dt; //getting the time back to the start of the timestep
    6360                hydrotime=init_time;
    6461                hydrodt=dt/hydroslices; //computing hydro dt from dt and a divider
    6562                femmodel->parameters->AddObject(new DoubleParam(HydrologydtEnum,hydrodt));
    66 
    67                 if(dt>0){
    68                         if(hydroslices>1){
    69                                 int trans_input[1]={EffectivePressureStackedEnum};
    70                                 femmodel->InitTransientOutputx(&trans_input[0],1);
    71                         }
    72                         while(hydrotime<time-(yts*DBL_EPSILON)){ //loop on hydro dts
    73                                 hydrotime+=hydrodt;
    74                                 InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
    75                                 femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
    76                                 if (isefficientlayer){
     63                if(hydroslices>1){
     64                        /*define which variable needs to be averaged on the sub-timestep and initialize as needed*/
     65                        if (isefficientlayer){
     66                                int inputtostack[4]={EffectivePressureEnum,SedimentHeadEnum,EplHeadEnum,HydrologydcEplThicknessEnum};
     67                                int stackedinput[4]={EffectivePressureStackedEnum,SedimentHeadStackedEnum,EplHeadStackedEnum,HydrologydcEplThicknessStackedEnum};
     68                                int averagedinput[4]={EffectivePressureTimeAverageEnum,SedimentHeadTimeAverageEnum,EplHeadTimeAverageEnum,HydrologydcEplThicknessTimeAverageEnum};
     69                                femmodel->InitTransientOutputx(&stackedinput[0],4);
     70                                while(hydrotime<time-(yts*DBL_EPSILON)){ //loop on hydro dts
     71                                        hydrotime+=hydrodt;
     72                                        /*save preceding timestep*/
     73                                        InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
    7774                                        InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
    7875                                        InputDuplicatex(femmodel,HydrologydcEplThicknessEnum,HydrologydcEplThicknessOldEnum);
     76                                        /*Proceed now to heads computations*/
     77                                        solutionsequence_hydro_nonlinear(femmodel);
     78                                        /*If we have a sub-timestep we stack the variables here*/
     79                                        femmodel->StackTransientOutputx(&inputtostack[0],&stackedinput[0],hydrotime,4);
    7980                                }
    80                                 /*Proceed now to heads computations*/
    81                                 solutionsequence_hydro_nonlinear(femmodel);
    82                                 if (hydroslices>1){
    83                                         int output[1]={EffectivePressureEnum};
    84                                         femmodel->StackTransientOutputx(&output[0],hydrotime,1);
     81                                femmodel->AverageTransientOutputx(&stackedinput[0],&averagedinput[0],init_time,4);
     82                        }
     83                        else{
     84                                int inputtostack[2]={EffectivePressureEnum,SedimentHeadEnum};
     85                                int stackedinput[2]={EffectivePressureStackedEnum,SedimentHeadStackedEnum};
     86                                int averagedinput[2]={EffectivePressureTimeAverageEnum,SedimentHeadTimeAverageEnum};
     87                                femmodel->InitTransientOutputx(&stackedinput[0],2);
     88                                while(hydrotime<time-(yts*DBL_EPSILON)){ //loop on hydro dts
     89                                        hydrotime+=hydrodt;
     90                                        /*save preceding timestep*/
     91                                        InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
     92                                        InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
     93                                        InputDuplicatex(femmodel,HydrologydcEplThicknessEnum,HydrologydcEplThicknessOldEnum);
     94                                        /*Proceed now to heads computations*/
     95                                        solutionsequence_hydro_nonlinear(femmodel);
     96                                        /*If we have a sub-timestep we stack the variables here*/
     97                                        femmodel->StackTransientOutputx(&inputtostack[0],&stackedinput[0],hydrotime,2);
    8598                                }
     99                                femmodel->AverageTransientOutputx(&stackedinput[0],&averagedinput[0],init_time,2);
    86100                        }
    87                         if(hydroslices>1){
    88                                 int output[1]={EffectivePressureStackedEnum};
    89                                 femmodel->AverageTransientOutputx(&output[0],init_time,1);
    90                         }               
    91101                }
    92102                else{
    93103                        InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
    94                         femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
    95104                        if (isefficientlayer){
    96105                                InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
     
    100109                        solutionsequence_hydro_nonlinear(femmodel);
    101110                }
    102                 if(save_results){
    103                         if(VerboseSolution()) _printf0_("   saving results \n");
    104                         femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
    105                 }
    106111        }
    107        
    108112        else if (hydrology_model==HydrologysommersEnum){       
    109113                femmodel->SetCurrentConfiguration(HydrologySommersAnalysisEnum);       
     
    114118                analysis->UpdateGapHeight(femmodel);
    115119                delete analysis;
    116                
    117                 if(save_results){
    118                         if(VerboseSolution()) _printf0_("   saving results \n");
    119                         femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
    120                 }
    121120        }
    122 
    123121        else{
    124122                _error_("Hydrology model "<< EnumToStringx(hydrology_model) <<" not supported yet");
     123        }
     124        if(save_results){
     125                if(VerboseSolution()) _printf0_("   saving results \n");
     126                femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
    125127        }
    126128        /*Free ressources:*/   
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r22284 r22285  
    128128        GeometryHydrostaticRatioEnum,
    129129        HydrologyModelEnum,
     130        HydrologyNumRequestedOutputsEnum,
     131        HydrologyRequestedOutputsEnum,
    130132        HydrologyshreveEnum,
    131133        HydrologyshreveStabilizationEnum,
    132134        HydrologydcEnum,
    133         HydrologyNumRequestedOutputsEnum,
    134         HydrologyRequestedOutputsEnum,
    135135        HydrologydtEnum,
    136136        HydrologyStepsPerStepEnum,
     
    150150        EplHeadSlopeYEnum,
    151151        EplZigZagCounterEnum,
    152         MeanEffectivePressureEnum,
    153152        HydrologydcMaxIterEnum,
    154153        HydrologydcRelTolEnum,
     
    181180        HydrologydcEplflipLockEnum,
    182181        HydrologydcBasalMoulinInputEnum,
    183         HydrologyLayerEnum,
    184         HydrologySedimentEnum,
    185         HydrologyEfficientEnum,
    186182        HydrologySedimentKmaxEnum,
    187183        HydrologysommersEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r22284 r22285  
    134134                case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio";
    135135                case HydrologyModelEnum : return "HydrologyModel";
     136                case HydrologyNumRequestedOutputsEnum : return "HydrologyNumRequestedOutputs";
     137                case HydrologyRequestedOutputsEnum : return "HydrologyRequestedOutputs";
    136138                case HydrologyshreveEnum : return "Hydrologyshreve";
    137139                case HydrologyshreveStabilizationEnum : return "HydrologyshreveStabilization";
    138140                case HydrologydcEnum : return "Hydrologydc";
    139                 case HydrologyNumRequestedOutputsEnum : return "HydrologyNumRequestedOutputs";
    140                 case HydrologyRequestedOutputsEnum : return "HydrologyRequestedOutputs";
    141141                case HydrologydtEnum : return "Hydrologydt";
    142142                case HydrologyStepsPerStepEnum : return "HydrologyStepsPerStep";
     
    156156                case EplHeadSlopeYEnum : return "EplHeadSlopeY";
    157157                case EplZigZagCounterEnum : return "EplZigZagCounter";
    158                 case MeanEffectivePressureEnum : return "MeanEffectivePressure";
    159158                case HydrologydcMaxIterEnum : return "HydrologydcMaxIter";
    160159                case HydrologydcRelTolEnum : return "HydrologydcRelTol";
     
    187186                case HydrologydcEplflipLockEnum : return "HydrologydcEplflipLock";
    188187                case HydrologydcBasalMoulinInputEnum : return "HydrologydcBasalMoulinInput";
    189                 case HydrologyLayerEnum : return "HydrologyLayer";
    190                 case HydrologySedimentEnum : return "HydrologySediment";
    191                 case HydrologyEfficientEnum : return "HydrologyEfficient";
    192188                case HydrologySedimentKmaxEnum : return "HydrologySedimentKmax";
    193189                case HydrologysommersEnum : return "Hydrologysommers";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r22284 r22285  
    134134              else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum;
    135135              else if (strcmp(name,"HydrologyModel")==0) return HydrologyModelEnum;
     136              else if (strcmp(name,"HydrologyNumRequestedOutputs")==0) return HydrologyNumRequestedOutputsEnum;
     137              else if (strcmp(name,"HydrologyRequestedOutputs")==0) return HydrologyRequestedOutputsEnum;
    136138              else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
    137               else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
    138               else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"HydrologyNumRequestedOutputs")==0) return HydrologyNumRequestedOutputsEnum;
    143               else if (strcmp(name,"HydrologyRequestedOutputs")==0) return HydrologyRequestedOutputsEnum;
     142              if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
     143              else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
    144144              else if (strcmp(name,"Hydrologydt")==0) return HydrologydtEnum;
    145145              else if (strcmp(name,"HydrologyStepsPerStep")==0) return HydrologyStepsPerStepEnum;
     
    159159              else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
    160160              else if (strcmp(name,"EplZigZagCounter")==0) return EplZigZagCounterEnum;
    161               else if (strcmp(name,"MeanEffectivePressure")==0) return MeanEffectivePressureEnum;
    162161              else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum;
    163162              else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum;
     
    190189              else if (strcmp(name,"HydrologydcEplflipLock")==0) return HydrologydcEplflipLockEnum;
    191190              else if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
    192               else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum;
    193               else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
    194               else if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
    195191              else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
    196192              else if (strcmp(name,"Hydrologysommers")==0) return HydrologysommersEnum;
     
    260256              else if (strcmp(name,"DamageLaw")==0) return DamageLawEnum;
    261257              else if (strcmp(name,"DamageC1")==0) return DamageC1Enum;
     258              else if (strcmp(name,"DamageC2")==0) return DamageC2Enum;
     259              else if (strcmp(name,"DamageC3")==0) return DamageC3Enum;
     260              else if (strcmp(name,"DamageC4")==0) return DamageC4Enum;
     261              else if (strcmp(name,"DamageElementinterp")==0) return DamageElementinterpEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"DamageC2")==0) return DamageC2Enum;
    266               else if (strcmp(name,"DamageC3")==0) return DamageC3Enum;
    267               else if (strcmp(name,"DamageC4")==0) return DamageC4Enum;
    268               else if (strcmp(name,"DamageElementinterp")==0) return DamageElementinterpEnum;
    269               else if (strcmp(name,"DamageHealing")==0) return DamageHealingEnum;
     265              if (strcmp(name,"DamageHealing")==0) return DamageHealingEnum;
    270266              else if (strcmp(name,"DamageStressThreshold")==0) return DamageStressThresholdEnum;
    271267              else if (strcmp(name,"DamageKappa")==0) return DamageKappaEnum;
     
    383379              else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum;
    384380              else if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
     381              else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
     382              else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
     383              else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
     384              else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"Thickness")==0) return ThicknessEnum;
    389               else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
    390               else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
    391               else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
    392               else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
     388              if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
    393389              else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum;
    394390              else if (strcmp(name,"TimesteppingInterpForcings")==0) return TimesteppingInterpForcingsEnum;
     
    506502              else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
    507503              else if (strcmp(name,"SmbSmbref")==0) return SmbSmbrefEnum;
     504              else if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum;
     505              else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum;
     506              else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
     507              else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum;
    512               else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum;
    513               else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
    514               else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
    515               else if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
     511              if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
    516512              else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum;
    517513              else if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum;
     
    629625              else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
    630626              else if (strcmp(name,"IntMatExternalResult")==0) return IntMatExternalResultEnum;
     627              else if (strcmp(name,"J")==0) return JEnum;
     628              else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
     629              else if (strcmp(name,"Step")==0) return StepEnum;
     630              else if (strcmp(name,"Time")==0) return TimeEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"J")==0) return JEnum;
    635               else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
    636               else if (strcmp(name,"Step")==0) return StepEnum;
    637               else if (strcmp(name,"Time")==0) return TimeEnum;
    638               else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
     634              if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
    639635              else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
    640636              else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
     
    752748              else if (strcmp(name,"AugmentedLagrangianRlambda")==0) return AugmentedLagrangianRlambdaEnum;
    753749              else if (strcmp(name,"AugmentedLagrangianRholambda")==0) return AugmentedLagrangianRholambdaEnum;
     750              else if (strcmp(name,"AugmentedLagrangianTheta")==0) return AugmentedLagrangianThetaEnum;
     751              else if (strcmp(name,"None")==0) return NoneEnum;
     752              else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
     753              else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"AugmentedLagrangianTheta")==0) return AugmentedLagrangianThetaEnum;
    758               else if (strcmp(name,"None")==0) return NoneEnum;
    759               else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
    760               else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
    761               else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
     757              if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
    762758              else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum;
    763759              else if (strcmp(name,"SubelementMigration3")==0) return SubelementMigration3Enum;
     
    875871              else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum;
    876872              else if (strcmp(name,"EsaTransitions")==0) return EsaTransitionsEnum;
     873              else if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum;
     874              else if (strcmp(name,"EsaNumRequestedOutputs")==0) return EsaNumRequestedOutputsEnum;
     875              else if (strcmp(name,"TransientAmrFrequency")==0) return TransientAmrFrequencyEnum;
     876              else if (strcmp(name,"AmrType")==0) return AmrTypeEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum;
    881               else if (strcmp(name,"EsaNumRequestedOutputs")==0) return EsaNumRequestedOutputsEnum;
    882               else if (strcmp(name,"TransientAmrFrequency")==0) return TransientAmrFrequencyEnum;
    883               else if (strcmp(name,"AmrType")==0) return AmrTypeEnum;
    884               else if (strcmp(name,"AmrRestart")==0) return AmrRestartEnum;
     880              if (strcmp(name,"AmrRestart")==0) return AmrRestartEnum;
    885881              else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum;
    886882              else if (strcmp(name,"AmrLevelMax")==0) return AmrLevelMaxEnum;
     
    998994              else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
    999995              else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
     996              else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
     997              else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
     998              else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
     999              else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
    1004               else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
    1005               else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
    1006               else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
    1007               else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
     1003              if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
    10081004              else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
    10091005              else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp

    r22284 r22285  
    4747        IssmDouble ndu_epl,nu_epl;
    4848        IssmDouble ThickCount,L2Count;
    49        
    5049        /*Recover parameters: */
    5150        femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
     
    5352        femmodel->parameters->FindParam(&hydro_maxiter,HydrologydcMaxIterEnum);
    5453        femmodel->parameters->FindParam(&eps_hyd,HydrologydcRelTolEnum);
    55 
    5654        hydrocount=1;
    5755        hydroconverged=false;
     
    6260        GetSolutionFromInputsx(&ug_sed,femmodel);       
    6361        Reducevectorgtofx(&uf_sed, ug_sed, femmodel->nodes,femmodel->parameters);
    64 
    6562        if(isefficientlayer) {
    6663                inefanalysis = new HydrologyDCInefficientAnalysis();
     
    9087                InputUpdateFromConstantx(femmodel,false,ConvergedEnum);
    9188                femmodel->UpdateConstraintsx();
    92                 //femmodel->parameters->SetParam(HydrologySedimentEnum,HydrologyLayerEnum);
    9389               
    9490                /*Reset constraint on the ZigZag Lock*/
     
    163159                        InputUpdateFromConstantx(femmodel,true,ResetPenaltiesEnum);
    164160                        InputUpdateFromConstantx(femmodel,false,ConvergedEnum);
    165                         //femmodel->parameters->SetParam(HydrologyEfficientEnum,HydrologyLayerEnum);
    166161
    167162                        for(;;){
Note: See TracChangeset for help on using the changeset viewer.