Changeset 18093 for issm/trunk-jpl/src
- Timestamp:
- 06/03/14 14:59:43 (11 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 16 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r18009 r18093 317 317 ./modules/InputUpdateFromVectorx/InputUpdateFromVectorx.h\ 318 318 ./modules/InputUpdateFromVectorx/InputUpdateFromVectorx.cpp\ 319 ./modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h\ 320 ./modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp\ 319 321 ./modules/ConfigureObjectsx/ConfigureObjectsx.h\ 320 322 ./modules/ConfigureObjectsx/ConfigureObjectsx.cpp\ -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r18078 r18093 892 892 } 893 893 /*}}}*/ 894 void Element::LinearFloatingiceMeltingRate(){/*{{{*/ 895 896 int numvertices = this->GetNumberOfVertices(); 897 IssmDouble deepwaterel,upperwaterel,deepwatermelt; 898 IssmDouble* base = xNew<IssmDouble>(numvertices); 899 IssmDouble* values = xNew<IssmDouble>(numvertices); 900 901 parameters->FindParam(&deepwaterel,BasalforcingsDeepwaterElevationEnum); 902 parameters->FindParam(&upperwaterel,BasalforcingsUpperwaterElevationEnum); 903 parameters->FindParam(&deepwatermelt,BasalforcingsDeepwaterMeltingRateEnum); 904 905 this->GetInputListOnVertices(base,BaseEnum); 906 for(int i=0;i<numvertices;i++){ 907 if(base[i]>upperwaterel) values[i]=0; 908 else if (base[i]<deepwaterel) values[i]=deepwatermelt; 909 else values[i]=deepwatermelt*(base[i]-upperwaterel)/(deepwaterel-upperwaterel); 910 } 911 912 this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum); 913 914 }/*}}}*/ 894 915 ElementVector* Element::NewElementVector(int approximation_enum){/*{{{*/ 895 916 return new ElementVector(nodes,this->GetNumberOfNodes(),this->parameters,approximation_enum); -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r18078 r18093 113 113 bool IsInput(int name); 114 114 bool IsFloating(); 115 void LinearFloatingiceMeltingRate(); 115 116 ElementVector* NewElementVector(int approximation_enum=NoneApproximationEnum); 116 117 ElementMatrix* NewElementMatrix(int approximation_enum=NoneApproximationEnum); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r18068 r18093 19 19 20 20 int i,j,m,k; 21 int numoutputs,materialtype,smb_model ;21 int numoutputs,materialtype,smb_model,basalforcing_model; 22 22 char** requestedoutputs = NULL; 23 23 IssmDouble time; … … 133 133 } 134 134 135 /*Basal forcing parameters*/ 136 parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsEnum)); 137 iomodel->Constant(&basalforcing_model,BasalforcingsEnum); 138 switch(basalforcing_model){ 139 case FloatingMeltRateEnum: 140 /*Nothing to add to parameters*/ 141 break; 142 case LinearFloatingMeltRateEnum: 143 parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsDeepwaterMeltingRateEnum)); 144 parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsDeepwaterElevationEnum)); 145 parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperwaterElevationEnum)); 146 break; 147 default: 148 _error_("Basal forcing model "<<EnumToStringx(smb_model)<<" not supported yet"); 149 } 150 135 151 /*some parameters that did not come with the iomodel: */ 136 152 parameters->AddObject(new IntParam(SolutionTypeEnum,solution_type)); -
issm/trunk-jpl/src/c/modules/modules.h
r17995 r18093 54 54 #include "./Kml2Expx/Kml2Expx.h" 55 55 #include "./Krigingx/Krigingx.h" 56 #include "./FloatingiceMeltingRatex/FloatingiceMeltingRatex.h" 56 57 #include "./Mergesolutionfromftogx/Mergesolutionfromftogx.h" 57 58 #include "./MeshPartitionx/MeshPartitionx.h" -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r18068 r18093 38 38 BalancethicknessStabilizationEnum, 39 39 BalancethicknessThickeningRateEnum, 40 BasalforcingsEnum, 40 41 BasalforcingsGeothermalfluxEnum, 41 42 BasalforcingsGroundediceMeltingRateEnum, … … 44 45 BasalforcingsDeepwaterElevationEnum, 45 46 BasalforcingsUpperwaterElevationEnum, 47 FloatingMeltRateEnum, 48 LinearFloatingMeltRateEnum, 46 49 BedEnum, 47 50 BaseEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r18068 r18093 46 46 case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization"; 47 47 case BalancethicknessThickeningRateEnum : return "BalancethicknessThickeningRate"; 48 case BasalforcingsEnum : return "Basalforcings"; 48 49 case BasalforcingsGeothermalfluxEnum : return "BasalforcingsGeothermalflux"; 49 50 case BasalforcingsGroundediceMeltingRateEnum : return "BasalforcingsGroundediceMeltingRate"; … … 52 53 case BasalforcingsDeepwaterElevationEnum : return "BasalforcingsDeepwaterElevation"; 53 54 case BasalforcingsUpperwaterElevationEnum : return "BasalforcingsUpperwaterElevation"; 55 case FloatingMeltRateEnum : return "FloatingMeltRate"; 56 case LinearFloatingMeltRateEnum : return "LinearFloatingMeltRate"; 54 57 case BedEnum : return "Bed"; 55 58 case BaseEnum : return "Base"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r18068 r18093 46 46 else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum; 47 47 else if (strcmp(name,"BalancethicknessThickeningRate")==0) return BalancethicknessThickeningRateEnum; 48 else if (strcmp(name,"Basalforcings")==0) return BasalforcingsEnum; 48 49 else if (strcmp(name,"BasalforcingsGeothermalflux")==0) return BasalforcingsGeothermalfluxEnum; 49 50 else if (strcmp(name,"BasalforcingsGroundediceMeltingRate")==0) return BasalforcingsGroundediceMeltingRateEnum; … … 52 53 else if (strcmp(name,"BasalforcingsDeepwaterElevation")==0) return BasalforcingsDeepwaterElevationEnum; 53 54 else if (strcmp(name,"BasalforcingsUpperwaterElevation")==0) return BasalforcingsUpperwaterElevationEnum; 55 else if (strcmp(name,"FloatingMeltRate")==0) return FloatingMeltRateEnum; 56 else if (strcmp(name,"LinearFloatingMeltRate")==0) return LinearFloatingMeltRateEnum; 54 57 else if (strcmp(name,"Bed")==0) return BedEnum; 55 58 else if (strcmp(name,"Base")==0) return BaseEnum; … … 134 137 else if (strcmp(name,"HydrologydcSedimentlimit")==0) return HydrologydcSedimentlimitEnum; 135 138 else if (strcmp(name,"HydrologydcTransferFlag")==0) return HydrologydcTransferFlagEnum; 136 else if (strcmp(name,"HydrologydcLeakageFactor")==0) return HydrologydcLeakageFactorEnum;137 else if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum;138 else if (strcmp(name,"HydrologydcPenaltyLock")==0) return HydrologydcPenaltyLockEnum;139 139 else stage=2; 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum; 142 if (strcmp(name,"HydrologydcLeakageFactor")==0) return HydrologydcLeakageFactorEnum; 143 else if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum; 144 else if (strcmp(name,"HydrologydcPenaltyLock")==0) return HydrologydcPenaltyLockEnum; 145 else if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum; 143 146 else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum; 144 147 else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum; … … 257 260 else if (strcmp(name,"QmuMassFluxSegmentsPresent")==0) return QmuMassFluxSegmentsPresentEnum; 258 261 else if (strcmp(name,"QmuNumberofpartitions")==0) return QmuNumberofpartitionsEnum; 259 else if (strcmp(name,"QmuNumberofresponses")==0) return QmuNumberofresponsesEnum;260 else if (strcmp(name,"QmuPartition")==0) return QmuPartitionEnum;261 else if (strcmp(name,"QmuResponsedescriptors")==0) return QmuResponsedescriptorsEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"QmuVariabledescriptors")==0) return QmuVariabledescriptorsEnum; 265 if (strcmp(name,"QmuNumberofresponses")==0) return QmuNumberofresponsesEnum; 266 else if (strcmp(name,"QmuPartition")==0) return QmuPartitionEnum; 267 else if (strcmp(name,"QmuResponsedescriptors")==0) return QmuResponsedescriptorsEnum; 268 else if (strcmp(name,"QmuVariabledescriptors")==0) return QmuVariabledescriptorsEnum; 266 269 else if (strcmp(name,"QmuMaterialsRheologyB")==0) return QmuMaterialsRheologyBEnum; 267 270 else if (strcmp(name,"RiftsNumrifts")==0) return RiftsNumriftsEnum; … … 380 383 else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; 381 384 else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum; 382 else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;383 else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;384 else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum; 388 if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum; 389 else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum; 390 else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum; 391 else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum; 389 392 else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum; 390 393 else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum; … … 503 506 else if (strcmp(name,"Friction")==0) return FrictionEnum; 504 507 else if (strcmp(name,"Internal")==0) return InternalEnum; 505 else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;506 else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;507 else if (strcmp(name,"Misfit")==0) return MisfitEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"Pressure")==0) return PressureEnum; 511 if (strcmp(name,"MassFlux")==0) return MassFluxEnum; 512 else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum; 513 else if (strcmp(name,"Misfit")==0) return MisfitEnum; 514 else if (strcmp(name,"Pressure")==0) return PressureEnum; 512 515 else if (strcmp(name,"PressurePicard")==0) return PressurePicardEnum; 513 516 else if (strcmp(name,"QmuPressure")==0) return QmuPressureEnum; … … 626 629 else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum; 627 630 else if (strcmp(name,"MassfluxatgateSegments")==0) return MassfluxatgateSegmentsEnum; 628 else if (strcmp(name,"MisfitName")==0) return MisfitNameEnum;629 else if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;630 else if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum; 634 if (strcmp(name,"MisfitName")==0) return MisfitNameEnum; 635 else if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum; 636 else if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum; 637 else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum; 635 638 else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum; 636 639 else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum; -
issm/trunk-jpl/src/m/classes/basalforcings.m
r18068 r18093 70 70 yts=365.0*24.0*3600.0; 71 71 72 WriteData(fid,'enum',BasalforcingsEnum(),'data',FloatingMeltRateEnum(),'format','Integer'); 72 73 WriteData(fid,'object',obj,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1) 73 74 WriteData(fid,'object',obj,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1) -
issm/trunk-jpl/src/m/classes/basalforcings.py
r18068 r18093 66 66 yts=365.0*24.0*3600.0 67 67 68 WriteData(fid,'enum',BasalforcingsEnum(),'data',FloatingMeltRateEnum(),'format','Integer'); 68 69 WriteData(fid,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1) 69 70 WriteData(fid,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1) -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r18068 r18093 38 38 def BalancethicknessStabilizationEnum(): return StringToEnum("BalancethicknessStabilization")[0] 39 39 def BalancethicknessThickeningRateEnum(): return StringToEnum("BalancethicknessThickeningRate")[0] 40 def BasalforcingsEnum(): return StringToEnum("Basalforcings")[0] 40 41 def BasalforcingsGeothermalfluxEnum(): return StringToEnum("BasalforcingsGeothermalflux")[0] 41 42 def BasalforcingsGroundediceMeltingRateEnum(): return StringToEnum("BasalforcingsGroundediceMeltingRate")[0] … … 44 45 def BasalforcingsDeepwaterElevationEnum(): return StringToEnum("BasalforcingsDeepwaterElevation")[0] 45 46 def BasalforcingsUpperwaterElevationEnum(): return StringToEnum("BasalforcingsUpperwaterElevation")[0] 47 def FloatingMeltRateEnum(): return StringToEnum("FloatingMeltRate")[0] 48 def LinearFloatingMeltRateEnum(): return StringToEnum("LinearFloatingMeltRate")[0] 46 49 def BedEnum(): return StringToEnum("Bed")[0] 47 50 def BaseEnum(): return StringToEnum("Base")[0]
Note:
See TracChangeset
for help on using the changeset viewer.