annotate +util/ReplaceableString.m @ 1289:2fd2e2337b77 feature/boundary_optimized_grids

Add utility function for constructing a (possibly multidimensional) grid based on the grid points used by the boundary optimized SBP operators
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Wed, 01 Jul 2020 15:15:30 +0200
parents f30eafd6d4dc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef ReplaceableString < handle
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 n
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 fmt
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 param
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 methods
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 function obj = ReplaceableString(fmt, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 default_arg('fmt', '');
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 obj.n = 0;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 obj.setFormat(fmt);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 function setFormat(obj, fmt)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 obj.fmt = fmt;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
131
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
21 function appendFormat(obj, fmt)
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
22 obj.fmt = [obj.fmt, fmt];
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
23 end
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
24
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 function update(obj, fmt, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 obj.setFormat(fmt);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 obj.display();
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 function updateParam(obj, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 obj.display();
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
241
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
37 function show(obj, varargin)
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
38 obj.param = varargin;
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
39 obj.display();
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
40 end
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
41
229
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
42 function remove(obj)
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
43 obj.update('');
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
44 end
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
45
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 function display(obj)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 reverseStr = repmat(sprintf('\b'), 1, obj.n);
229
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
48 cleareStr = repmat(sprintf(' '), 1, obj.n);
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
49 newStr = sprintf(obj.fmt, obj.param{:});
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
50 fprintf([reverseStr, cleareStr, reverseStr, newStr]);
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 obj.n = length(newStr);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 function b = padStr(a, n)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 b = sprintf('%-*s', n, a);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 end
894
f30eafd6d4dc Add new formatting method to TextTable
Jonatan Werpers <jonatan@werpers.com>
parents: 241
diff changeset
61
f30eafd6d4dc Add new formatting method to TextTable
Jonatan Werpers <jonatan@werpers.com>
parents: 241
diff changeset
62 % TODO: Add a debug mode which prints without replacing?