Changeset 14744


Ignore:
Timestamp:
04/24/13 13:58:14 (12 years ago)
Author:
bdef
Message:

NEW:adding enums and updating hydrology class for a two layer system

Location:
issm/trunk-jpl/src
Files:
6 added
6 edited

Legend:

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

    r14735 r14744  
    9696        HydrologydcSedimentTransmitivityEnum,
    9797        HydrologydcWaterCompressibilityEnum,
     98        HydrologydcSpceplHeadEnum,
     99        HydrologydcEplCompressibilityEnum,
     100        HydrologydcEplPorosityEnum,
     101        HydrologydcEplThicknessEnum,
     102        HydrologydcEplTransmitivityEnum,
     103        HydrologydcIsefficientlayerEnum,
    98104        IndependentObjectEnum,
    99105        InversionControlParametersEnum,
  • issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r14735 r14744  
    101101                case HydrologydcSedimentTransmitivityEnum : return "HydrologydcSedimentTransmitivity";
    102102                case HydrologydcWaterCompressibilityEnum : return "HydrologydcWaterCompressibility";
     103                case HydrologydcSpceplHeadEnum : return "HydrologydcSpceplHead";
     104                case HydrologydcEplCompressibilityEnum : return "HydrologydcEplCompressibility";
     105                case HydrologydcEplPorosityEnum : return "HydrologydcEplPorosity";
     106                case HydrologydcEplThicknessEnum : return "HydrologydcEplThickness";
     107                case HydrologydcEplTransmitivityEnum : return "HydrologydcEplTransmitivity";
     108                case HydrologydcIsefficientlayerEnum : return "HydrologydcIsefficientlayer";
    103109                case IndependentObjectEnum : return "IndependentObject";
    104110                case InversionControlParametersEnum : return "InversionControlParameters";
  • issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r14735 r14744  
    102102              else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
    103103              else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;
     104              else if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
     105              else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
     106              else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
     107              else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
     108              else if (strcmp(name,"HydrologydcEplTransmitivity")==0) return HydrologydcEplTransmitivityEnum;
     109              else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum;
    104110              else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
    105111              else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
     
    132138              else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
    133139              else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum;
    134               else if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum;
     140         else stage=2;
     141   }
     142   if(stage==2){
     143              if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum;
    135144              else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum;
    136145              else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum;
     
    138147              else if (strcmp(name,"MaterialsRheologyBbar")==0) return MaterialsRheologyBbarEnum;
    139148              else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum;
    140          else stage=2;
    141    }
    142    if(stage==2){
    143               if (strcmp(name,"MaterialsRheologyN")==0) return MaterialsRheologyNEnum;
     149              else if (strcmp(name,"MaterialsRheologyN")==0) return MaterialsRheologyNEnum;
    144150              else if (strcmp(name,"MaterialsRheologyZ")==0) return MaterialsRheologyZEnum;
    145151              else if (strcmp(name,"MaterialsRheologyZbar")==0) return MaterialsRheologyZbarEnum;
     
    255261              else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;
    256262              else if (strcmp(name,"AdjointSolution")==0) return AdjointSolutionEnum;
    257               else if (strcmp(name,"AnalysisCounter")==0) return AnalysisCounterEnum;
     263         else stage=3;
     264   }
     265   if(stage==3){
     266              if (strcmp(name,"AnalysisCounter")==0) return AnalysisCounterEnum;
    258267              else if (strcmp(name,"NoneAnalysis")==0) return NoneAnalysisEnum;
    259268              else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
     
    261270              else if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum;
    262271              else if (strcmp(name,"WeakBalancethicknessAnalysis")==0) return WeakBalancethicknessAnalysisEnum;
    263          else stage=3;
    264    }
    265    if(stage==3){
    266               if (strcmp(name,"WeakBalancethicknessSolution")==0) return WeakBalancethicknessSolutionEnum;
     272              else if (strcmp(name,"WeakBalancethicknessSolution")==0) return WeakBalancethicknessSolutionEnum;
    267273              else if (strcmp(name,"BedSlopeAnalysis")==0) return BedSlopeAnalysisEnum;
    268274              else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
     
    378384              else if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
    379385              else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum;
    380               else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
     386         else stage=4;
     387   }
     388   if(stage==4){
     389              if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
    381390              else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum;
    382391              else if (strcmp(name,"Boundary")==0) return BoundaryEnum;
     
    384393              else if (strcmp(name,"Converged")==0) return ConvergedEnum;
    385394              else if (strcmp(name,"ExtToIu")==0) return ExtToIuEnum;
    386          else stage=4;
    387    }
    388    if(stage==4){
    389               if (strcmp(name,"Fill")==0) return FillEnum;
     395              else if (strcmp(name,"Fill")==0) return FillEnum;
    390396              else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
    391397              else if (strcmp(name,"Friction")==0) return FrictionEnum;
     
    501507              else if (strcmp(name,"Incremental")==0) return IncrementalEnum;
    502508              else if (strcmp(name,"AgressiveMigration")==0) return AgressiveMigrationEnum;
    503               else if (strcmp(name,"None")==0) return NoneEnum;
     509         else stage=5;
     510   }
     511   if(stage==5){
     512              if (strcmp(name,"None")==0) return NoneEnum;
    504513              else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
    505514              else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
     
    507516              else if (strcmp(name,"GLlevelset")==0) return GLlevelsetEnum;
    508517              else if (strcmp(name,"StokesSolver")==0) return StokesSolverEnum;
    509          else stage=5;
    510    }
    511    if(stage==5){
    512               if (strcmp(name,"Adjoint")==0) return AdjointEnum;
     518              else if (strcmp(name,"Adjoint")==0) return AdjointEnum;
    513519              else if (strcmp(name,"Colinear")==0) return ColinearEnum;
    514520              else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
  • issm/trunk-jpl/src/m/classes/hydrologydc.m

    r14655 r14744  
    66classdef hydrologydc
    77        properties (SetAccess=public)
    8                 spcsediment_head          = NaN;
    9                 sediment_compressibility  = 0;
    10                 sediment_porosity         = 0;
    11                 sediment_thickness        = 0;
    12                 sediment_transmitivity    = 0;
    13                 water_compressibility     = 0;
    14  end
    15  methods
    16          function obj = hydrologydc(varargin) % {{{
    17                  switch nargin
    18                          case 0
    19                                  obj=setdefaultparameters(obj);
    20                          otherwise
    21                                  error('constructor not supported');
    22          end
    23          end % }}}
    24          function obj = setdefaultparameters(obj) % {{{
     8                spcsediment_head         = NaN;
     9                sediment_compressibility = 0;
     10                sediment_porosity        = 0;
     11                sediment_thickness       = 0;
     12                sediment_transmitivity   = 0;
     13                water_compressibility    = 0;
     14               
     15                spcepl_head         = NaN;
     16                epl_compressibility = 0;
     17                epl_porosity        = 0;
     18                epl_thickness       = 0;
     19                epl_transmitivity   = 0;
     20                isefficientlayer    = 0;
     21               
     22  end
     23        methods
     24                function obj = hydrologydc(varargin) % {{{
     25                        switch nargin
     26                                case 0
     27                                        obj=setdefaultparameters(obj);
     28                                otherwise
     29                                        error('constructor not supported');
     30            end
     31                end % }}}
     32                function obj = setdefaultparameters(obj) % {{{
     33                       
     34                %Parameters from de Fleurian 2013
     35                        obj.sediment_compressibility = 1.0e-08;
     36                        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                       
     41                        obj.epl_compressibility = 1.0e-08;
     42                        obj.epl_porosity        = 0.4;
     43                        obj.epl_thickness       = 1.0;
     44                        obj.epl_transmitivity   = 8.0e-02;
     45                        obj.isefficientlayer    = 1;
     46                       
     47                end % }}}
     48                function md = checkconsistency(obj,md,solution,analyses) % {{{
     49                       
     50                %Early return
     51                        if ~ismember(HydrologyAnalysisEnum(),analyses), return; end
     52                       
     53                        md = checkfield(md,'hydrology.spcsediment_head','forcing',1);
     54                        md = checkfield(md,'hydrology.sediment_compressibility','>',0,'numel',1);
     55                        md = checkfield(md,'hydrology.sediment_porosity','>',0,'numel',1);
     56                        md = checkfield(md,'hydrology.sediment_thickness','>',0,'numel',1);
     57                        md = checkfield(md,'hydrology.sediment_transmitivity','>',0,'numel',1);
     58                        md = checkfield(md,'hydrology.water_compressibility','>',0,'numel',1);
     59                       
     60                        md = checkfield(md,'hydrology.spcepl_head','forcing',1);
     61                        md = checkfield(md,'hydrology.epl_compressibility','>',0,'numel',1);
     62                        md = checkfield(md,'hydrology.epl_porosity','>',0,'numel',1);
     63                        md = checkfield(md,'hydrology.epl_thickness','>',0,'numel',1);
     64                        md = checkfield(md,'hydrology.epl_transmitivity','>',0,'numel',1);
     65                        md = checkfield(md,'hydrology.isefficientlayer','numel',[1],'values',[0 1]);
     66                       
     67                end % }}}
     68                function disp(obj) % {{{
     69                        disp(sprintf('   hydrology Dual Porous Continuum Equivalent parameters:'));
     70                        disp(sprintf('   - for the sediment layer'));
     71                       
     72                        fielddisplay(obj,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]');
     73                        fielddisplay(obj,'sediment_compressibility','sediment compressibility [Pa^-1]');
     74                        fielddisplay(obj,'sediment_porosity','sediment [dimensionless]');
     75                        fielddisplay(obj,'sediment_thickness','sediment thickness [m]');
     76                        fielddisplay(obj,'sediment_transmitivity','sediment transmitivity [m^2/s]');
     77                        fielddisplay(obj,'water_compressibility','water compressibility [Pa^-1]');
    2578
    26          %Parameters from de Fleurian 2013
    27                  obj.sediment_compressibility = 1.0e-08;
    28                  obj.sediment_porosity         = .4;
    29                  obj.sediment_thickness        = 20.0;
    30                  obj.sediment_transmitivity    = 8.0e-04;
    31                  obj.water_compressibility     = 5.04e-10;
    32                  
    33          end % }}}
    34          function md = checkconsistency(obj,md,solution,analyses) % {{{
    35                  
    36          %Early return
    37                  if ~ismember(HydrologyAnalysisEnum(),analyses), return; end
    38                  
    39                  md = checkfield(md,'hydrology.spcsediment_head','forcing',1);
    40                  md = checkfield(md,'hydrology.sediment_compressibility','>',0,'numel',1);
    41                  md = checkfield(md,'hydrology.sediment_porosity','>',0,'numel',1);
    42                  md = checkfield(md,'hydrology.sediment_thickness','>',0,'numel',1);
    43                  md = checkfield(md,'hydrology.sediment_transmitivity','>',0,'numel',1);
    44                  md = checkfield(md,'hydrology.water_compressibility','>',0,'numel',1);
    45          end % }}}
    46          function disp(obj) % {{{
    47                  disp(sprintf('   hydrology Dual Porous Continuum Equivalent parameters:'));
    48 
    49                  fielddisplay(obj,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]');
    50                  fielddisplay(obj,'sediment_compressibility','sediment compressibility [Pa^-1]');
    51                  fielddisplay(obj,'sediment_porosity','sediment [dimensionless]');
    52                  fielddisplay(obj,'sediment_thickness','sediment thickness [m]');
    53                  fielddisplay(obj,'sediment_transmitivity','sediment transmitivity [m^2/s]');
    54                  fielddisplay(obj,'water_compressibility','water compressibility [Pa^-1]');
    55                  
    56          end % }}}
    57          function marshall(obj,fid) % {{{
    58                  WriteData(fid,'enum',HydrologyEnum(),'data',HydrologydcEnum(),'format','Integer');
    59                  WriteData(fid,'object',obj,'fieldname','spcsediment_head','format','DoubleMat','mattype',1);
    60                  WriteData(fid,'object',obj,'fieldname','sediment_compressibility','format','Double');                 
    61                  WriteData(fid,'object',obj,'fieldname','sediment_porosity','format','Double');                 
    62                  WriteData(fid,'object',obj,'fieldname','sediment_thickness','format','Double');
    63                  WriteData(fid,'object',obj,'fieldname','sediment_transmitivity','format','Double');                   
    64                  WriteData(fid,'object',obj,'fieldname','water_compressibility','format','Double');
    65          end % }}}
    66  end
     79                        if isefficientlayer==1,
     80                                disp(sprintf('   - for the epl layer'));
     81                               
     82                                fielddisplay(obj,'spcepl_head','epl water head constraints (NaN means no constraint) [m above MSL]');
     83                                fielddisplay(obj,'epl_compressibility','epl compressibility [Pa^-1]');
     84                                fielddisplay(obj,'epl_porosity','epl [dimensionless]');
     85                                fielddisplay(obj,'epl_thickness','epl thickness [m]');
     86                                fielddisplay(obj,'epl_transmitivity','epl transmitivity [m^2/s]');
     87            end
     88         
     89                end % }}}
     90                function marshall(obj,fid) % {{{
     91                        WriteData(fid,'enum',HydrologyEnum(),'data',HydrologydcEnum(),'format','Integer');
     92                        WriteData(fid,'object',obj,'fieldname','spcsediment_head','format','DoubleMat','mattype',1);
     93                        WriteData(fid,'object',obj,'fieldname','sediment_compressibility','format','Double');                   
     94                        WriteData(fid,'object',obj,'fieldname','sediment_porosity','format','Double');                 
     95                        WriteData(fid,'object',obj,'fieldname','sediment_thickness','format','Double');
     96                        WriteData(fid,'object',obj,'fieldname','sediment_transmitivity','format','Double');                     
     97                        WriteData(fid,'object',obj,'fieldname','water_compressibility','format','Double');
     98                       
     99                        WriteData(fid,'object',obj,'fieldname','spcepl_head','format','DoubleMat','mattype',1);
     100                        WriteData(fid,'object',obj,'fieldname','epl_compressibility','format','Double');                       
     101                        WriteData(fid,'object',obj,'fieldname','epl_porosity','format','Double');                       
     102                        WriteData(fid,'object',obj,'fieldname','epl_thickness','format','Double');
     103                        WriteData(fid,'object',obj,'fieldname','epl_transmitivity','format','Double');
     104      WriteData(fid,'object',obj,'fieldname','isefficientlayer','format','Boolean');
     105                       
     106                end % }}}
     107  end
    67108end
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r14735 r14744  
    849849        return StringToEnum('HydrologydcWaterCompressibility')[0]
    850850
     851def HydrologydcSpceplHeadEnum():
     852        """
     853        HYDROLOGYDCSPCEPLHEADENUM - Enum of HydrologydcSpceplHead
     854
     855           Usage:
     856              macro=HydrologydcSpceplHeadEnum()
     857        """
     858
     859        return StringToEnum('HydrologydcSpceplHead')[0]
     860
     861def HydrologydcEplCompressibilityEnum():
     862        """
     863        HYDROLOGYDCEPLCOMPRESSIBILITYENUM - Enum of HydrologydcEplCompressibility
     864
     865           Usage:
     866              macro=HydrologydcEplCompressibilityEnum()
     867        """
     868
     869        return StringToEnum('HydrologydcEplCompressibility')[0]
     870
     871def HydrologydcEplPorosityEnum():
     872        """
     873        HYDROLOGYDCEPLPOROSITYENUM - Enum of HydrologydcEplPorosity
     874
     875           Usage:
     876              macro=HydrologydcEplPorosityEnum()
     877        """
     878
     879        return StringToEnum('HydrologydcEplPorosity')[0]
     880
     881def HydrologydcEplThicknessEnum():
     882        """
     883        HYDROLOGYDCEPLTHICKNESSENUM - Enum of HydrologydcEplThickness
     884
     885           Usage:
     886              macro=HydrologydcEplThicknessEnum()
     887        """
     888
     889        return StringToEnum('HydrologydcEplThickness')[0]
     890
     891def HydrologydcEplTransmitivityEnum():
     892        """
     893        HYDROLOGYDCEPLTRANSMITIVITYENUM - Enum of HydrologydcEplTransmitivity
     894
     895           Usage:
     896              macro=HydrologydcEplTransmitivityEnum()
     897        """
     898
     899        return StringToEnum('HydrologydcEplTransmitivity')[0]
     900
     901def HydrologydcIsefficientlayerEnum():
     902        """
     903        HYDROLOGYDCISEFFICIENTLAYERENUM - Enum of HydrologydcIsefficientlayer
     904
     905           Usage:
     906              macro=HydrologydcIsefficientlayerEnum()
     907        """
     908
     909        return StringToEnum('HydrologydcIsefficientlayer')[0]
     910
    851911def IndependentObjectEnum():
    852912        """
     
    52775337        """
    52785338
    5279         return 526
    5280 
     5339        return 532
     5340
  • issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m

    r14735 r14744  
    99%      macro=MaximumNumberOfEnums()
    1010
    11 macro=526;
     11macro=532;
Note: See TracChangeset for help on using the changeset viewer.