source: issm/trunk-jpl/src/m/classes/hydrologyshreve.m@ 15131

Last change on this file since 15131 was 15131, checked in by Mathieu Morlighem, 12 years ago

CHG: object's marshall's now have access to md

File size: 2.4 KB
RevLine 
[14555]1%HYDROLOGYSHREVE class definition
[9617]2%
3% Usage:
[14555]4% hydrologyshreve=hydrologyshreve();
[9617]5
[14555]6classdef hydrologyshreve
[9617]7 properties (SetAccess=public)
[10969]8 spcwatercolumn = NaN;
9 n = 0;
10 CR = 0;
11 p = 0;
12 q = 0;
13 kn = 0;
14 stabilization = 0;
[9617]15 end
16 methods
[14555]17 function obj = hydrologyshreve(varargin) % {{{
[9617]18 switch nargin
19 case 0
20 obj=setdefaultparameters(obj);
[14618]21 case 1
22 obj=structtoobj(obj,varargin{1});
[9617]23 otherwise
24 error('constructor not supported');
25 end
26 end % }}}
27 function obj = setdefaultparameters(obj) % {{{
28
29 %Parameters from Johnson's 2002 thesis, section 3.5.4
[14555]30 obj.n = .02;
31 obj.CR = .01;
32 obj.p = 2;
33 obj.q = 1;
34 obj.kn = 0;
[9646]35
36 %Type of stabilization to use 0:nothing 1:artificial_diffusivity
37 obj.stabilization=1;
[9617]38 end % }}}
[12663]39 function md = checkconsistency(obj,md,solution,analyses) % {{{
[9739]40
[9854]41 %Early return
[14771]42 if ~ismember(HydrologyShreveAnalysisEnum(),analyses)
43 return;
44 end
[9854]45
[12663]46 md = checkfield(md,'hydrology.spcwatercolumn','forcing',1);
47 md = checkfield(md,'hydrology.stabilization','>=',0);
[9739]48 end % }}}
[9820]49 function disp(obj) % {{{
[14555]50 disp(sprintf(' hydrologyshreve solution parameters:'));
[9820]51
[14640]52 fielddisplay(obj,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]');
[9820]53 fielddisplay(obj,'n','Manning roughness coefficient');
[11141]54 fielddisplay(obj,'CR','tortuosity parameter');
[9820]55 fielddisplay(obj,'p','dimensionless exponent in Manning velocity formula');
56 fielddisplay(obj,'q','dimensionless exponent in Manning velocity formula');
57 fielddisplay(obj,'kn','parameter in effective pressure formula');
[10538]58 fielddisplay(obj,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
[9820]59
60 end % }}}
[15131]61 function marshall(obj,md,fid) % {{{
[14838]62 WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologyshreveEnum(),'format','Integer');
[10969]63 WriteData(fid,'object',obj,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1);
[13020]64 WriteData(fid,'object',obj,'fieldname','n','format','Double');
[10969]65 WriteData(fid,'object',obj,'fieldname','CR','format','Double');
66 WriteData(fid,'object',obj,'fieldname','p','format','Double');
67 WriteData(fid,'object',obj,'fieldname','q','format','Double');
68 WriteData(fid,'object',obj,'fieldname','kn','format','Double');
69 WriteData(fid,'object',obj,'fieldname','stabilization','format','Double');
70 end % }}}
[9617]71 end
72end
Note: See TracBrowser for help on using the repository browser.