Changeset 22283


Ignore:
Timestamp:
11/30/17 23:41:58 (7 years ago)
Author:
bdef
Message:

CHG:shifting the hydrology routines to requested_output

Location:
issm/trunk-jpl/src/m/classes
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/hydrologydc.m

    r22278 r22283  
    6464        list = {'SedimentHead','SedimentHeadResidual','EffectivePressure'};
    6565        if self.isefficientlayer,
    66             list=[list,{'EplHead','HydrologydcMaskEplactiveNode', ...
    67                         'HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}];
     66            list=[list,{'EplHead','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}];
    6867        end
    6968        if self.steps_per_step>1,
    70             list = [list,'TimeAverageEffectivePressure'];
     69            list = [list,'EffectivePressureTimeAverage'];
    7170        end
    7271    end % }}}   
  • issm/trunk-jpl/src/m/classes/hydrologydc.py

    r22278 r22283  
    149149                        list.extend(['EplHead','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'])
    150150                if self.steps_per_step>1:
    151                         list.extend(['TimeAverageEffectivePressure'])
     151                        list.extend(['EffectivePressureTimeAverage'])
    152152
    153153                return list
    154 
    155154        #}}}
    156155
     
    178177                md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0,1])
    179178                md = checkfield(md,'fieldname','hydrology.unconfined_flag','numel',[1],'values',[0,1])
    180                 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
     179                md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1)
    181180
    182181                if self.sedimentlimit_flag==1:
  • issm/trunk-jpl/src/m/classes/hydrologyshreve.js

    r21065 r22283  
    1111                this.stabilization=1;
    1212
     13                //default output
     14                this.requested_outputs=['default'];
     15
    1316        }// }}}
    1417                this.disp= function(){// {{{
     
    1720                fielddisplay(this,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]');
    1821                fielddisplay(this,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
     22                fielddisplay(this,'requested_outputs','additional outputs requested');
    1923
    2024        }// }}}
     
    3741                        checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1);
    3842                        checkfield(md,'fieldname','hydrology.stabilization','>=',0);
     43                        checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
    3944
    4045                } // }}}
     
    4348                        WriteData(fid,prefix,'object',this,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    4449                        WriteData(fid,prefix,'object',this,'fieldname','stabilization','format','Double');
     50                        var outputs = this.requested_outputs;
     51                        for (var i=0;i<outputs.length;i++){
     52                                if (outputs[i] == 'default') {
     53                                        outputs.splice(i,1);
     54                                        var newoutputs=this.defaultoutputs(md);
     55                                        for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
     56                                }
     57                        }
     58                        WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray');
     59                }//}}}
     60                this.defaultoutputs = function(md) { //{{{
     61                                return ['Watercolumn','HydrologyWaterVx','HydrologyWaterVy'];
    4562                }//}}}
    4663                this.fix=function() { //{{{
     
    5168        this.spcwatercolumn = NaN;
    5269        this.stabilization  = 0;
     70        this.requested_outputs = [];
    5371        this.setdefaultparameters();
    5472        //}}}
  • issm/trunk-jpl/src/m/classes/hydrologyshreve.m

    r21049 r22283  
    66classdef hydrologyshreve
    77        properties (SetAccess=public)
    8                 spcwatercolumn = NaN;
    9                 stabilization  = 0;
     8                spcwatercolumn     = NaN;
     9                stabilization      = 0;
     10    requested_outputs  = {};
    1011        end
    1112        methods
     
    2223                        end
    2324                end % }}}
     25    function list = defaultoutputs(self,md) % {{{
     26        list = {'Watercolumn','HydrologyWaterVx','HydrologyWaterVy'};
     27    end % }}}   
     28
    2429                function self = setdefaultparameters(self) % {{{
    2530
    2631                        %Type of stabilization to use 0:nothing 1:artificial_diffusivity
    27                         self.stabilization=1;
     32                        self.stabilization     = 1;
     33      self.requested_outputs = {'default'};
    2834                end % }}}
    2935                function md = checkconsistency(self,md,solution,analyses) % {{{
     
    4147                        fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]');
    4248                        fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
     49      fielddisplay(self,'requested_outputs','additional outputs requested');
    4350
    4451                end % }}}
     
    4754                        WriteData(fid,prefix,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    4855                        WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Double');
     56      outputs = self.requested_outputs;
     57      pos  = find(ismember(outputs,'default'));
     58      if ~isempty(pos),
     59        outputs(pos) = [];  %remove 'default' from outputs
     60        outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     61      end
     62      WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray');
    4963                end % }}}
    5064                function savemodeljs(self,fid,modelname) % {{{
  • issm/trunk-jpl/src/m/classes/hydrologyshreve.py

    r21049 r22283  
    1414                self.spcwatercolumn = float('NaN')
    1515                self.stabilization  = 0
    16 
     16                self.requested_outputs = []
    1717                #set defaults
    1818                self.setdefaultparameters()
     
    2424                string="%s\n%s"%(string,fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]'))
    2525                string="%s\n%s"%(string,fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.'))
     26                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
    2627                return string
    2728                #}}}
     
    3334                #Type of stabilization to use 0:nothing 1:artificial_diffusivity
    3435                self.stabilization=1
    35 
     36                self.requested_outputs= ['default']
    3637                return self
    3738        #}}}
     39        def defaultoutputs(self,md): # {{{
     40                list = ['Watercolumn','HydrologyWaterVx','HydrologyWaterVy']
     41                return list
     42        #}}}
     43
    3844        def checkconsistency(self,md,solution,analyses):    # {{{
    3945               
     
    4450                md = checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1)
    4551                md = checkfield(md,'fieldname','hydrology.stabilization','>=',0)
    46 
     52                md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1)
    4753                return md
    4854        # }}}
     
    5157                WriteData(fid,prefix,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
    5258                WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Double')
     59                #process requested outputs
     60                outputs = self.requested_outputs
     61                indices = [i for i, x in enumerate(outputs) if x == 'default']
     62                if len(indices) > 0:
     63                        outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
     64                        outputs    =outputscopy
     65                WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray')
     66
    5367        # }}}
  • issm/trunk-jpl/src/m/classes/hydrologysommers.m

    r21526 r22283  
    1717                relaxation      = 0;
    1818                storage         = 0;
     19    requested_outputs = {};
    1920        end
    2021        methods
     
    3132                        end
    3233                end % }}}
     34    function list = defaultoutputs(self,md) % {{{
     35        list = {'HydrologyHead','HydrologyGapHeight','EffectivePressure','HydrologyBasalFlux','DegreeOfChannelization'};
     36    end % }}}   
     37
    3338                function self = setdefaultparameters(self) % {{{
    3439              % Set under-relaxation parameter to be 1 (no under-relaxation of nonlinear iteration)     
    3540                        self.relaxation=1;
    3641                        self.storage=0;
     42      self.requested_outputs={'default'};
    3743                end % }}}
    3844                function md = checkconsistency(self,md,solution,analyses) % {{{
     
    5460         md = checkfield(md,'fieldname','hydrology.relaxation','>=',0);
    5561                        md = checkfield(md,'fieldname','hydrology.storage','>=',0);
     62      md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
    5663                end % }}}
    5764                function disp(self) % {{{
     
    6875                        fielddisplay(self,'relaxation','under-relaxation coefficient for nonlinear iteration');
    6976                        fielddisplay(self,'storage','englacial storage coefficient (void ratio)');
     77      fielddisplay(self,'requested_outputs','additional outputs requested');
    7078                end % }}}
    7179                function marshall(self,prefix,md,fid) % {{{
     
    8391                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','neumannflux','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts);
    8492                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1);
    85          WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double');
     93      WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double');
    8694                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','storage','format','Double');
     95      outputs = self.requested_outputs;
     96      pos  = find(ismember(outputs,'default'));
     97      if ~isempty(pos),
     98        outputs(pos) = [];  %remove 'default' from outputs
     99        outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     100      end
     101      WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray');
    87102                end % }}}
    88103        end
  • issm/trunk-jpl/src/m/classes/hydrologysommers.py

    r22267 r22283  
    2323                self.relaxation      = 0
    2424                self.storage         = 0
     25                self.requested_outputs = []
    2526
    2627                #set defaults
     
    4243                string="%s\n%s"%(string,fielddisplay(self,'relaxation','under-relaxation coefficient for nonlinear iteration'))
    4344                string="%s\n%s"%(string,fielddisplay(self,'storage','englacial storage coefficient (void ratio)'))
     45                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
    4446                return string
    4547                #}}}
     
    5153                self.relaxation=1
    5254                self.storage=0
     55                self.requested_outputs=['default']
    5356                return self
    5457        #}}}
     58        def defaultoutputs(self,md): # {{{
     59                list = ['HydrologyHead','HydrologyGapHeight','EffectivePressure','HydrologyBasalFlux','DegreeOfChannelization']
     60                return list
     61        #}}}
     62
    5563        def checkconsistency(self,md,solution,analyses):    # {{{
    5664               
     
    7078                md = checkfield(md,'fieldname','hydrology.relaxation','>=',0)   
    7179                md = checkfield(md,'fieldname','hydrology.storage','>=',0)
     80                md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1)
    7281
    7382                return md
     
    8695                WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','neumannflux','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts)
    8796                WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1)
    88                 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double')
     97                WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double')
    8998                WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','storage','format','Double')
     99                #process requested outputs
     100                outputs = self.requested_outputs
     101                indices = [i for i, x in enumerate(outputs) if x == 'default']
     102                if len(indices) > 0:
     103                        outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
     104                        outputs    =outputscopy
     105                WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray')
    90106        # }}}
Note: See TracChangeset for help on using the changeset viewer.