Changeset 27913


Ignore:
Timestamp:
09/20/23 12:20:40 (18 months ago)
Author:
Mathieu Morlighem
Message:

NEW: added islaminar flag to change channel physics, not implemented yet

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp

    r27537 r27913  
    183183        parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.melt_flag",HydrologyMeltFlagEnum));
    184184        parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.channel_sheet_width",HydrologyChannelSheetWidthEnum));
     185        parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.islaminar",HydrologyIsLaminarEnum));
    185186        parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.englacial_void_ratio",HydrologyEnglacialVoidRatioEnum));
    186187
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r27902 r27913  
    265265syn keyword cConstant HydrologyEnglacialVoidRatioEnum
    266266syn keyword cConstant HydrologyIschannelsEnum
     267syn keyword cConstant HydrologyIsLaminarEnum
    267268syn keyword cConstant HydrologyIsWaterPressureArmaEnum
    268269syn keyword cConstant HydrologyMeltFlagEnum
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27902 r27913  
    259259        HydrologyEnglacialVoidRatioEnum,
    260260        HydrologyIschannelsEnum,
     261        HydrologyIsLaminarEnum,
    261262        HydrologyIsWaterPressureArmaEnum,
    262263        HydrologyMeltFlagEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r27902 r27913  
    267267                case HydrologyEnglacialVoidRatioEnum : return "HydrologyEnglacialVoidRatio";
    268268                case HydrologyIschannelsEnum : return "HydrologyIschannels";
     269                case HydrologyIsLaminarEnum : return "HydrologyIsLaminar";
    269270                case HydrologyIsWaterPressureArmaEnum : return "HydrologyIsWaterPressureArma";
    270271                case HydrologyMeltFlagEnum : return "HydrologyMeltFlag";
  • issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim

    r27902 r27913  
    258258syn keyword juliaConstC HydrologyEnglacialVoidRatioEnum
    259259syn keyword juliaConstC HydrologyIschannelsEnum
     260syn keyword juliaConstC HydrologyIsLaminarEnum
    260261syn keyword juliaConstC HydrologyIsWaterPressureArmaEnum
    261262syn keyword juliaConstC HydrologyMeltFlagEnum
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27902 r27913  
    273273              else if (strcmp(name,"HydrologyEnglacialVoidRatio")==0) return HydrologyEnglacialVoidRatioEnum;
    274274              else if (strcmp(name,"HydrologyIschannels")==0) return HydrologyIschannelsEnum;
     275              else if (strcmp(name,"HydrologyIsLaminar")==0) return HydrologyIsLaminarEnum;
    275276              else if (strcmp(name,"HydrologyIsWaterPressureArma")==0) return HydrologyIsWaterPressureArmaEnum;
    276277              else if (strcmp(name,"HydrologyMeltFlag")==0) return HydrologyMeltFlagEnum;
     
    382383              else if (strcmp(name,"MasstransportNumRequestedOutputs")==0) return MasstransportNumRequestedOutputsEnum;
    383384              else if (strcmp(name,"MasstransportPenaltyFactor")==0) return MasstransportPenaltyFactorEnum;
    384               else if (strcmp(name,"MasstransportRequestedOutputs")==0) return MasstransportRequestedOutputsEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum;
     388              if (strcmp(name,"MasstransportRequestedOutputs")==0) return MasstransportRequestedOutputsEnum;
     389              else if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum;
    389390              else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
    390391              else if (strcmp(name,"MaterialsEarthDensity")==0) return MaterialsEarthDensityEnum;
     
    505506              else if (strcmp(name,"SolidearthSettingsRunFrequency")==0) return SolidearthSettingsRunFrequencyEnum;
    506507              else if (strcmp(name,"SolidearthSettingsTimeAcc")==0) return SolidearthSettingsTimeAccEnum;
    507               else if (strcmp(name,"SolidearthSettingsHoriz")==0) return SolidearthSettingsHorizEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"SolidearthSettingsMaxiter")==0) return SolidearthSettingsMaxiterEnum;
     511              if (strcmp(name,"SolidearthSettingsHoriz")==0) return SolidearthSettingsHorizEnum;
     512              else if (strcmp(name,"SolidearthSettingsMaxiter")==0) return SolidearthSettingsMaxiterEnum;
    512513              else if (strcmp(name,"SolidearthSettingsGrdOcean")==0) return SolidearthSettingsGrdOceanEnum;
    513514              else if (strcmp(name,"SolidearthSettingsOceanAreaScaling")==0) return SolidearthSettingsOceanAreaScalingEnum;
     
    628629              else if (strcmp(name,"SmbSWgrad")==0) return SmbSWgradEnum;
    629630              else if (strcmp(name,"SmbT0dry")==0) return SmbT0dryEnum;
    630               else if (strcmp(name,"SmbT0wet")==0) return SmbT0wetEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"SmbTcIdx")==0) return SmbTcIdxEnum;
     634              if (strcmp(name,"SmbT0wet")==0) return SmbT0wetEnum;
     635              else if (strcmp(name,"SmbTcIdx")==0) return SmbTcIdxEnum;
    635636              else if (strcmp(name,"SmbTeThresh")==0) return SmbTeThreshEnum;
    636637              else if (strcmp(name,"SmbTdiff")==0) return SmbTdiffEnum;
     
    751752              else if (strcmp(name,"BasalforcingsSpatialUpperwaterElevation")==0) return BasalforcingsSpatialUpperwaterElevationEnum;
    752753              else if (strcmp(name,"BasalforcingsSpatialUpperwaterMeltingRate")==0) return BasalforcingsSpatialUpperwaterMeltingRateEnum;
    753               else if (strcmp(name,"BasalforcingsIsmip6BasinId")==0) return BasalforcingsIsmip6BasinIdEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"BasalforcingsIsmip6Tf")==0) return BasalforcingsIsmip6TfEnum;
     757              if (strcmp(name,"BasalforcingsIsmip6BasinId")==0) return BasalforcingsIsmip6BasinIdEnum;
     758              else if (strcmp(name,"BasalforcingsIsmip6Tf")==0) return BasalforcingsIsmip6TfEnum;
    758759              else if (strcmp(name,"BasalforcingsIsmip6TfShelf")==0) return BasalforcingsIsmip6TfShelfEnum;
    759760              else if (strcmp(name,"BasalforcingsIsmip6MeltAnomaly")==0) return BasalforcingsIsmip6MeltAnomalyEnum;
     
    874875              else if (strcmp(name,"FrictionTillFrictionAngle")==0) return FrictionTillFrictionAngleEnum;
    875876              else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum;
    876               else if (strcmp(name,"FrictionWaterPressure")==0) return FrictionWaterPressureEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"FrictionWaterPressureNoise")==0) return FrictionWaterPressureNoiseEnum;
     880              if (strcmp(name,"FrictionWaterPressure")==0) return FrictionWaterPressureEnum;
     881              else if (strcmp(name,"FrictionWaterPressureNoise")==0) return FrictionWaterPressureNoiseEnum;
    881882              else if (strcmp(name,"Frictionf")==0) return FrictionfEnum;
    882883              else if (strcmp(name,"FrontalForcingsBasinId")==0) return FrontalForcingsBasinIdEnum;
     
    997998              else if (strcmp(name,"SatGraviGRD")==0) return SatGraviGRDEnum;
    998999              else if (strcmp(name,"SealevelBarystaticMask")==0) return SealevelBarystaticMaskEnum;
    999               else if (strcmp(name,"SealevelBarystaticIceMask")==0) return SealevelBarystaticIceMaskEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"SealevelBarystaticIceWeights")==0) return SealevelBarystaticIceWeightsEnum;
     1003              if (strcmp(name,"SealevelBarystaticIceMask")==0) return SealevelBarystaticIceMaskEnum;
     1004              else if (strcmp(name,"SealevelBarystaticIceWeights")==0) return SealevelBarystaticIceWeightsEnum;
    10041005              else if (strcmp(name,"SealevelBarystaticIceArea")==0) return SealevelBarystaticIceAreaEnum;
    10051006              else if (strcmp(name,"SealevelBarystaticIceLatbar")==0) return SealevelBarystaticIceLatbarEnum;
     
    11201121              else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum;
    11211122              else if (strcmp(name,"SmbFAC")==0) return SmbFACEnum;
    1122               else if (strcmp(name,"SmbGdn")==0) return SmbGdnEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"SmbGdnini")==0) return SmbGdniniEnum;
     1126              if (strcmp(name,"SmbGdn")==0) return SmbGdnEnum;
     1127              else if (strcmp(name,"SmbGdnini")==0) return SmbGdniniEnum;
    11271128              else if (strcmp(name,"SmbGsp")==0) return SmbGspEnum;
    11281129              else if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
     
    12431244              else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
    12441245              else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
    1245               else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
     1249              if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
     1250              else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
    12501251              else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
    12511252              else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
     
    13661367              else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
    13671368              else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
    1368               else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
    13691369         else stage=12;
    13701370   }
    13711371   if(stage==12){
    1372               if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
     1372              if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
     1373              else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
    13731374              else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
    13741375              else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
     
    14891490              else if (strcmp(name,"Dense")==0) return DenseEnum;
    14901491              else if (strcmp(name,"DependentObject")==0) return DependentObjectEnum;
    1491               else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
    14921492         else stage=13;
    14931493   }
    14941494   if(stage==13){
    1495               if (strcmp(name,"DeviatoricStressErrorEstimator")==0) return DeviatoricStressErrorEstimatorEnum;
     1495              if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
     1496              else if (strcmp(name,"DeviatoricStressErrorEstimator")==0) return DeviatoricStressErrorEstimatorEnum;
    14961497              else if (strcmp(name,"Divergence")==0) return DivergenceEnum;
    14971498              else if (strcmp(name,"Domain3Dsurface")==0) return Domain3DsurfaceEnum;
     
    16121613              else if (strcmp(name,"LoveKf")==0) return LoveKfEnum;
    16131614              else if (strcmp(name,"LoveKt")==0) return LoveKtEnum;
    1614               else if (strcmp(name,"LoveLf")==0) return LoveLfEnum;
    16151615         else stage=14;
    16161616   }
    16171617   if(stage==14){
    1618               if (strcmp(name,"LoveLt")==0) return LoveLtEnum;
     1618              if (strcmp(name,"LoveLf")==0) return LoveLfEnum;
     1619              else if (strcmp(name,"LoveLt")==0) return LoveLtEnum;
    16191620              else if (strcmp(name,"LoveTidalHt")==0) return LoveTidalHtEnum;
    16201621              else if (strcmp(name,"LoveTidalKt")==0) return LoveTidalKtEnum;
     
    17351736              else if (strcmp(name,"Scaled")==0) return ScaledEnum;
    17361737              else if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum;
    1737               else if (strcmp(name,"SealevelEmotion")==0) return SealevelEmotionEnum;
    17381738         else stage=15;
    17391739   }
    17401740   if(stage==15){
    1741               if (strcmp(name,"SealevelchangePolarMotionX")==0) return SealevelchangePolarMotionXEnum;
     1741              if (strcmp(name,"SealevelEmotion")==0) return SealevelEmotionEnum;
     1742              else if (strcmp(name,"SealevelchangePolarMotionX")==0) return SealevelchangePolarMotionXEnum;
    17421743              else if (strcmp(name,"SealevelchangePolarMotionY")==0) return SealevelchangePolarMotionYEnum;
    17431744              else if (strcmp(name,"SealevelchangePolarMotionZ")==0) return SealevelchangePolarMotionZEnum;
  • issm/trunk-jpl/src/m/classes/hydrologyglads.m

    r27535 r27913  
    1616                channel_conductivity = NaN;
    1717                channel_sheet_width  = 0.;
     18                islaminar            = 0;
    1819
    1920                %Other
     
    5051                        self.channel_conductivity = 5.e-2; %Dow's default, Table uses 0.1
    5152                        self.channel_sheet_width = 2.; %m
     53                        self.islaminar = 0; %by default use GlaDS default turbulent code
    5254
    5355                        %Other
     
    7375                        md = checkfield(md,'fieldname','hydrology.channel_conductivity','size',[md.mesh.numberofvertices 1],'>=',0,'NaN',1,'Inf',1);
    7476                        md = checkfield(md,'fieldname','hydrology.channel_sheet_width','numel',[1],'>=',0);
     77                        md = checkfield(md,'fieldname','hydrology.islaminar','numel',[1],'values',[0 1]);
    7578
    7679                        %Other
     
    9598                        fielddisplay(self,'ischannels','Do we allow for channels? 1: yes, 0: no');
    9699                        fielddisplay(self,'channel_conductivity','channel conductivity (k_c) [m^(3/2) kg^(-1/2)]');
     100                        fielddisplay(self,'channel_sheet_width','channel sheet width [m]');
     101                        fielddisplay(self,'islaminar','do we use laminar [1] or turbulent physics [0, default]');
    97102                        disp(sprintf('      OTHER'));
    98103                        fielddisplay(self,'spcphi','Hydraulic potential Dirichlet constraints [Pa]');
     
    120125                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','channel_conductivity','format','DoubleMat','mattype',1);
    121126                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','channel_sheet_width','format','Double');
     127                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','islaminar','format','Boolean');
    122128
    123129                        %Others
  • issm/trunk-jpl/src/m/classes/hydrologyglads.py

    r27536 r27913  
    2424        self.channel_conductivity = np.nan
    2525        self.channel_sheet_width = 0.
     26        self.islaminar = 0
    2627
    2728        # Other
     
    5354        s += '{}\n'.format(fielddisplay(self, 'ischannels', 'Do we allow for channels? 1: yes, 0: no'))
    5455        s += '{}\n'.format(fielddisplay(self, 'channel_conductivity', 'channel conductivity (k_c) [m^(3 / 2) kg^(- 1 / 2)]'))
     56        s += '{}\n'.format(fielddisplay(self, 'channel_sheet_width', 'channel sheet width [m]'))
     57        s += '{}\n'.format(fielddisplay(self, 'islaminar','do we use laminar [1] or turbulent physics [0, default]'))
    5558        s = '\t--OTHER\n'
    5659        s += '{}\n'.format(fielddisplay(self, 'spcphi', 'Hydraulic potential Dirichlet constraints [Pa]'))
     
    8891        self.channel_conductivity = 5.e-2  #Dow's default, Table uses 0.1
    8992        self.channel_sheet_width = 2.  #m
     93        self.islaminar = 0  #by default use turbulent physics
    9094
    9195        # Other
     
    112116        md = checkfield(md, 'fieldname', 'hydrology.channel_conductivity', 'size', [md.mesh.numberofvertices], '>', 0)
    113117        md = checkfield(md, 'fieldname', 'hydrology.channel_sheet_width', 'numel', [1], '>=', 0)
     118        md = checkfield(md, 'fieldname', 'hydrology.islaminar', 'numel', [1], 'values', [0, 1])
    114119
    115120        # Other
     
    139144        WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'channel_conductivity', 'format', 'DoubleMat', 'mattype', 1)
    140145        WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'channel_sheet_width', 'format', 'Double')
     146        WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'islaminar', 'format', 'Boolean')
    141147
    142148        # Others
Note: See TracChangeset for help on using the changeset viewer.