Changeset 16600
- Timestamp:
- 11/01/13 10:09:33 (11 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 1 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r16542 r16600 14 14 int sedimentlimit_flag; 15 15 int transfer_flag; 16 int penalty_lock; 16 17 bool isefficientlayer; 17 18 IssmDouble sedimentlimit; … … 31 32 iomodel->FetchData(&penalty_factor,HydrologydcPenaltyFactorEnum); 32 33 iomodel->FetchData(&rel_tol,HydrologydcRelTolEnum); 34 iomodel->FetchData(&penalty_lock,HydrologydcPenaltyLockEnum); 33 35 34 36 if(sedimentlimit_flag==1){ … … 48 50 parameters->AddObject(new IntParam(HydrologydcTransferFlagEnum,transfer_flag)); 49 51 parameters->AddObject(new DoubleParam(HydrologydcRelTolEnum,rel_tol)); 52 parameters->AddObject(new IntParam(HydrologydcPenaltyLockEnum,penalty_lock)); 50 53 51 54 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r16589 r16600 136 136 virtual void HydrologyEPLGetMask(Vector<IssmDouble>* mask)=0; 137 137 virtual void HydrologyEPLGetActive(Vector<IssmDouble>* active)=0; 138 virtual void ComputeEPLThickness(void)=0; 138 139 #endif 139 140 -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r16590 r16600 10845 10845 } 10846 10846 /*}}}*/ 10847 /*FUNCTION Penta::ComputeEPLThickness{{{*/ 10848 void Penta::ComputeEPLThickness(void){ 10849 10850 if (!IsOnBed())return; 10851 10852 Tria* tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1. 10853 tria->ComputeEPLThickness(); 10854 delete tria->material; delete tria; 10855 10856 } 10857 /*}}}*/ 10847 10858 /*FUNCTION Penta::InputUpdateFromSolutionHydrologyDCInefficient{{{*/ 10848 10859 void Penta::InputUpdateFromSolutionHydrologyDCInefficient(IssmDouble* solution){ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r16589 r16600 323 323 void HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask); 324 324 void InputUpdateFromSolutionHydrologyDCInefficient(IssmDouble* solution); 325 void ComputeEPLThickness(void); 325 326 #endif 326 327 -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r16589 r16600 101 101 void HydrologyEPLGetActive(Vector<IssmDouble>* active_vec){_error_("not implemented yet");}; 102 102 void HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask){_error_("not implemented yet");}; 103 void ComputeEPLThickness(void){_error_("not implemented yet");}; 103 104 #endif 104 105 void GetSolutionFromInputs(Vector<IssmDouble>* solution){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r16593 r16600 7224 7224 } 7225 7225 /*}}}*/ 7226 /*FUNCTION Tria::ComputeEPLThickness{{{*/ 7227 void Tria::ComputeEPLThickness(void){ 7228 } 7229 /*}}}*/ 7230 7231 7226 7232 #endif 7227 7233 -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r16589 r16600 303 303 void HydrologyEPLGetActive(Vector<IssmDouble>* active_vec); 304 304 void HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask); 305 void ComputeEPLThickness(void); 305 306 bool AllActive(void); 306 307 bool AnyActive(void); -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r16591 r16600 1412 1412 } 1413 1413 /*}}}*/ 1414 void FemModel::HydrologyEPLThicknessx(void){ /*{{{*/ 1415 1416 for (int i=0;i<elements->Size();i++){ 1417 Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 1418 element->ComputeEPLThickness(); 1419 } 1420 } 1421 /*}}}*/ 1414 1422 #endif -
issm/trunk-jpl/src/c/classes/FemModel.h
r16591 r16600 102 102 void HydrologyTransferx(void); 103 103 void HydrologyEPLupdateDomainx(void); 104 void HydrologyEPLThicknessx(void); 104 105 #endif 105 106 }; -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
r16228 r16600 640 640 641 641 // The penalty is stable if it doesn't change during two consecutive iterations. 642 int unstable =0;642 int unstable=0; 643 643 int new_active; 644 int penalty_lock; 644 645 IssmDouble pressure; 645 646 IssmDouble h; … … 656 657 element->GetInputValue(&h,node,SedimentHeadEnum); 657 658 element->GetHydrologyDCInefficientHmax(&h_max,node); 659 parameters->FindParam(&penalty_lock,HydrologydcPenaltyLockEnum); 660 658 661 if (h>h_max) 659 662 new_active=1; … … 661 664 new_active=0; 662 665 663 if(this->active==new_active) 664 unstable=0; 665 else 666 unstable=1; 667 666 if(this->active==new_active){ 667 unstable=0; 668 } 669 else{ 670 unstable=1; 671 if(penalty_lock)zigzag_counter++; 672 } 673 674 /*If penalty keeps zigzagging more than penalty_lock times: */ 675 if(penalty_lock){ 676 if(zigzag_counter>penalty_lock){ 677 unstable=0; 678 active=1; 679 } 680 } 668 681 /*Set penalty flag*/ 669 682 this->active=new_active; -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r16592 r16600 121 121 HydrologydcLeakageFactorEnum, 122 122 HydrologydcPenaltyFactorEnum, 123 HydrologydcPenaltyLockEnum, 123 124 HydrologyLayerEnum, 124 125 HydrologySedimentEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r16592 r16600 129 129 case HydrologydcLeakageFactorEnum : return "HydrologydcLeakageFactor"; 130 130 case HydrologydcPenaltyFactorEnum : return "HydrologydcPenaltyFactor"; 131 case HydrologydcPenaltyLockEnum : return "HydrologydcPenaltyLock"; 131 132 case HydrologyLayerEnum : return "HydrologyLayer"; 132 133 case HydrologySedimentEnum : return "HydrologySediment"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r16592 r16600 129 129 else if (strcmp(name,"HydrologydcLeakageFactor")==0) return HydrologydcLeakageFactorEnum; 130 130 else if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum; 131 else if (strcmp(name,"HydrologydcPenaltyLock")==0) return HydrologydcPenaltyLockEnum; 131 132 else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum; 132 133 else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum; … … 136 137 else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum; 137 138 else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum; 138 else if (strcmp(name,"InversionCostFunctionThreshold")==0) return InversionCostFunctionThresholdEnum;139 139 else stage=2; 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 142 if (strcmp(name,"InversionCostFunctionThreshold")==0) return InversionCostFunctionThresholdEnum; 143 else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 143 144 else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum; 144 145 else if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum; … … 259 260 else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum; 260 261 else if (strcmp(name,"Surface")==0) return SurfaceEnum; 261 else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum; 265 if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum; 266 else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum; 266 267 else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum; 267 268 else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum; … … 382 383 else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum; 383 384 else if (strcmp(name,"FileParam")==0) return FileParamEnum; 384 else if (strcmp(name,"Input")==0) return InputEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"IntInput")==0) return IntInputEnum; 388 if (strcmp(name,"Input")==0) return InputEnum; 389 else if (strcmp(name,"IntInput")==0) return IntInputEnum; 389 390 else if (strcmp(name,"InputToExtrude")==0) return InputToExtrudeEnum; 390 391 else if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum; … … 505 506 else if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum; 506 507 else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum; 507 else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum; 511 if (strcmp(name,"StressTensor")==0) return StressTensorEnum; 512 else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum; 512 513 else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum; 513 514 else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum; -
issm/trunk-jpl/src/m/classes/hydrologydc.m
r15414 r16600 9 9 isefficientlayer = 0; 10 10 penalty_factor = 0; 11 penalty_lock = 0; 11 12 rel_tol = 0; 12 13 sedimentlimit_flag = 0; … … 107 108 fielddisplay(obj,'isefficientlayer','do we use an efficient drainage system [1: true; 0: false]'); 108 109 fielddisplay(obj,'penalty_factor','exponent of the value used in the penalisation method [dimensionless]'); 110 fielddisplay(obj,'penalty_lock','stabilize unstable constraints that keep zigzagging after n iteration (default is 0, no stabilization)'); 109 111 fielddisplay(obj,'rel_tol','tolerance of the nonlinear iteration for the transfer between layers [dimensionless]'); 110 112 fielddisplay(obj,'sedimentlimit_flag','what kind of upper limit is applied for the inefficient layer'); … … 147 149 WriteData(fid,'object',obj,'fieldname','isefficientlayer','format','Boolean'); 148 150 WriteData(fid,'object',obj,'fieldname','penalty_factor','format','Double'); 151 WriteData(fid,'object',obj,'fieldname','penalty_lock','format','Integer'); 149 152 WriteData(fid,'object',obj,'fieldname','rel_tol','format','Double'); 150 153 WriteData(fid,'object',obj,'fieldname','sedimentlimit_flag','format','Integer'); -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r16592 r16600 121 121 def HydrologydcLeakageFactorEnum(): return StringToEnum("HydrologydcLeakageFactor")[0] 122 122 def HydrologydcPenaltyFactorEnum(): return StringToEnum("HydrologydcPenaltyFactor")[0] 123 def HydrologydcPenaltyLockEnum(): return StringToEnum("HydrologydcPenaltyLock")[0] 123 124 def HydrologyLayerEnum(): return StringToEnum("HydrologyLayer")[0] 124 125 def HydrologySedimentEnum(): return StringToEnum("HydrologySediment")[0]
Note:
See TracChangeset
for help on using the changeset viewer.