Skip to content

Commit 7da7414

Browse files
authored
Merge pull request #1081 from pybamm-team/issue-1075-default-rpts
#1075 update default var pts
2 parents 712ed9b + fbddd16 commit 7da7414

File tree

5 files changed

+35
-6
lines changed

5 files changed

+35
-6
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
## Bug fixes
1414

15+
- Update the default variable points to better capture behaviour in the solid particles in li-ion models ([#1081](https://github.com/pybamm-team/PyBaMM/pull/1081))
1516
- Fix `QuickPlot` to display variables discretised by FEM (in y-z) properly ([#1078](https://github.com/pybamm-team/PyBaMM/pull/1078))
1617
- Add length scales to `EffectiveResistance` models ([#1071](https://github.com/pybamm-team/PyBaMM/pull/1071))
1718
- Allowed for pybamm functions exp, sin, cos, sqrt to be used in expression trees that

pybamm/models/full_battery_models/base_battery_model.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -113,15 +113,19 @@ def default_geometry(self):
113113
@property
114114
def default_var_pts(self):
115115
var = pybamm.standard_spatial_vars
116-
return {
116+
base_var_pts = {
117117
var.x_n: 20,
118118
var.x_s: 20,
119119
var.x_p: 20,
120-
var.r_n: 10,
121-
var.r_p: 10,
120+
var.r_n: 30,
121+
var.r_p: 30,
122122
var.y: 10,
123123
var.z: 10,
124124
}
125+
# Reduce the default points for 2D current collectors
126+
if self.options["dimensionality"] == 2:
127+
base_var_pts.update({var.x_n: 10, var.x_s: 10, var.x_p: 10})
128+
return base_var_pts
125129

126130
@property
127131
def default_submesh_types(self):

tests/integration/test_solvers/test_solution.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,11 @@ def test_append_external_variables(self):
8484
# solve model
8585
solver = model.default_solver
8686

87+
var = pybamm.standard_spatial_vars
88+
Nr = model.default_var_pts[var.r_n]
89+
8790
T_av = 0
88-
c_s_n_av = np.ones((10, 1)) * 0.6
91+
c_s_n_av = np.ones((Nr, 1)) * 0.6
8992
external_variables = {
9093
"Volume-averaged cell temperature": T_av,
9194
"X-averaged negative particle concentration": c_s_n_av,
@@ -111,7 +114,7 @@ def test_append_external_variables(self):
111114
t_eval = np.linspace(0, 3600)
112115
sol = solver.solve(model, t_eval, external_variables=external_variables)
113116
np.testing.assert_array_equal(
114-
sol.inputs["Volume-averaged cell temperature"], np.zeros((1, len(sol.t))),
117+
sol.inputs["Volume-averaged cell temperature"], np.zeros((1, len(sol.t)))
115118
)
116119
np.testing.assert_array_equal(
117120
sol.inputs["X-averaged negative particle concentration"],

tests/unit/test_models/test_full_battery_models/test_base_battery_model.py

+18
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,24 @@ def test_default_submesh_types(self):
7676
)
7777
)
7878

79+
def test_default_var_pts(self):
80+
var = pybamm.standard_spatial_vars
81+
var_pts = {
82+
var.x_n: 20,
83+
var.x_s: 20,
84+
var.x_p: 20,
85+
var.r_n: 30,
86+
var.r_p: 30,
87+
var.y: 10,
88+
var.z: 10,
89+
}
90+
model = pybamm.BaseBatteryModel({"dimensionality": 0})
91+
self.assertDictEqual(var_pts, model.default_var_pts)
92+
93+
var_pts.update({var.x_n: 10, var.x_s: 10, var.x_p: 10})
94+
model = pybamm.BaseBatteryModel({"dimensionality": 2})
95+
self.assertDictEqual(var_pts, model.default_var_pts)
96+
7997
def test_default_spatial_methods(self):
8098
model = pybamm.BaseBatteryModel({"dimensionality": 0})
8199
self.assertTrue(

tests/unit/test_simulation.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,11 @@ def test_set_external_variable(self):
244244
model = pybamm.lithium_ion.SPMe(model_options)
245245
sim = pybamm.Simulation(model)
246246

247+
var = pybamm.standard_spatial_vars
248+
Nr = model.default_var_pts[var.r_n]
249+
247250
T_av = 0
248-
c_s_n_av = np.ones((10, 1)) * 0.5
251+
c_s_n_av = np.ones((Nr, 1)) * 0.5
249252
external_variables = {
250253
"Volume-averaged cell temperature": T_av,
251254
"X-averaged negative particle concentration": c_s_n_av,

0 commit comments

Comments
 (0)