Changeset 27450
- Timestamp:
- 12/03/22 09:47:21 (2 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r27165 r27450 350 350 /*Retrieve stochastic water pressure and compute ice pressure*/ 351 351 IssmDouble p_ice,p_water,Neff_limit; 352 element->GetInputValue(&p_water,gauss,Friction CoulombWaterPressureEnum);352 element->GetInputValue(&p_water,gauss,FrictionWaterPressureEnum); 353 353 element->parameters->FindParam(&Neff_limit,FrictionEffectivePressureLimitEnum); 354 354 p_ice = IcePressure(gauss); … … 783 783 /*Retrieve stochastic water pressure and compute ice pressure*/ 784 784 IssmDouble p_ice,p_water,Neff_limit; 785 element->GetInputValue(&p_water,gauss,Friction SchoofWaterPressureEnum);785 element->GetInputValue(&p_water,gauss,FrictionWaterPressureEnum); 786 786 element->parameters->FindParam(&Neff_limit,FrictionEffectivePressureLimitEnum); 787 787 p_ice = IcePressure(gauss); -
issm/trunk-jpl/src/c/modules/StochasticForcingx/StochasticForcingx.cpp
r27439 r27450 213 213 } 214 214 break; 215 case FrictionSchoofWaterPressureEnum:216 /*Specify that WaterPressure is stochastic*/217 femmodel->parameters->SetParam(true,StochasticForcingIsWaterPressureEnum);218 for(Object* &object:femmodel->elements->objects){219 Element* element = xDynamicCast<Element*>(object);220 int numvertices = element->GetNumberOfVertices();221 IssmDouble p_water_deterministic[numvertices];222 IssmDouble p_water[numvertices];223 element->GetInputValue(&dimensionid,StochasticForcingDefaultIdEnum);224 element->SubglacialWaterPressure(FrictionSchoofWaterPressureEnum);225 element->GetInputListOnVertices(&p_water_deterministic[0],FrictionSchoofWaterPressureEnum);226 for(int i=0;i<numvertices;i++) p_water[i] = p_water_deterministic[i] + noisefield[dimensionid];227 element->AddInput(FrictionSchoofWaterPressureEnum,p_water,P1DGEnum);228 }229 break;230 case FrictionCoulombWaterPressureEnum:231 /*Specify that WaterPressure is stochastic*/232 femmodel->parameters->SetParam(true,StochasticForcingIsWaterPressureEnum);233 for(Object* &object:femmodel->elements->objects){234 Element* element = xDynamicCast<Element*>(object);235 int numvertices = element->GetNumberOfVertices();236 IssmDouble p_water_deterministic[numvertices];237 IssmDouble p_water[numvertices];238 element->GetInputValue(&dimensionid,StochasticForcingDefaultIdEnum);239 element->SubglacialWaterPressure(FrictionCoulombWaterPressureEnum);240 element->GetInputListOnVertices(&p_water_deterministic[0],FrictionCoulombWaterPressureEnum);241 for(int i=0;i<numvertices;i++) p_water[i] = p_water_deterministic[i] + noisefield[dimensionid];242 element->AddInput(FrictionCoulombWaterPressureEnum,p_water,P1DGEnum);243 }244 break;245 215 default: 246 216 _error_("Field "<<EnumToStringx(fields[j])<<" does not support stochasticity yet."); -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r27386 r27450 247 247 syn keyword cConstant HydrologyAveragingEnum 248 248 syn keyword cConstant HydrologyCavitySpacingEnum 249 syn keyword cConstant HydrologyChannelConductivityEnum250 249 syn keyword cConstant HydrologyChannelSheetWidthEnum 251 250 syn keyword cConstant HydrologyEnglacialVoidRatioEnum … … 796 795 syn keyword cConstant FrictionCoefficientEnum 797 796 syn keyword cConstant FrictionCoefficientcoulombEnum 798 syn keyword cConstant FrictionCoulombWaterPressureEnum799 797 syn keyword cConstant FrictionEffectivePressureEnum 800 798 syn keyword cConstant FrictionMEnum … … 804 802 syn keyword cConstant FrictionSedimentCompressibilityCoefficientEnum 805 803 syn keyword cConstant FrictionTillFrictionAngleEnum 806 syn keyword cConstant FrictionSchoofWaterPressureEnum807 804 syn keyword cConstant FrictionWaterLayerEnum 808 805 syn keyword cConstant FrictionWaterPressureEnum … … 823 820 syn keyword cConstant HydrologyBumpHeightEnum 824 821 syn keyword cConstant HydrologyBumpSpacingEnum 822 syn keyword cConstant HydrologyChannelConductivityEnum 825 823 syn keyword cConstant HydrologydcBasalMoulinInputEnum 826 824 syn keyword cConstant HydrologydcEplThicknessEnum … … 1842 1840 syn keyword cType FreeSurfaceTopAnalysis 1843 1841 syn keyword cType GLheightadvectionAnalysis 1842 syn keyword cType HydrologyArmapwAnalysis 1844 1843 syn keyword cType HydrologyDCEfficientAnalysis 1845 1844 syn keyword cType HydrologyDCInefficientAnalysis -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r27391 r27450 791 791 FrictionCoefficientEnum, 792 792 FrictionCoefficientcoulombEnum, 793 FrictionCoulombWaterPressureEnum,794 793 FrictionEffectivePressureEnum, 795 794 FrictionMEnum, … … 799 798 FrictionSedimentCompressibilityCoefficientEnum, 800 799 FrictionTillFrictionAngleEnum, 801 FrictionSchoofWaterPressureEnum,802 800 FrictionWaterLayerEnum, 803 801 FrictionWaterPressureEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r27392 r27450 797 797 case FrictionCoefficientEnum : return "FrictionCoefficient"; 798 798 case FrictionCoefficientcoulombEnum : return "FrictionCoefficientcoulomb"; 799 case FrictionCoulombWaterPressureEnum : return "FrictionCoulombWaterPressure";800 799 case FrictionEffectivePressureEnum : return "FrictionEffectivePressure"; 801 800 case FrictionMEnum : return "FrictionM"; … … 805 804 case FrictionSedimentCompressibilityCoefficientEnum : return "FrictionSedimentCompressibilityCoefficient"; 806 805 case FrictionTillFrictionAngleEnum : return "FrictionTillFrictionAngle"; 807 case FrictionSchoofWaterPressureEnum : return "FrictionSchoofWaterPressure";808 806 case FrictionWaterLayerEnum : return "FrictionWaterLayer"; 809 807 case FrictionWaterPressureEnum : return "FrictionWaterPressure"; -
issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim
r27386 r27450 240 240 syn keyword juliaConstC HydrologyAveragingEnum 241 241 syn keyword juliaConstC HydrologyCavitySpacingEnum 242 syn keyword juliaConstC HydrologyChannelConductivityEnum243 242 syn keyword juliaConstC HydrologyChannelSheetWidthEnum 244 243 syn keyword juliaConstC HydrologyEnglacialVoidRatioEnum … … 789 788 syn keyword juliaConstC FrictionCoefficientEnum 790 789 syn keyword juliaConstC FrictionCoefficientcoulombEnum 791 syn keyword juliaConstC FrictionCoulombWaterPressureEnum792 790 syn keyword juliaConstC FrictionEffectivePressureEnum 793 791 syn keyword juliaConstC FrictionMEnum … … 797 795 syn keyword juliaConstC FrictionSedimentCompressibilityCoefficientEnum 798 796 syn keyword juliaConstC FrictionTillFrictionAngleEnum 799 syn keyword juliaConstC FrictionSchoofWaterPressureEnum800 797 syn keyword juliaConstC FrictionWaterLayerEnum 801 798 syn keyword juliaConstC FrictionWaterPressureEnum … … 816 813 syn keyword juliaConstC HydrologyBumpHeightEnum 817 814 syn keyword juliaConstC HydrologyBumpSpacingEnum 815 syn keyword juliaConstC HydrologyChannelConductivityEnum 818 816 syn keyword juliaConstC HydrologydcBasalMoulinInputEnum 819 817 syn keyword juliaConstC HydrologydcEplThicknessEnum -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r27392 r27450 815 815 else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum; 816 816 else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum; 817 else if (strcmp(name,"FrictionCoulombWaterPressure")==0) return FrictionCoulombWaterPressureEnum;818 817 else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum; 819 818 else if (strcmp(name,"FrictionM")==0) return FrictionMEnum; … … 823 822 else if (strcmp(name,"FrictionSedimentCompressibilityCoefficient")==0) return FrictionSedimentCompressibilityCoefficientEnum; 824 823 else if (strcmp(name,"FrictionTillFrictionAngle")==0) return FrictionTillFrictionAngleEnum; 825 else if (strcmp(name,"FrictionSchoofWaterPressure")==0) return FrictionSchoofWaterPressureEnum;826 824 else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum; 827 825 else if (strcmp(name,"FrictionWaterPressure")==0) return FrictionWaterPressureEnum; … … 875 873 else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum; 876 874 else if (strcmp(name,"HydrologyMaskNodeActivation")==0) return HydrologyMaskNodeActivationEnum; 875 else if (strcmp(name,"Ice")==0) return IceEnum; 876 else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum; 877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Ice")==0) return IceEnum; 881 else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum; 882 else if (strcmp(name,"Input")==0) return InputEnum; 880 if (strcmp(name,"Input")==0) return InputEnum; 883 881 else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 884 882 else if (strcmp(name,"InversionSurfaceObs")==0) return InversionSurfaceObsEnum; … … 998 996 else if (strcmp(name,"SealevelchangeAzimuthIndexHydro")==0) return SealevelchangeAzimuthIndexHydroEnum; 999 997 else if (strcmp(name,"SealevelchangeViscousRSL")==0) return SealevelchangeViscousRSLEnum; 998 else if (strcmp(name,"SealevelchangeViscousSG")==0) return SealevelchangeViscousSGEnum; 999 else if (strcmp(name,"SealevelchangeViscousU")==0) return SealevelchangeViscousUEnum; 1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"SealevelchangeViscousSG")==0) return SealevelchangeViscousSGEnum; 1004 else if (strcmp(name,"SealevelchangeViscousU")==0) return SealevelchangeViscousUEnum; 1005 else if (strcmp(name,"SealevelchangeViscousN")==0) return SealevelchangeViscousNEnum; 1003 if (strcmp(name,"SealevelchangeViscousN")==0) return SealevelchangeViscousNEnum; 1006 1004 else if (strcmp(name,"SealevelchangeViscousE")==0) return SealevelchangeViscousEEnum; 1007 1005 else if (strcmp(name,"CouplingTransferCount")==0) return CouplingTransferCountEnum; … … 1121 1119 else if (strcmp(name,"SmbVz")==0) return SmbVzEnum; 1122 1120 else if (strcmp(name,"SmbW")==0) return SmbWEnum; 1121 else if (strcmp(name,"SmbWAdd")==0) return SmbWAddEnum; 1122 else if (strcmp(name,"SmbWini")==0) return SmbWiniEnum; 1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"SmbWAdd")==0) return SmbWAddEnum; 1127 else if (strcmp(name,"SmbWini")==0) return SmbWiniEnum; 1128 else if (strcmp(name,"SmbZMax")==0) return SmbZMaxEnum; 1126 if (strcmp(name,"SmbZMax")==0) return SmbZMaxEnum; 1129 1127 else if (strcmp(name,"SmbZMin")==0) return SmbZMinEnum; 1130 1128 else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum; … … 1244 1242 else if (strcmp(name,"Outputdefinition30")==0) return Outputdefinition30Enum; 1245 1243 else if (strcmp(name,"Outputdefinition31")==0) return Outputdefinition31Enum; 1244 else if (strcmp(name,"Outputdefinition32")==0) return Outputdefinition32Enum; 1245 else if (strcmp(name,"Outputdefinition33")==0) return Outputdefinition33Enum; 1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"Outputdefinition32")==0) return Outputdefinition32Enum; 1250 else if (strcmp(name,"Outputdefinition33")==0) return Outputdefinition33Enum; 1251 else if (strcmp(name,"Outputdefinition34")==0) return Outputdefinition34Enum; 1249 if (strcmp(name,"Outputdefinition34")==0) return Outputdefinition34Enum; 1252 1250 else if (strcmp(name,"Outputdefinition35")==0) return Outputdefinition35Enum; 1253 1251 else if (strcmp(name,"Outputdefinition36")==0) return Outputdefinition36Enum; … … 1367 1365 else if (strcmp(name,"Cfsurfacesquare")==0) return CfsurfacesquareEnum; 1368 1366 else if (strcmp(name,"Cflevelsetmisfit")==0) return CflevelsetmisfitEnum; 1367 else if (strcmp(name,"Channel")==0) return ChannelEnum; 1368 else if (strcmp(name,"ChannelArea")==0) return ChannelAreaEnum; 1369 1369 else stage=12; 1370 1370 } 1371 1371 if(stage==12){ 1372 if (strcmp(name,"Channel")==0) return ChannelEnum; 1373 else if (strcmp(name,"ChannelArea")==0) return ChannelAreaEnum; 1374 else if (strcmp(name,"ChannelAreaOld")==0) return ChannelAreaOldEnum; 1372 if (strcmp(name,"ChannelAreaOld")==0) return ChannelAreaOldEnum; 1375 1373 else if (strcmp(name,"ChannelDischarge")==0) return ChannelDischargeEnum; 1376 1374 else if (strcmp(name,"Closed")==0) return ClosedEnum; … … 1490 1488 else if (strcmp(name,"IntMatExternalResult")==0) return IntMatExternalResultEnum; 1491 1489 else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum; 1490 else if (strcmp(name,"IntParam")==0) return IntParamEnum; 1491 else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum; 1492 1492 else stage=13; 1493 1493 } 1494 1494 if(stage==13){ 1495 if (strcmp(name,"IntParam")==0) return IntParamEnum; 1496 else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum; 1497 else if (strcmp(name,"Inputs")==0) return InputsEnum; 1495 if (strcmp(name,"Inputs")==0) return InputsEnum; 1498 1496 else if (strcmp(name,"Internal")==0) return InternalEnum; 1499 1497 else if (strcmp(name,"Intersect")==0) return IntersectEnum; … … 1613 1611 else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum; 1614 1612 else if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum; 1613 else if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum; 1614 else if (strcmp(name,"Regular")==0) return RegularEnum; 1615 1615 else stage=14; 1616 1616 } 1617 1617 if(stage==14){ 1618 if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum; 1619 else if (strcmp(name,"Regular")==0) return RegularEnum; 1620 else if (strcmp(name,"RecoveryAnalysis")==0) return RecoveryAnalysisEnum; 1618 if (strcmp(name,"RecoveryAnalysis")==0) return RecoveryAnalysisEnum; 1621 1619 else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum; 1622 1620 else if (strcmp(name,"SamplingAnalysis")==0) return SamplingAnalysisEnum; -
issm/trunk-jpl/src/m/classes/stochasticforcing.m
r27366 r27450 95 95 end 96 96 if(contains(field,'WaterPressure')) 97 mdname = structstoch.mdnames(find(strcmp(structstoch.fields,char(field)))); 98 if~(isequal(class(md.friction),char(mdname))) 99 error('md.friction does not agree with stochasticforcing field %s', char(field)); 100 end 97 98 mdnames = structstoch.mdnames(find(strcmp(structstoch.fields,char(field)))); 99 found = 0; 100 for(ii=[1:numel(mdnames)]) 101 if(isequal(class(md.friction),char(mdnames{ii}))) found=1; end 102 end 103 if(found==0) 104 error('md.friction does not agree with stochasticforcing field %s', char(field)); 105 end 101 106 if(strcmp(class(md.friction),'friction') || strcmp(class(md.friction),'frictionschoof') || strcmp(class(md.friction),'frictioncoulomb')) 102 107 if(md.friction.coupling~=0 && md.friction.coupling~=1 && md.friction.coupling~=2) … … 306 311 'FloatingMeltRate',... 307 312 'FrictionWaterPressure',... 308 'Friction CoulombWaterPressure',...309 'Friction SchoofWaterPressure',...313 'FrictionWaterPressure',... 314 'FrictionWaterPressure',... 310 315 'FrontalForcingsRignotarma',... 311 316 'FrontalForcingsSubglacialDischargearma',... -
issm/trunk-jpl/src/m/classes/stochasticforcing.py
r27366 r27450 109 109 raise TypeError('md.basalforcings does not agree with stochasticforcing field {}'.format(field)) 110 110 if 'WaterPressure' in field: 111 mdname = structstoch[field] 112 if (type(md.friction).__name__ != mdname): 111 #mdname = structstoch[field] 112 mdnames = ['friction','frictioncoulomb','frictionschoof'] 113 found = 0 114 for ii in range(len(mdnames)): 115 if (type(md.friction).__name__ == mdnames[ii]): 116 found = 1 117 if(found==0): 113 118 raise TypeError('md.friction does not agree with stochasticforcing field {}'.format(field)) 119 #if (type(md.friction).__name__ != mdname): 120 # raise TypeError('md.friction does not agree with stochasticforcing field {}'.format(field)) 114 121 if (type(md.friction).__name__=='friction' or type(md.friction).__name__=='frictionschoof' or type(md.friction).__name__=='frictioncoulomb'): 115 122 if md.friction.coupling not in[0, 1, 2]: … … 260 267 'FloatingMeltRate': 'basalforcings', 261 268 'FrictionWaterPressure': 'friction', 262 'Friction CoulombWaterPressure': 'frictioncoulomb',263 'Friction SchoofWaterPressure': 'frictionschoof',269 'FrictionWaterPressure': 'frictioncoulomb', 270 'FrictionWaterPressure': 'frictionschoof', 264 271 'FrontalForcingsRignotarma': 'frontalforcingsrignotarma', 265 272 'FrontalForcingsSubglacialDischargearma': 'frontalforcingsrignotarma',
Note:
See TracChangeset
for help on using the changeset viewer.