Changeset 22285
- Timestamp:
- 12/01/17 07:46:02 (7 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/FemModel.cpp
r22284 r22285 4476 4476 } 4477 4477 /*}}}*/ 4478 void FemModel::StackTransientOutputx(int* input_enum, IssmDouble hydrotime,int numoutputs){ /*{{{*/4478 void FemModel::StackTransientOutputx(int* input_enum,int* stackedinput_enum,IssmDouble hydrotime,int numoutputs){ /*{{{*/ 4479 4479 4480 4480 for(int i=0;i<numoutputs;i++){ … … 4487 4487 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 4488 4488 TransientInput* stacking_input=NULL; 4489 Input* input=element->inputs->GetInput( EffectivePressureStackedEnum); _assert_(input);4489 Input* input=element->inputs->GetInput(stackedinput_enum[i]); _assert_(input); 4490 4490 Input* input_to_stack=element->GetInput(input_enum[i]); _assert_(input_to_stack); 4491 4491 stacking_input=dynamic_cast<TransientInput*>(input); … … 4496 4496 switch(element->ObjectEnum()){ 4497 4497 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); 4499 4499 break; 4500 4500 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); 4502 4502 break; 4503 4503 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); 4505 4505 break; 4506 4506 default: _error_("Not implemented yet"); … … 4512 4512 } 4513 4513 /*}}}*/ 4514 void FemModel::AverageTransientOutputx(int* input_enum, IssmDouble init_time,int numoutputs){ /*{{{*/4514 void FemModel::AverageTransientOutputx(int* input_enum,int* averagedinput_enum,IssmDouble init_time,int numoutputs){ /*{{{*/ 4515 4515 4516 4516 for(int i=0;i<numoutputs;i++){ … … 4530 4530 stacking_input->GetInputAverageOnTimes(&time_averaged,init_time); 4531 4531 4532 element->AddInput( EffectivePressureTimeAverageEnum,&time_averaged[0],P1Enum);4532 element->AddInput(averagedinput_enum[i],&time_averaged[0],P1Enum); 4533 4533 xDelete<IssmDouble>(time_averaged); 4534 4534 } -
issm/trunk-jpl/src/c/classes/FemModel.h
r22277 r22285 150 150 void UpdateConstraintsL2ProjectionEPLx(IssmDouble* pL2count); 151 151 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); 154 154 void UpdateConstraintsx(void); 155 155 int UpdateVertexPositionsx(void); -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
r22282 r22285 70 70 output->numtimesteps=this->numtimesteps; 71 71 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 } 74 76 output->parameters=this->parameters; 75 77 -
issm/trunk-jpl/src/c/cores/hydrology_core.cpp
r22284 r22285 18 18 bool save_results; 19 19 bool modify_loads=true; 20 bool isefficientlayer;21 20 char **requested_outputs = NULL; 22 21 … … 27 26 femmodel->parameters->FindParam(&numoutputs,HydrologyNumRequestedOutputsEnum); 28 27 if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,HydrologyRequestedOutputsEnum); 29 30 28 /*Using the Shreve based Model*/ 31 29 if (hydrology_model==HydrologyshreveEnum){ … … 42 40 InputDuplicatex(femmodel,WatercolumnEnum,WaterColumnOldEnum); 43 41 44 if(save_results){45 if(VerboseSolution()) _printf0_(" saving results \n");46 femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);47 }48 42 } 49 43 … … 51 45 else if (hydrology_model==HydrologydcEnum){ 52 46 /*intermediary: */ 47 bool isefficientlayer; 53 48 int step,hydroslices; 54 49 IssmDouble time,init_time,hydrotime,yts; 55 50 IssmDouble dt,hydrodt; 56 51 52 femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum); 57 53 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 58 54 femmodel->parameters->FindParam(&step,StepEnum); … … 60 56 femmodel->parameters->FindParam(&hydroslices,HydrologyStepsPerStepEnum); 61 57 femmodel->parameters->FindParam(&yts,ConstantsYtsEnum); 58 62 59 init_time = time-dt; //getting the time back to the start of the timestep 63 60 hydrotime=init_time; 64 61 hydrodt=dt/hydroslices; //computing hydro dt from dt and a divider 65 62 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 dts73 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); 77 74 InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum); 78 75 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); 79 80 } 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); 85 98 } 99 femmodel->AverageTransientOutputx(&stackedinput[0],&averagedinput[0],init_time,2); 86 100 } 87 if(hydroslices>1){88 int output[1]={EffectivePressureStackedEnum};89 femmodel->AverageTransientOutputx(&output[0],init_time,1);90 }91 101 } 92 102 else{ 93 103 InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum); 94 femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);95 104 if (isefficientlayer){ 96 105 InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum); … … 100 109 solutionsequence_hydro_nonlinear(femmodel); 101 110 } 102 if(save_results){103 if(VerboseSolution()) _printf0_(" saving results \n");104 femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);105 }106 111 } 107 108 112 else if (hydrology_model==HydrologysommersEnum){ 109 113 femmodel->SetCurrentConfiguration(HydrologySommersAnalysisEnum); … … 114 118 analysis->UpdateGapHeight(femmodel); 115 119 delete analysis; 116 117 if(save_results){118 if(VerboseSolution()) _printf0_(" saving results \n");119 femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);120 }121 120 } 122 123 121 else{ 124 122 _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); 125 127 } 126 128 /*Free ressources:*/ -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r22284 r22285 128 128 GeometryHydrostaticRatioEnum, 129 129 HydrologyModelEnum, 130 HydrologyNumRequestedOutputsEnum, 131 HydrologyRequestedOutputsEnum, 130 132 HydrologyshreveEnum, 131 133 HydrologyshreveStabilizationEnum, 132 134 HydrologydcEnum, 133 HydrologyNumRequestedOutputsEnum,134 HydrologyRequestedOutputsEnum,135 135 HydrologydtEnum, 136 136 HydrologyStepsPerStepEnum, … … 150 150 EplHeadSlopeYEnum, 151 151 EplZigZagCounterEnum, 152 MeanEffectivePressureEnum,153 152 HydrologydcMaxIterEnum, 154 153 HydrologydcRelTolEnum, … … 181 180 HydrologydcEplflipLockEnum, 182 181 HydrologydcBasalMoulinInputEnum, 183 HydrologyLayerEnum,184 HydrologySedimentEnum,185 HydrologyEfficientEnum,186 182 HydrologySedimentKmaxEnum, 187 183 HydrologysommersEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r22284 r22285 134 134 case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio"; 135 135 case HydrologyModelEnum : return "HydrologyModel"; 136 case HydrologyNumRequestedOutputsEnum : return "HydrologyNumRequestedOutputs"; 137 case HydrologyRequestedOutputsEnum : return "HydrologyRequestedOutputs"; 136 138 case HydrologyshreveEnum : return "Hydrologyshreve"; 137 139 case HydrologyshreveStabilizationEnum : return "HydrologyshreveStabilization"; 138 140 case HydrologydcEnum : return "Hydrologydc"; 139 case HydrologyNumRequestedOutputsEnum : return "HydrologyNumRequestedOutputs";140 case HydrologyRequestedOutputsEnum : return "HydrologyRequestedOutputs";141 141 case HydrologydtEnum : return "Hydrologydt"; 142 142 case HydrologyStepsPerStepEnum : return "HydrologyStepsPerStep"; … … 156 156 case EplHeadSlopeYEnum : return "EplHeadSlopeY"; 157 157 case EplZigZagCounterEnum : return "EplZigZagCounter"; 158 case MeanEffectivePressureEnum : return "MeanEffectivePressure";159 158 case HydrologydcMaxIterEnum : return "HydrologydcMaxIter"; 160 159 case HydrologydcRelTolEnum : return "HydrologydcRelTol"; … … 187 186 case HydrologydcEplflipLockEnum : return "HydrologydcEplflipLock"; 188 187 case HydrologydcBasalMoulinInputEnum : return "HydrologydcBasalMoulinInput"; 189 case HydrologyLayerEnum : return "HydrologyLayer";190 case HydrologySedimentEnum : return "HydrologySediment";191 case HydrologyEfficientEnum : return "HydrologyEfficient";192 188 case HydrologySedimentKmaxEnum : return "HydrologySedimentKmax"; 193 189 case HydrologysommersEnum : return "Hydrologysommers"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r22284 r22285 134 134 else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum; 135 135 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; 136 138 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;139 139 else stage=2; 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"Hydrology NumRequestedOutputs")==0) return HydrologyNumRequestedOutputsEnum;143 else if (strcmp(name,"Hydrology RequestedOutputs")==0) return HydrologyRequestedOutputsEnum;142 if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum; 143 else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum; 144 144 else if (strcmp(name,"Hydrologydt")==0) return HydrologydtEnum; 145 145 else if (strcmp(name,"HydrologyStepsPerStep")==0) return HydrologyStepsPerStepEnum; … … 159 159 else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum; 160 160 else if (strcmp(name,"EplZigZagCounter")==0) return EplZigZagCounterEnum; 161 else if (strcmp(name,"MeanEffectivePressure")==0) return MeanEffectivePressureEnum;162 161 else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum; 163 162 else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum; … … 190 189 else if (strcmp(name,"HydrologydcEplflipLock")==0) return HydrologydcEplflipLockEnum; 191 190 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;195 191 else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum; 196 192 else if (strcmp(name,"Hydrologysommers")==0) return HydrologysommersEnum; … … 260 256 else if (strcmp(name,"DamageLaw")==0) return DamageLawEnum; 261 257 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; 262 262 else stage=3; 263 263 } 264 264 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; 270 266 else if (strcmp(name,"DamageStressThreshold")==0) return DamageStressThresholdEnum; 271 267 else if (strcmp(name,"DamageKappa")==0) return DamageKappaEnum; … … 383 379 else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum; 384 380 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; 385 385 else stage=4; 386 386 } 387 387 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; 393 389 else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum; 394 390 else if (strcmp(name,"TimesteppingInterpForcings")==0) return TimesteppingInterpForcingsEnum; … … 506 502 else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum; 507 503 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; 508 508 else stage=5; 509 509 } 510 510 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; 516 512 else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum; 517 513 else if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum; … … 629 625 else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum; 630 626 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; 631 631 else stage=6; 632 632 } 633 633 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; 639 635 else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum; 640 636 else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum; … … 752 748 else if (strcmp(name,"AugmentedLagrangianRlambda")==0) return AugmentedLagrangianRlambdaEnum; 753 749 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; 754 754 else stage=7; 755 755 } 756 756 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; 762 758 else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum; 763 759 else if (strcmp(name,"SubelementMigration3")==0) return SubelementMigration3Enum; … … 875 871 else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum; 876 872 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; 877 877 else stage=8; 878 878 } 879 879 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; 885 881 else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum; 886 882 else if (strcmp(name,"AmrLevelMax")==0) return AmrLevelMaxEnum; … … 998 994 else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; 999 995 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; 1000 1000 else stage=9; 1001 1001 } 1002 1002 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; 1008 1004 else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum; 1009 1005 else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum; -
issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
r22284 r22285 47 47 IssmDouble ndu_epl,nu_epl; 48 48 IssmDouble ThickCount,L2Count; 49 50 49 /*Recover parameters: */ 51 50 femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); … … 53 52 femmodel->parameters->FindParam(&hydro_maxiter,HydrologydcMaxIterEnum); 54 53 femmodel->parameters->FindParam(&eps_hyd,HydrologydcRelTolEnum); 55 56 54 hydrocount=1; 57 55 hydroconverged=false; … … 62 60 GetSolutionFromInputsx(&ug_sed,femmodel); 63 61 Reducevectorgtofx(&uf_sed, ug_sed, femmodel->nodes,femmodel->parameters); 64 65 62 if(isefficientlayer) { 66 63 inefanalysis = new HydrologyDCInefficientAnalysis(); … … 90 87 InputUpdateFromConstantx(femmodel,false,ConvergedEnum); 91 88 femmodel->UpdateConstraintsx(); 92 //femmodel->parameters->SetParam(HydrologySedimentEnum,HydrologyLayerEnum);93 89 94 90 /*Reset constraint on the ZigZag Lock*/ … … 163 159 InputUpdateFromConstantx(femmodel,true,ResetPenaltiesEnum); 164 160 InputUpdateFromConstantx(femmodel,false,ConvergedEnum); 165 //femmodel->parameters->SetParam(HydrologyEfficientEnum,HydrologyLayerEnum);166 161 167 162 for(;;){
Note:
See TracChangeset
for help on using the changeset viewer.