annotate +grid/evalOnTest.m @ 958:72cd29107a9a feature/poroelastic

Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
author Martin Almquist <malmquist@stanford.edu>
date Wed, 05 Dec 2018 18:58:10 -0800
parents 190941ec12d8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
157
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 function tests = evalOnTest()
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 tests = functiontests(localfunctions);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 function testInputConstant(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 in = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 0,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 47,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 1,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 [1; 2],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 out = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 [0; 0; 0],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 [47; 47; 47],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 [1; 1; 1],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 [1; 2; 1; 2; 1; 2],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 g = getTestGrid('1d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 for i = 1:length(in)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 gf = grid.evalOn(g,in{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 testCase.verifyEqual(gf, out{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27
277
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
28 % evalOn should give and error if the number of inputs to func is not the same as
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
29 % the number of dimensions of the grid.
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
30 function testNumberOfInputs(testCase)
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
31 cases = {
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
32 {getTestGrid('1d'), @(x,y)x-y},
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
33 {getTestGrid('2d'), @(x)x },
623
190941ec12d8 Print cleaning of evalOn and evalOnTest
Jonatan Werpers <jonatan@werpers.com>
parents: 277
diff changeset
34 };
277
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
35
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
36 for i = 1:length(cases)
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
37 g = cases{i}{1};
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
38 f = cases{i}{2};
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
39 testCase.verifyError(@()grid.evalOn(g, f),'grid:evalOn:WrongNumberOfInputs',sprintf('in(%d) = %s',i,toString(f)));
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
40 end
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
41 end
4c3f55a628c8 Made evalOn give more error message.
Jonatan Werpers <jonatan@werpers.com>
parents: 157
diff changeset
42
157
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 function testInputScalarFunction1d(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 in = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 @(x)1+x*0,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 @(x)x,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 @(x)x.*x,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 out = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 [1; 1; 1],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 [0; 1; 2],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 [0; 1; 4],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 g = getTestGrid('1d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 for i = 1:length(in)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 gf = grid.evalOn(g,in{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 testCase.verifyEqual(gf, out{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 function testInputScalarFunction2d(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 in = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 @(x,y)1+x*0,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 @(x,y)x-y,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 @(x,y)x./(1+y),
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 out = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72 [1; 1; 1; 1; 1; 1; 1; 1; 1],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 [0; -1; -2; 1; 0; -1; 2; 1; 0],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 [0; 0; 0; 1; 1/2; 1/3; 2; 1; 2/3],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 g = getTestGrid('2d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 for i = 1:length(in)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80 gf = grid.evalOn(g, in{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81 testCase.verifyEqual(gf, out{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 function testInputVectorFunction(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87 g = getTestGrid('1d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 in = @(x)[x; -2*x];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 out = [0; 0; 1; -2; 2; -4];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 gf = grid.evalOn(g,in);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
92 testCase.verifyEqual(gf, out);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
93
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
94 g = getTestGrid('2d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95 in = @(x,y)[x.^2; -2*y];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
96 out = [
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97 0; 0;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98 0; -2;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
99 0; -4;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
100 1; 0;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
101 1; -2;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
102 1; -4;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103 4; 0;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104 4; -2;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105 4; -4;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
106 ];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
108 gf = grid.evalOn(g,in);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
109 testCase.verifyEqual(gf, out);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
113 function testInputErrorVectorValued(testCase)
623
190941ec12d8 Print cleaning of evalOn and evalOnTest
Jonatan Werpers <jonatan@werpers.com>
parents: 277
diff changeset
114 in = {
157
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
115 [1,2,3],
623
190941ec12d8 Print cleaning of evalOn and evalOnTest
Jonatan Werpers <jonatan@werpers.com>
parents: 277
diff changeset
116 @(x,y)[x,-y],
157
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
117 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
118
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
119 g = getTestGrid('2d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
120
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
121 for i = 1:length(in)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
122 testCase.verifyError(@()grid.evalOn(g, in{i}),'grid:evalOn:VectorValuedWrongDim',sprintf('in(%d) = %s',i,toString(in{i})));
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
123 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
124 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
125
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
126 function g = getTestGrid(d)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
127 switch d
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
128 case '1d'
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
129 g = grid.equidistant(3,{0,2});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
130 case '2d'
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
131 g = grid.equidistant([3,3],{0,2},{0,2});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
132 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
133 end