source: issm/branches/trunk-jpl-damage/src/m/classes/transient.m@ 11427

Last change on this file since 11427 was 10969, checked in by Mathieu Morlighem, 13 years ago

Improvement: marshall is now a method of all model fields, removed unnecessary model fields (numcontrols... etc)

File size: 2.3 KB
Line 
1%TRANSIENT class definition
2%
3% Usage:
4% transient=transient();
5
6classdef transient
7 properties (SetAccess=public)
8 isprognostic = 0;
9 isdiagnostic = 0;
10 isthermal = 0;
11 isgroundingline = 0;
12 requested_outputs = NaN;
13 end
14 methods
15 function obj = transient(varargin) % {{{
16 switch nargin
17 case 0
18 obj=setdefaultparameters(obj);
19 case 1
20 in=varargin{1};
21 if (isa(in,'numeric') & in==0),
22 % requesting templates do nothing
23 else
24 error('constructor not supported');
25 end
26 otherwise
27 error('constructor not supported');
28 end
29 end % }}}
30 function obj = setdefaultparameters(obj) % {{{
31
32 %full analysis: Diagnostic, Prognostic and Thermal but no groundingline migration for now
33 obj.isprognostic=1;
34 obj.isdiagnostic=1;
35 obj.isthermal=1;
36 obj.isgroundingline=0;
37
38 end % }}}
39 function checkconsistency(obj,md,solution,analyses) % {{{
40
41 %Early return
42 if solution~=TransientSolutionEnum, return; end
43
44 checkfield(md,'transient.isprognostic','numel',1,'values',[0 1]);
45 checkfield(md,'transient.isdiagnostic','numel',1,'values',[0 1]);
46 checkfield(md,'transient.isthermal','numel',1,'values',[0 1]);
47 checkfield(md,'transient.isgroundingline','numel',1,'values',[0 1]);
48
49 end % }}}
50 function disp(obj) % {{{
51 disp(sprintf(' transient solution parameters:'));
52
53 fielddisplay(obj,'isprognostic','indicates if a prognostic solution is used in the transient');
54 fielddisplay(obj,'isthermal','indicates if a thermal solution is used in the transient');
55 fielddisplay(obj,'isdiagnostic','indicates if a diagnostic solution is used in the transient');
56 fielddisplay(obj,'isgroundingline','indicates if a groundingline migration is used in the transient');
57 fielddisplay(obj,'requested_outputs','list of additional outputs requested');
58
59 end % }}}
60 function marshall(obj,fid) % {{{
61 WriteData(fid,'object',obj,'fieldname','isprognostic','format','Boolean');
62 WriteData(fid,'object',obj,'fieldname','isdiagnostic','format','Boolean');
63 WriteData(fid,'object',obj,'fieldname','isthermal','format','Boolean');
64 WriteData(fid,'object',obj,'fieldname','isgroundingline','format','Boolean');
65 WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
66 end % }}}
67 end
68end
Note: See TracBrowser for help on using the repository browser.