source: issm/trunk-jpl/src/m/classes/verbose.m@ 10937

Last change on this file since 10937 was 9853, checked in by Mathieu Morlighem, 14 years ago

Checkmodelconsistency passes solution and analyses to the objects for further checks

File size: 3.5 KB
Line 
1%VERBOSE class definition
2%
3% Available verbosity levels:
4% mprocessor : model processing
5% module : modules
6% solution : solution sequence
7% solver : solver info (extensive)
8% convergence : convergence criteria
9% control : control method
10% qmu : sensitivity analysis
11%
12% Usage:
13% verbose=verbose();
14% verbose=verbose(3);
15% verbose=verbose('001100');
16% verbose=verbose('module',true,'solver',false);
17
18%WARNING: some parts of this file are Synchronized with src/c/shared/Numerics/Verbosity.h
19% Do not modify these sections. See src/c/shared/Numerics/README for more info
20
21classdef verbose
22 properties (SetAccess=public)
23 % {{{1
24 %BEGINFIELDS
25 mprocessor=false;
26 module=false;
27 solution=false;
28 solver=false;
29 convergence=false;
30 control=false;
31 qmu=false;
32 %ENDFIELDS
33 % }}}
34 end
35 %}}}
36 methods
37 function verbose=verbose(varargin) % {{{1
38
39 if nargin==1,
40
41 binary=varargin{1};
42 if ischar(binary),
43 if strcmpi(binary,'all'),
44 binary=2^11-1; %all ones
45 verbose=BinaryToVerbose(verbose,binary);
46 verbose.solver=false; %Do not use by default
47 else
48 binary=bin2dec(binary);
49 verbose=BinaryToVerbose(verbose,binary);
50 end
51 end
52 else
53
54 options=pairoptions(varargin{:});
55 for i=1:size(options.list,1),
56 fieldname=options.list{i,1};
57 fieldvalue=options.list{i,2};
58 if ismember(fieldname,properties('verbose')),
59 if islogical(fieldvalue) | isnumeric(fieldvalue),
60 verbose.(fieldname)=logical(fieldvalue);
61 else
62 error('verbose supported field values are logicals only (true or false)');
63 end
64 else
65 disp(['''' fieldname ''' is not a property of verbose verbose']);
66 end
67 end
68
69 end
70 end
71 %}}}
72 function binary=VerboseToBinary(verbose) % {{{1
73
74 %BEGINVERB2BIN
75 binary=0;
76 if (verbose.mprocessor), binary=bitor(binary,1); end
77 if (verbose.module), binary=bitor(binary,2); end
78 if (verbose.solution), binary=bitor(binary,4); end
79 if (verbose.solver), binary=bitor(binary,8); end
80 if (verbose.convergence), binary=bitor(binary,16); end
81 if (verbose.control), binary=bitor(binary,32); end
82 if (verbose.qmu), binary=bitor(binary,64); end
83 %ENDVERB2BIN
84
85 end
86 %}}}
87 function verbose=BinaryToVerbose(verbose,binary) % {{{1
88
89 %BEGINBIN2VERB
90 if bitand(binary,1), verbose.mprocessor=true; else verbose.mprocessor=false; end
91 if bitand(binary,2), verbose.module=true; else verbose.module=false; end
92 if bitand(binary,4), verbose.solution=true; else verbose.solution=false; end
93 if bitand(binary,8), verbose.solver=true; else verbose.solver=false; end
94 if bitand(binary,16), verbose.convergence=true; else verbose.convergence=false; end
95 if bitand(binary,32), verbose.control=true; else verbose.control=false; end
96 if bitand(binary,64), verbose.qmu=true; else verbose.qmu=false; end
97 %ENDBIN2VERB
98
99 end
100 %}}}
101 function checkconsistency(obj,md,solution,analyses) % {{{
102
103 end % }}}
104 function disp(verbose) % {{{1
105
106 %BEGINDISP
107 disp(sprintf('class ''%s'' = ',class(verbose)));
108 disp(sprintf(' %15s : %s','mprocessor',mat2str(verbose.mprocessor)));
109 disp(sprintf(' %15s : %s','module',mat2str(verbose.module)));
110 disp(sprintf(' %15s : %s','solution',mat2str(verbose.solution)));
111 disp(sprintf(' %15s : %s','solver',mat2str(verbose.solver)));
112 disp(sprintf(' %15s : %s','convergence',mat2str(verbose.convergence)));
113 disp(sprintf(' %15s : %s','control',mat2str(verbose.control)));
114 disp(sprintf(' %15s : %s','qmu',mat2str(verbose.qmu)));
115 %ENDDISP
116
117 end
118 %}}}
119 end
120end
Note: See TracBrowser for help on using the repository browser.