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

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

CHG: moved hydrology to hydrologyshreve, we are going to have more hydrological models coming

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