@@ -30,11 +30,17 @@ def test_leading_order_convergence(self):
30
30
var = pybamm .standard_spatial_vars
31
31
var_pts = {var .x_n : 3 , var .x_s : 3 , var .x_p : 3 }
32
32
mesh = pybamm .Mesh (geometry , full_model .default_submesh_types , var_pts )
33
- loqs_disc = pybamm .Discretisation (mesh , full_model .default_spatial_methods )
33
+
34
+ method_options = {"extrapolation" : {"order" : "linear" , "use bcs" : False }}
35
+ spatial_methods = {
36
+ "macroscale" : pybamm .FiniteVolume (method_options ),
37
+ "current collector" : pybamm .ZeroDimensionalMethod (method_options ),
38
+ }
39
+ loqs_disc = pybamm .Discretisation (mesh , spatial_methods )
34
40
loqs_disc .process_model (leading_order_model )
35
- comp_disc = pybamm .Discretisation (mesh , full_model . default_spatial_methods )
41
+ comp_disc = pybamm .Discretisation (mesh , spatial_methods )
36
42
comp_disc .process_model (composite_model )
37
- full_disc = pybamm .Discretisation (mesh , full_model . default_spatial_methods )
43
+ full_disc = pybamm .Discretisation (mesh , spatial_methods )
38
44
full_disc .process_model (full_model )
39
45
40
46
def get_max_error (current ):
@@ -92,6 +98,7 @@ def get_max_error(current):
92
98
loqs_errs , comp_errs = [np .array (err ) for err in zip (* errs )]
93
99
# Get rates: expect linear convergence for loqs, quadratic for composite
94
100
loqs_rates = np .log2 (loqs_errs [:- 1 ] / loqs_errs [1 :])
101
+
95
102
np .testing .assert_array_less (0.99 * np .ones_like (loqs_rates ), loqs_rates )
96
103
# Composite not converging as expected
97
104
comp_rates = np .log2 (comp_errs [:- 1 ] / comp_errs [1 :])
0 commit comments