Changeset 27450


Ignore:
Timestamp:
12/03/22 09:47:21 (2 years ago)
Author:
vverjans
Message:

CHG merging all FrictionWaterEnums because they never overlap

Location:
issm/trunk-jpl/src
Files:
9 edited

Legend:

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

    r27165 r27450  
    350350                /*Retrieve stochastic water pressure and compute ice pressure*/
    351351                IssmDouble p_ice,p_water,Neff_limit;
    352                 element->GetInputValue(&p_water,gauss,FrictionCoulombWaterPressureEnum);
     352                element->GetInputValue(&p_water,gauss,FrictionWaterPressureEnum);
    353353                element->parameters->FindParam(&Neff_limit,FrictionEffectivePressureLimitEnum);
    354354                p_ice = IcePressure(gauss);
     
    783783                /*Retrieve stochastic water pressure and compute ice pressure*/
    784784                IssmDouble p_ice,p_water,Neff_limit;
    785                 element->GetInputValue(&p_water,gauss,FrictionSchoofWaterPressureEnum);
     785                element->GetInputValue(&p_water,gauss,FrictionWaterPressureEnum);
    786786                element->parameters->FindParam(&Neff_limit,FrictionEffectivePressureLimitEnum);
    787787                p_ice = IcePressure(gauss);
  • issm/trunk-jpl/src/c/modules/StochasticForcingx/StochasticForcingx.cpp

    r27439 r27450  
    213213                                        }
    214214                                        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;
    245215                                default:
    246216                                        _error_("Field "<<EnumToStringx(fields[j])<<" does not support stochasticity yet.");
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r27386 r27450  
    247247syn keyword cConstant HydrologyAveragingEnum
    248248syn keyword cConstant HydrologyCavitySpacingEnum
    249 syn keyword cConstant HydrologyChannelConductivityEnum
    250249syn keyword cConstant HydrologyChannelSheetWidthEnum
    251250syn keyword cConstant HydrologyEnglacialVoidRatioEnum
     
    796795syn keyword cConstant FrictionCoefficientEnum
    797796syn keyword cConstant FrictionCoefficientcoulombEnum
    798 syn keyword cConstant FrictionCoulombWaterPressureEnum
    799797syn keyword cConstant FrictionEffectivePressureEnum
    800798syn keyword cConstant FrictionMEnum
     
    804802syn keyword cConstant FrictionSedimentCompressibilityCoefficientEnum
    805803syn keyword cConstant FrictionTillFrictionAngleEnum
    806 syn keyword cConstant FrictionSchoofWaterPressureEnum
    807804syn keyword cConstant FrictionWaterLayerEnum
    808805syn keyword cConstant FrictionWaterPressureEnum
     
    823820syn keyword cConstant HydrologyBumpHeightEnum
    824821syn keyword cConstant HydrologyBumpSpacingEnum
     822syn keyword cConstant HydrologyChannelConductivityEnum
    825823syn keyword cConstant HydrologydcBasalMoulinInputEnum
    826824syn keyword cConstant HydrologydcEplThicknessEnum
     
    18421840syn keyword cType FreeSurfaceTopAnalysis
    18431841syn keyword cType GLheightadvectionAnalysis
     1842syn keyword cType HydrologyArmapwAnalysis
    18441843syn keyword cType HydrologyDCEfficientAnalysis
    18451844syn keyword cType HydrologyDCInefficientAnalysis
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27391 r27450  
    791791        FrictionCoefficientEnum,
    792792        FrictionCoefficientcoulombEnum,
    793         FrictionCoulombWaterPressureEnum,
    794793        FrictionEffectivePressureEnum,
    795794        FrictionMEnum,
     
    799798        FrictionSedimentCompressibilityCoefficientEnum,
    800799        FrictionTillFrictionAngleEnum,
    801         FrictionSchoofWaterPressureEnum,
    802800        FrictionWaterLayerEnum,
    803801        FrictionWaterPressureEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r27392 r27450  
    797797                case FrictionCoefficientEnum : return "FrictionCoefficient";
    798798                case FrictionCoefficientcoulombEnum : return "FrictionCoefficientcoulomb";
    799                 case FrictionCoulombWaterPressureEnum : return "FrictionCoulombWaterPressure";
    800799                case FrictionEffectivePressureEnum : return "FrictionEffectivePressure";
    801800                case FrictionMEnum : return "FrictionM";
     
    805804                case FrictionSedimentCompressibilityCoefficientEnum : return "FrictionSedimentCompressibilityCoefficient";
    806805                case FrictionTillFrictionAngleEnum : return "FrictionTillFrictionAngle";
    807                 case FrictionSchoofWaterPressureEnum : return "FrictionSchoofWaterPressure";
    808806                case FrictionWaterLayerEnum : return "FrictionWaterLayer";
    809807                case FrictionWaterPressureEnum : return "FrictionWaterPressure";
  • issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim

    r27386 r27450  
    240240syn keyword juliaConstC HydrologyAveragingEnum
    241241syn keyword juliaConstC HydrologyCavitySpacingEnum
    242 syn keyword juliaConstC HydrologyChannelConductivityEnum
    243242syn keyword juliaConstC HydrologyChannelSheetWidthEnum
    244243syn keyword juliaConstC HydrologyEnglacialVoidRatioEnum
     
    789788syn keyword juliaConstC FrictionCoefficientEnum
    790789syn keyword juliaConstC FrictionCoefficientcoulombEnum
    791 syn keyword juliaConstC FrictionCoulombWaterPressureEnum
    792790syn keyword juliaConstC FrictionEffectivePressureEnum
    793791syn keyword juliaConstC FrictionMEnum
     
    797795syn keyword juliaConstC FrictionSedimentCompressibilityCoefficientEnum
    798796syn keyword juliaConstC FrictionTillFrictionAngleEnum
    799 syn keyword juliaConstC FrictionSchoofWaterPressureEnum
    800797syn keyword juliaConstC FrictionWaterLayerEnum
    801798syn keyword juliaConstC FrictionWaterPressureEnum
     
    816813syn keyword juliaConstC HydrologyBumpHeightEnum
    817814syn keyword juliaConstC HydrologyBumpSpacingEnum
     815syn keyword juliaConstC HydrologyChannelConductivityEnum
    818816syn keyword juliaConstC HydrologydcBasalMoulinInputEnum
    819817syn keyword juliaConstC HydrologydcEplThicknessEnum
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27392 r27450  
    815815              else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
    816816              else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
    817               else if (strcmp(name,"FrictionCoulombWaterPressure")==0) return FrictionCoulombWaterPressureEnum;
    818817              else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum;
    819818              else if (strcmp(name,"FrictionM")==0) return FrictionMEnum;
     
    823822              else if (strcmp(name,"FrictionSedimentCompressibilityCoefficient")==0) return FrictionSedimentCompressibilityCoefficientEnum;
    824823              else if (strcmp(name,"FrictionTillFrictionAngle")==0) return FrictionTillFrictionAngleEnum;
    825               else if (strcmp(name,"FrictionSchoofWaterPressure")==0) return FrictionSchoofWaterPressureEnum;
    826824              else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum;
    827825              else if (strcmp(name,"FrictionWaterPressure")==0) return FrictionWaterPressureEnum;
     
    875873              else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
    876874              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;
    877877         else stage=8;
    878878   }
    879879   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;
    883881              else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
    884882              else if (strcmp(name,"InversionSurfaceObs")==0) return InversionSurfaceObsEnum;
     
    998996              else if (strcmp(name,"SealevelchangeAzimuthIndexHydro")==0) return SealevelchangeAzimuthIndexHydroEnum;
    999997              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;
    10001000         else stage=9;
    10011001   }
    10021002   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;
    10061004              else if (strcmp(name,"SealevelchangeViscousE")==0) return SealevelchangeViscousEEnum;
    10071005              else if (strcmp(name,"CouplingTransferCount")==0) return CouplingTransferCountEnum;
     
    11211119              else if (strcmp(name,"SmbVz")==0) return SmbVzEnum;
    11221120              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;
    11231123         else stage=10;
    11241124   }
    11251125   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;
    11291127              else if (strcmp(name,"SmbZMin")==0) return SmbZMinEnum;
    11301128              else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum;
     
    12441242              else if (strcmp(name,"Outputdefinition30")==0) return Outputdefinition30Enum;
    12451243              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;
    12461246         else stage=11;
    12471247   }
    12481248   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;
    12521250              else if (strcmp(name,"Outputdefinition35")==0) return Outputdefinition35Enum;
    12531251              else if (strcmp(name,"Outputdefinition36")==0) return Outputdefinition36Enum;
     
    13671365              else if (strcmp(name,"Cfsurfacesquare")==0) return CfsurfacesquareEnum;
    13681366              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;
    13691369         else stage=12;
    13701370   }
    13711371   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;
    13751373              else if (strcmp(name,"ChannelDischarge")==0) return ChannelDischargeEnum;
    13761374              else if (strcmp(name,"Closed")==0) return ClosedEnum;
     
    14901488              else if (strcmp(name,"IntMatExternalResult")==0) return IntMatExternalResultEnum;
    14911489              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;
    14921492         else stage=13;
    14931493   }
    14941494   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;
    14981496              else if (strcmp(name,"Internal")==0) return InternalEnum;
    14991497              else if (strcmp(name,"Intersect")==0) return IntersectEnum;
     
    16131611              else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
    16141612              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;
    16151615         else stage=14;
    16161616   }
    16171617   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;
    16211619              else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
    16221620              else if (strcmp(name,"SamplingAnalysis")==0) return SamplingAnalysisEnum;
  • issm/trunk-jpl/src/m/classes/stochasticforcing.m

    r27366 r27450  
    9595                                end
    9696                                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
    101106                                        if(strcmp(class(md.friction),'friction') || strcmp(class(md.friction),'frictionschoof') || strcmp(class(md.friction),'frictioncoulomb'))
    102107                  if(md.friction.coupling~=0 && md.friction.coupling~=1 && md.friction.coupling~=2)
     
    306311                'FloatingMeltRate',...
    307312                'FrictionWaterPressure',...
    308                 'FrictionCoulombWaterPressure',...
    309                 'FrictionSchoofWaterPressure',...
     313                'FrictionWaterPressure',...
     314                'FrictionWaterPressure',...
    310315                'FrontalForcingsRignotarma',...
    311316                'FrontalForcingsSubglacialDischargearma',...
  • issm/trunk-jpl/src/m/classes/stochasticforcing.py

    r27366 r27450  
    109109                    raise TypeError('md.basalforcings does not agree with stochasticforcing field {}'.format(field))
    110110            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):
    113118                    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))
    114121                if (type(md.friction).__name__=='friction' or type(md.friction).__name__=='frictionschoof' or type(md.friction).__name__=='frictioncoulomb'):
    115122                    if md.friction.coupling not in[0, 1, 2]:
     
    260267                     'FloatingMeltRate': 'basalforcings',
    261268                     'FrictionWaterPressure': 'friction',
    262                      'FrictionCoulombWaterPressure': 'frictioncoulomb',
    263                      'FrictionSchoofWaterPressure': 'frictionschoof',
     269                     'FrictionWaterPressure': 'frictioncoulomb',
     270                     'FrictionWaterPressure': 'frictionschoof',
    264271                     'FrontalForcingsRignotarma': 'frontalforcingsrignotarma',
    265272                     'FrontalForcingsSubglacialDischargearma': 'frontalforcingsrignotarma',
Note: See TracChangeset for help on using the changeset viewer.