-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtmatrom3.m
137 lines (96 loc) · 4.04 KB
/
tmatrom3.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
% TMATROM base class
%
% This class is intended as a base class for the main TMATROM classes,
% such as tmatrix and wavefunctionexpansion etc. It handles version
% numbering and the splash message.
%
% tmatrom3.version() returns the version number.
%
% tmatrom3.date() returns the date of the current version
%
% See also: tmatrix, wavefunctionexpansion.
%
% Stuart C. Hawkins - 20 April 2021
% Copyright 2019-2022 Stuart C. Hawkins
%
% This file is part of TMATROM3
%
% TMATROM3 is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% TMATROM3 is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with TMATROM3. If not, see <http://www.gnu.org/licenses/>.
classdef tmatrom3 < handle
properties
end
methods
%-----------------------------------------
% constructor
%-----------------------------------------
function self = tmatrom3()
% call initialise message... this displays the version number
% etc
tmatrom3.initialise();
end
end
methods(Static,Sealed)
%-----------------------------------------
% version number for package
%-----------------------------------------
function val = version()
val = 1.0;
end
%-----------------------------------------
% date for current release of the package
%-----------------------------------------
function val = date()
val = '22 September 2021';
end
%-----------------------------------------
% print version and copyright
% information for the package
%-----------------------------------------
function showInfo()
fprintfcenter('TMATROM3 (acoustic)');
fprintfcenter('Version %0.1f (%s)',tmatrom3.version(),...
tmatrom3.date());
fprintfcenter('%s','(c) Stuart C. Hawkins and M. Ganesh, 2021');
end
%-----------------------------------------
% print status information for the package.
%-----------------------------------------
function showStatus()
% nothing to do... no things saved in current version
end
%-----------------------------------------
% acts like a static variable that stores
% whether or not the class has been used.
% Mainly this is used to show the info message
% the first time the class is used.
%-----------------------------------------
function initialise(varargin)
persistent has_been_initialised
% if class has not been initialised yet...
if isempty(has_been_initialised) || has_been_initialised==0
if nargin==0
% Note: if a parameter is provided then the status
% message is not printed. Thus the welcome message can
% suppressed if desired.
% ...then show class info and status
tmatrom3.showInfo()
fprintf('\n');
tmatrom3.showStatus()
end
% record that the class has been initialised
has_been_initialised = 1;
end
end
end % static methods
end