Changeset 14784


Ignore:
Timestamp:
04/29/13 12:43:08 (12 years ago)
Author:
bdef
Message:

CHG: Change in the marshaling strategy of hydrology dc, introduction of variables needed to apply different sediment upper limit

Location:
issm/trunk-jpl/src
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h

    r14769 r14784  
    103103        HydrologydcEplTransmitivityEnum,
    104104        HydrologydcIsefficientlayerEnum,
     105        HydrologydcSedimentlimitFlagEnum,
     106        HydrologydcSedimentlimitEnum,
    105107        HydrologyLayerEnum,
    106108        HydrologySedimentEnum,
  • issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp

    r14757 r14784  
    2626
    2727        bool ispdd;
     28        bool isefficientlayer;
    2829        int  hydrology_model;
    2930        iomodel->Constant(&hydrology_model,HydrologyEnum);
     
    6364                iomodel->Constant(&this->sediment_transmitivity,HydrologydcSedimentTransmitivityEnum);
    6465                iomodel->Constant(&this->water_compressibility,HydrologydcWaterCompressibilityEnum);
    65 
    66                 iomodel->Constant(&this->epl_compressibility,HydrologydcEplCompressibilityEnum);
    67                 iomodel->Constant(&this->epl_porosity,HydrologydcEplPorosityEnum);
    68                 iomodel->Constant(&this->epl_thickness,HydrologydcEplThicknessEnum);
    69                 iomodel->Constant(&this->epl_transmitivity,HydrologydcEplTransmitivityEnum);
     66                iomodel->Constant(&isefficientlayer,HydrologydcIsefficientlayerEnum);
     67
     68                if(isefficientlayer){
     69                                iomodel->Constant(&this->epl_compressibility,HydrologydcEplCompressibilityEnum);
     70                                iomodel->Constant(&this->epl_porosity,HydrologydcEplPorosityEnum);
     71                                iomodel->Constant(&this->epl_thickness,HydrologydcEplThicknessEnum);
     72                                iomodel->Constant(&this->epl_transmitivity,HydrologydcEplTransmitivityEnum);
     73                }
    7074        }
    7175        else{
  • issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r14769 r14784  
    108108                case HydrologydcEplTransmitivityEnum : return "HydrologydcEplTransmitivity";
    109109                case HydrologydcIsefficientlayerEnum : return "HydrologydcIsefficientlayer";
     110                case HydrologydcSedimentlimitFlagEnum : return "HydrologydcSedimentlimitFlag";
     111                case HydrologydcSedimentlimitEnum : return "HydrologydcSedimentlimit";
    110112                case HydrologyLayerEnum : return "HydrologyLayer";
    111113                case HydrologySedimentEnum : return "HydrologySediment";
  • issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r14769 r14784  
    109109              else if (strcmp(name,"HydrologydcEplTransmitivity")==0) return HydrologydcEplTransmitivityEnum;
    110110              else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum;
     111              else if (strcmp(name,"HydrologydcSedimentlimitFlag")==0) return HydrologydcSedimentlimitFlagEnum;
     112              else if (strcmp(name,"HydrologydcSedimentlimit")==0) return HydrologydcSedimentlimitEnum;
    111113              else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum;
    112114              else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
     
    136138              else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum;
    137139              else if (strcmp(name,"MaskElementonfloatingice")==0) return MaskElementonfloatingiceEnum;
    138               else if (strcmp(name,"MaskElementongroundedice")==0) return MaskElementongroundediceEnum;
    139               else if (strcmp(name,"MaskElementonwater")==0) return MaskElementonwaterEnum;
    140140         else stage=2;
    141141   }
    142142   if(stage==2){
    143               if (strcmp(name,"MaskVertexonfloatingice")==0) return MaskVertexonfloatingiceEnum;
     143              if (strcmp(name,"MaskElementongroundedice")==0) return MaskElementongroundediceEnum;
     144              else if (strcmp(name,"MaskElementonwater")==0) return MaskElementonwaterEnum;
     145              else if (strcmp(name,"MaskVertexonfloatingice")==0) return MaskVertexonfloatingiceEnum;
    144146              else if (strcmp(name,"MaskVertexongroundedice")==0) return MaskVertexongroundediceEnum;
    145147              else if (strcmp(name,"MaskVertexonwater")==0) return MaskVertexonwaterEnum;
     
    259261              else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
    260262              else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
    261               else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
    262               else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
    263263         else stage=3;
    264264   }
    265265   if(stage==3){
    266               if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
     266              if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
     267              else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
     268              else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
    267269              else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
    268270              else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
     
    382384              else if (strcmp(name,"Ice")==0) return IceEnum;
    383385              else if (strcmp(name,"Melange")==0) return MelangeEnum;
    384               else if (strcmp(name,"Water")==0) return WaterEnum;
    385               else if (strcmp(name,"Closed")==0) return ClosedEnum;
    386386         else stage=4;
    387387   }
    388388   if(stage==4){
    389               if (strcmp(name,"Free")==0) return FreeEnum;
     389              if (strcmp(name,"Water")==0) return WaterEnum;
     390              else if (strcmp(name,"Closed")==0) return ClosedEnum;
     391              else if (strcmp(name,"Free")==0) return FreeEnum;
    390392              else if (strcmp(name,"Open")==0) return OpenEnum;
    391393              else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
     
    505507              else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
    506508              else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;
    507               else if (strcmp(name,"MinVz")==0) return MinVzEnum;
    508               else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
    509509         else stage=5;
    510510   }
    511511   if(stage==5){
    512               if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
     512              if (strcmp(name,"MinVz")==0) return MinVzEnum;
     513              else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
     514              else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
    513515              else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
    514516              else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
  • issm/trunk-jpl/src/m/classes/hydrologydc.m

    r14771 r14784  
    1 %HYDROLOGYDC class definition
     1%Hydrologydc class definition
    22%
    33%   Usage:
     
    1212                sediment_transmitivity   = 0;
    1313                water_compressibility    = 0;
     14                isefficientlayer         = 0;
     15                sedimentlimit_flag       = 0;
     16                sedimentlimit            = 0;
    1417               
    1518                spcepl_head         = NaN;
     
    1821                epl_thickness       = 0;
    1922                epl_transmitivity   = 0;
    20                 isefficientlayer    = 0;
    2123               
    2224  end
     
    3537                        obj.sediment_compressibility = 1.0e-08;
    3638                        obj.sediment_porosity        = .4;
    37                         obj.sediment_thickness       = 20.0;
    38                         obj.sediment_transmitivity   = 8.0e-04;
    39                         obj.water_compressibility    = 5.04e-10;
    40                        
     39                        obj.sediment_thickness     = 20.0;
     40                        obj.sediment_transmitivity = 8.0e-04;
     41                        obj.water_compressibility  = 5.04e-10;
     42                        obj.isefficientlayer       = 1;
     43                        obj.sedimentlimit_flag     = 0;
     44                        obj.sedimentlimit          = 0;
     45
    4146                        obj.epl_compressibility = 1.0e-08;
    4247                        obj.epl_porosity        = 0.4;
    4348                        obj.epl_thickness       = 1.0;
    4449                        obj.epl_transmitivity   = 8.0e-02;
    45                         obj.isefficientlayer    = 1;
    4650                       
    4751                end % }}}
     
    5963                        md = checkfield(md,'hydrology.sediment_transmitivity','>',0,'numel',1);
    6064                        md = checkfield(md,'hydrology.water_compressibility','>',0,'numel',1);
     65                        md = checkfield(md,'hydrology.isefficientlayer','numel',[1],'values',[0 1]);
     66                        md = checkfield(md,'hydrology.sedimentlimit_flag','numel',[1],'values',[0 1 2 3]);
     67
     68                        if obj.sedimentlimit_flag==1,
     69                                md = checkfield(md,'hydrology.sedimentlimit','>',0,'numel',1);
     70            end
    6171
    6272                        if obj.isefficientlayer==1,
     
    6777                                md = checkfield(md,'hydrology.epl_thickness','>',0,'numel',1);
    6878                                md = checkfield(md,'hydrology.epl_transmitivity','>',0,'numel',1);
    69                                 md = checkfield(md,'hydrology.isefficientlayer','numel',[1],'values',[0 1]);
    7079            end
    7180                end % }}}
     
    7988                        fielddisplay(obj,'sediment_thickness','sediment thickness [m]');
    8089                        fielddisplay(obj,'sediment_transmitivity','sediment transmitivity [m^2/s]');
    81                         fielddisplay(obj,'water_compressibility','water compressibility [Pa^-1]');
     90                        fielddisplay(obj,'isefficientlayer','do we use an efficient drainage system [1: true; 0: false]');
     91                        fielddisplay(obj,'sedimentlimit_flag',['what kind of upper limit is applied for the inefficient layer']);
     92                        disp(sprintf('%55s  0: no limit',' '));
     93                        disp(sprintf('%55s  1: user defined: %s',' ','sedimentlimit'));
     94                        disp(sprintf('%55s  2: hydrostatic pressure',' '));
     95                        disp(sprintf('%55s  3: normal stress',' '));
     96                        if obj.sedimentlimit_flag==1,
     97                                fielddisplay(obj,'sedimentlimit','user defined upper limit for the inefficient layer [m]');
     98            end
    8299
    83100                        if obj.isefficientlayer==1,
     
    100117                        WriteData(fid,'object',obj,'fieldname','sediment_transmitivity','format','Double');                     
    101118                        WriteData(fid,'object',obj,'fieldname','water_compressibility','format','Double');
    102                        
    103                         WriteData(fid,'object',obj,'fieldname','spcepl_head','format','DoubleMat','mattype',1);
    104                         WriteData(fid,'object',obj,'fieldname','epl_compressibility','format','Double');                       
    105                         WriteData(fid,'object',obj,'fieldname','epl_porosity','format','Double');                       
    106                         WriteData(fid,'object',obj,'fieldname','epl_thickness','format','Double');
    107                         WriteData(fid,'object',obj,'fieldname','epl_transmitivity','format','Double');
    108119                        WriteData(fid,'object',obj,'fieldname','isefficientlayer','format','Boolean');
    109                        
     120                        WriteData(fid,'object',obj,'fieldname','sedimentlimit_flag','format','Integer');
     121
     122                        if obj.sedimentlimit_flag==1,
     123                                WriteData(fid,'object',obj,'fieldname','sedimentlimit','format','Double');
     124            end
     125
     126                        if obj.isefficientlayer==1,
     127                               
     128                                WriteData(fid,'object',obj,'fieldname','spcepl_head','format','DoubleMat','mattype',1);
     129                                WriteData(fid,'object',obj,'fieldname','epl_compressibility','format','Double');                       
     130                                WriteData(fid,'object',obj,'fieldname','epl_porosity','format','Double');                       
     131                                WriteData(fid,'object',obj,'fieldname','epl_thickness','format','Double');
     132                                WriteData(fid,'object',obj,'fieldname','epl_transmitivity','format','Double');
     133                        end
    110134                end % }}}
    111135  end
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r14770 r14784  
    919919        return StringToEnum('HydrologydcIsefficientlayer')[0]
    920920
     921def HydrologydcSedimentlimitFlagEnum():
     922        """
     923        HYDROLOGYDCSEDIMENTLIMITFLAGENUM - Enum of HydrologydcSedimentlimitFlag
     924
     925           Usage:
     926              macro=HydrologydcSedimentlimitFlagEnum()
     927        """
     928
     929        return StringToEnum('HydrologydcSedimentlimitFlag')[0]
     930
     931def HydrologydcSedimentlimitEnum():
     932        """
     933        HYDROLOGYDCSEDIMENTLIMITENUM - Enum of HydrologydcSedimentlimit
     934
     935           Usage:
     936              macro=HydrologydcSedimentlimitEnum()
     937        """
     938
     939        return StringToEnum('HydrologydcSedimentlimit')[0]
     940
    921941def HydrologyLayerEnum():
    922942        """
     
    54075427        """
    54085428
    5409         return 539
    5410 
     5429        return 541
     5430
  • issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m

    r14770 r14784  
    99%      macro=MaximumNumberOfEnums()
    1010
    11 macro=539;
     11macro=541;
Note: See TracChangeset for help on using the changeset viewer.