Skip to content

Commit c31a7a2

Browse files
Add warnings when parameters are inconsistent with length of Y0
1 parent 33b7f02 commit c31a7a2

File tree

5 files changed

+58
-2
lines changed

5 files changed

+58
-2
lines changed

src/+otp/+allencahn/AllenCahnProblem.m

+10
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@
88
end
99

1010
methods (Access = protected)
11+
function validateNewState(obj, newTimeSpan, newY0, newParameters)
12+
y0Len = length(newY0);
13+
gridPts = newParameters.Size^2;
14+
15+
if y0Len ~= gridPts
16+
warning('Y0 has size %d, but there are %d grid points', ...
17+
y0Len, gridPts);
18+
end
19+
end
20+
1121
function onSettingsChanged(obj)
1222
n = obj.Parameters.Size;
1323
alpha = obj.Parameters.Alpha;

src/+otp/+cusp/CUSPProblem.m

+10
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@
1919
end
2020

2121
methods (Access = protected)
22+
function validateNewState(obj, newTimeSpan, newY0, newParameters)
23+
y0Len = length(newY0);
24+
gridPts = 3 * newParameters.Size;
25+
26+
if y0Len ~= gridPts
27+
warning('Y0 has size %d, but there are %d grid points', ...
28+
y0Len, gridPts);
29+
end
30+
end
31+
2232
function onSettingsChanged(obj)
2333
n = obj.Parameters.Size;
2434
epsilon = obj.Parameters.Epsilon;

src/+otp/+nbody/NBodyProblem.m

+12
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@
66
end
77

88
methods (Access = protected)
9+
function validateNewState(obj, newTimeSpan, newY0, newParameters)
10+
numMasses = length(newParameters.Masses);
11+
expectedLen = numMasses * 2^newParameters.SpatialDim;
12+
actualLen = length(newY0);
13+
14+
if expectedLen ~= actualLen
15+
warning( ...
16+
'With %d masses, Y0 should have length %d but has %d', ...
17+
numMasses, expectedLen, actualLen);
18+
end
19+
end
20+
921
function onSettingsChanged(obj)
1022
spatialDim = obj.Parameters.SpatialDim;
1123
masses = obj.Parameters.Masses;

src/+otp/+pendulum/PendulumProblem.m

+17-2
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,25 @@
2424
end
2525

2626
methods (Access = protected)
27+
function validateNewState(obj, newTimeSpan, newY0, newParameters)
28+
y0Len = length(newY0);
29+
numMasses = length(newParameters.Masses);
30+
numLens = length(newParameters.Lengths);
31+
32+
if y0Len ~= 2 * numMasses
33+
warning( ...
34+
'With %d masses, Y0 should have length %d but has %d', ...
35+
numMasses, 2 * numMasses, y0Len);
36+
elseif numMasses ~= numLens
37+
warning('Masses has length %d, but Lengths has length %d', ...
38+
numMasses, numLens);
39+
end
40+
end
41+
2742
function onSettingsChanged(obj)
2843
g = obj.Parameters.Gravity;
29-
lengths = obj.Parameters.Lengths(:);
30-
masses = obj.Parameters.Masses(:);
44+
lengths = obj.Parameters.Lengths;
45+
masses = obj.Parameters.Masses;
3146

3247
numBobs = min(numel(lengths), numel(masses));
3348
lengths = lengths(1:numBobs);

src/+otp/+qg/QuasiGeostrophicProblem.m

+9
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,15 @@
100100
end
101101

102102
methods (Access = protected)
103+
function validateNewState(obj, newTimeSpan, newY0, newParameters)
104+
y0Len = length(newY0);
105+
gridPts = newParameters.Nx * newParameters.Ny;
106+
107+
if y0Len ~= gridPts
108+
warning('Y0 has size %d, but there are %d grid points', ...
109+
y0Len, gridPts);
110+
end
111+
end
103112

104113
function onSettingsChanged(obj)
105114

0 commit comments

Comments
 (0)