From c0256cd6dea6226b13f1fdd3ce5f504bcc74e405 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Wed, 29 Jul 2020 18:28:29 +0200 Subject: [PATCH 01/22] #1117 add total lithium variables --- .../base_electrolyte_diffusion.py | 11 ++++++++++ .../submodels/particle/base_particle.py | 22 ++++++++++--------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index 7748cde679..3a3a75d4fb 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -42,6 +42,7 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): """ c_e_typ = self.param.c_e_typ + L_x = self.param.L_x c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) c_e_av = pybamm.x_average(c_e) @@ -49,6 +50,13 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): c_e_s_av = pybamm.x_average(c_e_s) c_e_p_av = pybamm.x_average(c_e_p) + eps_n = self.param.epsilon_n + eps_s = self.param.epsilon_s + eps_p = self.param.epsilon_p + eps = pybamm.Concatenation(eps_n, eps_s, eps_p) + + c_e_total = pybamm.Integral(eps * c_e, pybamm.standard_spatial_vars.x) + variables = { "Electrolyte concentration": c_e, "Electrolyte concentration [mol.m-3]": c_e_typ * c_e, @@ -74,6 +82,9 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): "X-averaged positive electrolyte concentration": c_e_p_av, "X-averaged positive electrolyte concentration [mol.m-3]": c_e_typ * c_e_p_av, + "Total lithium concentration in electrolyte [mol.m-2]": c_e_typ + * L_x + * c_e_total, } return variables diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 28a696f3c6..c9a925d7b3 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -24,18 +24,19 @@ def __init__(self, param, domain): def _get_standard_concentration_variables(self, c_s, c_s_xav): c_s_surf = pybamm.surf(c_s) - c_s_surf_av = pybamm.x_average(c_s_surf) - geo_param = pybamm.geometric_parameters if self.domain == "Negative": c_scale = self.param.c_n_max - active_volume = geo_param.a_n_dim * geo_param.R_n / 3 + eps_s = self.param.epsilon_s_n + L = self.param.L_n elif self.domain == "Positive": c_scale = self.param.c_p_max - active_volume = geo_param.a_p_dim * geo_param.R_p / 3 - c_s_av = pybamm.r_average(c_s_xav) - c_s_av_vol = active_volume * c_s_av + eps_s = self.param.epsilon_s_p + L = self.param.L_p + + c_s_rav = pybamm.r_average(c_s) + c_s_vol_av = pybamm.x_average(eps_s * c_s_rav) variables = { self.domain + " particle concentration": c_s, self.domain + " particle concentration [mol.m-3]": c_s * c_scale, @@ -52,12 +53,13 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): "X-averaged " + self.domain.lower() + " particle surface concentration [mol.m-3]": c_scale * c_s_surf_av, - self.domain + " electrode active volume fraction": active_volume, - self.domain + " electrode volume-averaged concentration": c_s_av_vol, + self.domain + " electrode active volume fraction": eps_s, + self.domain + " electrode volume-averaged concentration": c_s_vol_av, self.domain + " electrode " - + "volume-averaged concentration [mol.m-3]": c_s_av_vol * c_scale, - self.domain + " electrode average extent of lithiation": c_s_av, + + "volume-averaged concentration [mol.m-3]": c_s_vol_av * c_scale, + self.domain + " electrode average extent of lithiation": c_s_rav, + "Total lithium concentration in " + self.domain.lower() + " electrode [mol.m-2]": c_s_vol_av * c_scale * L, } return variables From 39166c80fa3b2fe26c98347d604e1bd5e3053878 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Wed, 29 Jul 2020 19:39:25 +0200 Subject: [PATCH 02/22] #1056 needs further debugging --- .../electrolyte_diffusion/base_electrolyte_diffusion.py | 2 +- pybamm/models/submodels/particle/base_particle.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index 3a3a75d4fb..26be1aad9c 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -55,7 +55,7 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): eps_p = self.param.epsilon_p eps = pybamm.Concatenation(eps_n, eps_s, eps_p) - c_e_total = pybamm.Integral(eps * c_e, pybamm.standard_spatial_vars.x) + c_e_total = pybamm.x_average(eps * c_e) variables = { "Electrolyte concentration": c_e, diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index c9a925d7b3..0c66e778ef 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -37,6 +37,7 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): c_s_rav = pybamm.r_average(c_s) c_s_vol_av = pybamm.x_average(eps_s * c_s_rav) + # c_s_vol_av = c_s_rav variables = { self.domain + " particle concentration": c_s, self.domain + " particle concentration [mol.m-3]": c_s * c_scale, @@ -59,7 +60,9 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): + " electrode " + "volume-averaged concentration [mol.m-3]": c_s_vol_av * c_scale, self.domain + " electrode average extent of lithiation": c_s_rav, - "Total lithium concentration in " + self.domain.lower() + " electrode [mol.m-2]": c_s_vol_av * c_scale * L, + "Total lithium concentration in " + + self.domain.lower() + + " electrode [mol.m-2]": c_s_vol_av * c_scale * L, } return variables From 1849f6392069bf2643f9a5ce88c5af5d0ebdd9a3 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 10:03:28 +0200 Subject: [PATCH 03/22] #1117 check where do errors come from --- .../base_electrolyte_diffusion.py | 11 ++++++----- pybamm/models/submodels/particle/base_particle.py | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index 26be1aad9c..709da63b8a 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -50,12 +50,13 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): c_e_s_av = pybamm.x_average(c_e_s) c_e_p_av = pybamm.x_average(c_e_p) - eps_n = self.param.epsilon_n - eps_s = self.param.epsilon_s - eps_p = self.param.epsilon_p - eps = pybamm.Concatenation(eps_n, eps_s, eps_p) + # eps_n = self.param.epsilon_n + # eps_s = self.param.epsilon_s + # eps_p = self.param.epsilon_p + # eps = pybamm.Concatenation(eps_n, eps_s, eps_p) - c_e_total = pybamm.x_average(eps * c_e) + # c_e_total = pybamm.x_average(eps * c_e) + c_e_total = c_e variables = { "Electrolyte concentration": c_e, diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 0c66e778ef..18f29c6890 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -36,8 +36,8 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): L = self.param.L_p c_s_rav = pybamm.r_average(c_s) - c_s_vol_av = pybamm.x_average(eps_s * c_s_rav) - # c_s_vol_av = c_s_rav + # c_s_vol_av = pybamm.x_average(eps_s * c_s_rav) + c_s_vol_av = c_s_rav variables = { self.domain + " particle concentration": c_s, self.domain + " particle concentration [mol.m-3]": c_s * c_scale, From 7567a25eb915d6196331d2673acd4447ae02538e Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 14:57:16 +0200 Subject: [PATCH 04/22] #1117 still needs debugging --- .../base_electrolyte_diffusion.py | 15 ++++++++++----- pybamm/models/submodels/particle/base_particle.py | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index 709da63b8a..af1b05af16 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -50,12 +50,17 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): c_e_s_av = pybamm.x_average(c_e_s) c_e_p_av = pybamm.x_average(c_e_p) - # eps_n = self.param.epsilon_n - # eps_s = self.param.epsilon_s - # eps_p = self.param.epsilon_p - # eps = pybamm.Concatenation(eps_n, eps_s, eps_p) + # if "epsilon_n" in vars(self.param).values(): + # eps_n = self.param.epsilon_n + # eps_s = self.param.epsilon_s + # eps_p = self.param.epsilon_p + # eps = pybamm.Concatenation(eps_n, eps_s, eps_p) - # c_e_total = pybamm.x_average(eps * c_e) + # c_e_total = pybamm.x_average(eps * c_e) + + # raise NotImplementedError("I entered the if statement!!!!") + # else: + # c_e_total = pybamm.x_average(c_e) c_e_total = c_e variables = { diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 18f29c6890..4261eb2ad6 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -60,7 +60,7 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): + " electrode " + "volume-averaged concentration [mol.m-3]": c_s_vol_av * c_scale, self.domain + " electrode average extent of lithiation": c_s_rav, - "Total lithium concentration in " + "Total lithium in " + self.domain.lower() + " electrode [mol.m-2]": c_s_vol_av * c_scale * L, } From 0c15c50ebfd37b9eaba3531365c8dd8d4175fd0b Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 16:44:17 +0200 Subject: [PATCH 05/22] #1117 tidied up --- pybamm/models/submodels/particle/base_particle.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 6cc00cdba8..5153c0c0ea 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -36,8 +36,7 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): L = self.param.L_p c_s_rav = pybamm.r_average(c_s) - # c_s_vol_av = pybamm.x_average(eps_s * c_s_rav) - c_s_vol_av = c_s_rav + c_s_vol_av = pybamm.x_average(eps_s * c_s_rav) variables = { self.domain + " particle concentration": c_s, From 689091fb525ba1516197d09bd316fce1c691cb2e Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 16:46:21 +0200 Subject: [PATCH 06/22] #1117 added total concentration in electrolyte --- .../base_electrolyte_diffusion.py | 48 ++++++++++++------- .../composite_diffusion.py | 2 + .../constant_concentration.py | 5 ++ .../first_order_diffusion.py | 4 ++ .../electrolyte_diffusion/full_diffusion.py | 2 + .../leading_order_diffusion.py | 4 ++ 6 files changed, 48 insertions(+), 17 deletions(-) diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index af1b05af16..1bb1ecbda9 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -42,7 +42,6 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): """ c_e_typ = self.param.c_e_typ - L_x = self.param.L_x c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) c_e_av = pybamm.x_average(c_e) @@ -50,19 +49,6 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): c_e_s_av = pybamm.x_average(c_e_s) c_e_p_av = pybamm.x_average(c_e_p) - # if "epsilon_n" in vars(self.param).values(): - # eps_n = self.param.epsilon_n - # eps_s = self.param.epsilon_s - # eps_p = self.param.epsilon_p - # eps = pybamm.Concatenation(eps_n, eps_s, eps_p) - - # c_e_total = pybamm.x_average(eps * c_e) - - # raise NotImplementedError("I entered the if statement!!!!") - # else: - # c_e_total = pybamm.x_average(c_e) - c_e_total = c_e - variables = { "Electrolyte concentration": c_e, "Electrolyte concentration [mol.m-3]": c_e_typ * c_e, @@ -88,9 +74,6 @@ def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): "X-averaged positive electrolyte concentration": c_e_p_av, "X-averaged positive electrolyte concentration [mol.m-3]": c_e_typ * c_e_p_av, - "Total lithium concentration in electrolyte [mol.m-2]": c_e_typ - * L_x - * c_e_total, } return variables @@ -122,6 +105,37 @@ def _get_standard_flux_variables(self, N_e): return variables + def _get_total_concentration_electrolyte(self, c_e, epsilon): + """ + A private function to obtain the total ion concentration in the electrolyte. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + The electrolyte concentration + epsilon : :class:`pybamm.Symbol` + The porosity + + Returns + ------- + variables : dict + The variables which can be derived from the flux in the + electrolyte. + """ + + c_e_typ = self.param.c_e_typ + L_x = self.param.L_x + + c_e_total = pybamm.x_average(c_e) + + variables = { + "Total concentration in electrolyte [mol.m-2]": c_e_typ + * L_x + * c_e_total, + } + + return variables + def set_events(self, variables): c_e = variables["Electrolyte concentration"] self.events.append( diff --git a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py index eac8e91f27..1a8050d83e 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py @@ -36,6 +36,7 @@ def get_fundamental_variables(self): def get_coupled_variables(self, variables): tor_0 = variables["Leading-order electrolyte tortuosity"] + eps = variables["Leading-order porosity"] c_e_0_av = variables["Leading-order x-averaged electrolyte concentration"] c_e = variables["Electrolyte concentration"] i_e = variables["Electrolyte current density"] @@ -51,6 +52,7 @@ def get_coupled_variables(self, variables): N_e = N_e_diffusion + N_e_migration + N_e_convection variables.update(self._get_standard_flux_variables(N_e)) + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py index 8b90396f7e..c880f0d2ea 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py +++ b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py @@ -36,5 +36,10 @@ def get_fundamental_variables(self): variables.update(self._get_standard_flux_variables(N_e)) + eps = pybamm.standard_variables.eps + c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) + + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) + return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py index 06d5ec45af..7cfbeb1af0 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py @@ -138,4 +138,8 @@ def get_coupled_variables(self, variables): ) variables.update(self._get_standard_flux_variables(N_e)) + c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) + eps = pybamm.Concatenation(eps_n_0, eps_s_0, eps_p_0) + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) + return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py index 4bec2350f7..8b61806e02 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py @@ -34,6 +34,7 @@ def get_fundamental_variables(self): def get_coupled_variables(self, variables): tor = variables["Electrolyte tortuosity"] + eps = variables["Porosity"] c_e = variables["Electrolyte concentration"] i_e = variables["Electrolyte current density"] v_box = variables["Volume-averaged velocity"] @@ -48,6 +49,7 @@ def get_coupled_variables(self, variables): N_e = N_e_diffusion + N_e_migration + N_e_convection variables.update(self._get_standard_flux_variables(N_e)) + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py index 7e96682e0e..67856dbc09 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py @@ -42,6 +42,10 @@ def get_coupled_variables(self, variables): variables.update(self._get_standard_flux_variables(N_e)) + eps = pybamm.standard_variables.eps + c_e = pybamm.standard_variables.c_e + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) + return variables def set_rhs(self, variables): From 151588a29f2f8822d574fb7a7abee11148f2ccdb Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 18:05:49 +0200 Subject: [PATCH 07/22] #1117 fixed bugs --- .../electrolyte_diffusion/first_order_diffusion.py | 7 ++++++- .../electrolyte_diffusion/leading_order_diffusion.py | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py index 7cfbeb1af0..c2501a16e3 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py @@ -139,7 +139,12 @@ def get_coupled_variables(self, variables): variables.update(self._get_standard_flux_variables(N_e)) c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) - eps = pybamm.Concatenation(eps_n_0, eps_s_0, eps_p_0) + eps = pybamm.Concatenation( + pybamm.PrimaryBroadcast(eps_n_0, "negative electrode"), + pybamm.PrimaryBroadcast(eps_s_0, "separator"), + pybamm.PrimaryBroadcast(eps_p_0, "positive electrode"), + ) + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py index 67856dbc09..6a75b435bc 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py @@ -43,7 +43,12 @@ def get_coupled_variables(self, variables): variables.update(self._get_standard_flux_variables(N_e)) eps = pybamm.standard_variables.eps - c_e = pybamm.standard_variables.c_e + c_e_av = pybamm.standard_variables.c_e_av + c_e = pybamm.Concatenation( + pybamm.PrimaryBroadcast(c_e_av, ["negative electrode"]), + pybamm.PrimaryBroadcast(c_e_av, ["separator"]), + pybamm.PrimaryBroadcast(c_e_av, ["positive electrode"]), + ) variables.update(self._get_total_concentration_electrolyte(c_e, eps)) return variables From 0d3853561abdf8a458cbc93c1f696066092f919f Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 19:33:48 +0200 Subject: [PATCH 08/22] #1117 added test electrolyte but not working yet --- .../test_models/standard_output_tests.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/integration/test_models/standard_output_tests.py b/tests/integration/test_models/standard_output_tests.py index 4a48d27915..83bb0d9031 100644 --- a/tests/integration/test_models/standard_output_tests.py +++ b/tests/integration/test_models/standard_output_tests.py @@ -355,11 +355,11 @@ def __init__(self, model, param, disc, solution, operating_condition): self.c_e_s = solution["Separator electrolyte concentration"] self.c_e_p = solution["Positive electrolyte concentration"] - # TODO: output average electrolyte concentration - # self.c_e_av = solution["X-averaged electrolyte concentration"] - # self.c_e_n_av = solution["X-averaged negative electrolyte concentration"] - # self.c_e_s_av = solution["X-averaged separator electrolyte concentration"] - # self.c_e_p_av = solution["X-averaged positive electrolyte concentration"] + self.c_e_av = solution["X-averaged electrolyte concentration"] + self.c_e_n_av = solution["X-averaged negative electrolyte concentration"] + self.c_e_s_av = solution["X-averaged separator electrolyte concentration"] + self.c_e_p_av = solution["X-averaged positive electrolyte concentration"] + self.c_e_tot = solution["Total concentration in electrolyte [mol.m-2]"] self.N_e_hat = solution["Electrolyte flux"] # self.N_e_hat = solution["Reduced cation flux"] @@ -372,8 +372,8 @@ def test_conservation(self): "Test conservation of species in the electrolyte." # sufficient to check average concentration is constant - # diff = self.c_e_av.entries[:, 1:] - self.c_e_av.entries[:, :-1] - # np.testing.assert_array_almost_equal(diff, 0) + diff = self.c_e_tot.entries[:, 1:] - self.c_e_tot.entries[:, :-1] + np.testing.assert_array_almost_equal(diff, 0) def test_concentration_profile(self): """Test continuity of the concentration profile. Test average concentration is From 691a9b0194e5f681f2f5eeed598543202d786977 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 19:45:58 +0200 Subject: [PATCH 09/22] #1117 fixed bug with extent of lithiation --- examples/scripts/SPMe_SOC.py | 4 ++-- pybamm/models/submodels/particle/base_particle.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/scripts/SPMe_SOC.py b/examples/scripts/SPMe_SOC.py index 8e99c37007..b3f45370fb 100644 --- a/examples/scripts/SPMe_SOC.py +++ b/examples/scripts/SPMe_SOC.py @@ -79,8 +79,8 @@ # solve model t_eval = np.linspace(0, 3600, 100) sol = model.default_solver.solve(model, t_eval) - xpext = sol["Positive electrode average extent of lithiation"] - xnext = sol["Negative electrode average extent of lithiation"] + xpext = sol["X-averaged positive electrode extent of lithiation"] + xnext = sol["X-averaged negative electrode extent of lithiation"] xpsurf = sol["X-averaged positive particle surface concentration"] xnsurf = sol["X-averaged negative particle surface concentration"] time = sol["Time [h]"] diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 5153c0c0ea..60613a05b1 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -36,6 +36,7 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): L = self.param.L_p c_s_rav = pybamm.r_average(c_s) + c_s_av = pybamm.x_average(c_s_rav) c_s_vol_av = pybamm.x_average(eps_s * c_s_rav) variables = { @@ -63,7 +64,8 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): self.domain + " electrode " + "volume-averaged concentration [mol.m-3]": c_s_vol_av * c_scale, - self.domain + " electrode average extent of lithiation": c_s_rav, + self.domain + " electrode extent of lithiation": c_s_rav, + "X-averaged " + self.domain.lower() + " electrode extent of lithiation": c_s_av, "Total lithium in " + self.domain.lower() + " electrode [mol.m-2]": c_s_vol_av * c_scale * L, From 1e9be08b65c919fc4e14684b1351ad1596c4c218 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 19:48:18 +0200 Subject: [PATCH 10/22] flake8 --- pybamm/models/submodels/particle/base_particle.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 60613a05b1..02a9234d7c 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -65,7 +65,9 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): + " electrode " + "volume-averaged concentration [mol.m-3]": c_s_vol_av * c_scale, self.domain + " electrode extent of lithiation": c_s_rav, - "X-averaged " + self.domain.lower() + " electrode extent of lithiation": c_s_av, + "X-averaged " + + self.domain.lower() + + " electrode extent of lithiation": c_s_av, "Total lithium in " + self.domain.lower() + " electrode [mol.m-2]": c_s_vol_av * c_scale * L, From d600ebe7cdf0b48359c1f48be9cc914fb5dda095 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 30 Jul 2020 20:10:06 +0200 Subject: [PATCH 11/22] #1117 fixed conservation electrolyte test --- tests/integration/test_models/standard_output_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_models/standard_output_tests.py b/tests/integration/test_models/standard_output_tests.py index 83bb0d9031..6a87ecc9ff 100644 --- a/tests/integration/test_models/standard_output_tests.py +++ b/tests/integration/test_models/standard_output_tests.py @@ -372,7 +372,7 @@ def test_conservation(self): "Test conservation of species in the electrolyte." # sufficient to check average concentration is constant - diff = self.c_e_tot.entries[:, 1:] - self.c_e_tot.entries[:, :-1] + diff = self.c_e_tot(self.solution.t[1:]) - self.c_e_tot(self.solution.t[:-1]) np.testing.assert_array_almost_equal(diff, 0) def test_concentration_profile(self): From 7779c4a6ebac217110efdd1fcf5b164134bc9df9 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Fri, 31 Jul 2020 16:59:03 +0200 Subject: [PATCH 12/22] 1117 started particle conservation test --- tests/integration/test_models/standard_output_tests.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/integration/test_models/standard_output_tests.py b/tests/integration/test_models/standard_output_tests.py index 6a87ecc9ff..cb837be299 100644 --- a/tests/integration/test_models/standard_output_tests.py +++ b/tests/integration/test_models/standard_output_tests.py @@ -260,6 +260,10 @@ def __init__(self, model, param, disc, solution, operating_condition): self.c_s_n_surf = solution["Negative particle surface concentration"] self.c_s_p_surf = solution["Positive particle surface concentration"] + self.c_s_n_tot = solution["Total lithium in negative electrode [mol.m-2]"] + self.c_s_p_tot = solution["Total lithium in positive electrode [mol.m-2]"] + self.c_s_tot = self.c_s_n_tot + self.c_s_p_tot + self.N_s_n = solution["Negative particle flux"] self.N_s_p = solution["Positive particle flux"] @@ -294,7 +298,11 @@ def test_concentration_limits(self): def test_conservation(self): "Test amount of lithium stored across all particles is constant." - # TODO: add an output for total lithium in particles + if isinstance(self.model.submodels["negative sei"], pybamm.sei.NoSEI): + diff = self.c_s_tot(self.solution.t[1:]) - self.c_s_tot( + self.solution.t[:-1] + ) + np.testing.assert_array_almost_equal(diff, 0) def test_concentration_profile(self): """Test that the concentration in the centre of the negative particles is From eac9b6c0b5ee506a9eb596d13c2375fa5c015f7a Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Fri, 7 Aug 2020 09:38:10 +0200 Subject: [PATCH 13/22] flake8 --- pybamm/models/submodels/particle/base_particle.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 88a6a2169c..649b17eafc 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -22,8 +22,6 @@ def __init__(self, param, domain): super().__init__(param, domain) def _get_standard_concentration_variables(self, c_s, c_s_xav): - - param = self.param c_s_surf = pybamm.surf(c_s) c_s_surf_av = pybamm.x_average(c_s_surf) From bd96d17fc122e4773751a8b8c0823bdc56a6b6ad Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Fri, 7 Aug 2020 12:06:54 +0200 Subject: [PATCH 14/22] #1117 added test for conservation in particle --- .../test_models/standard_output_tests.py | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/tests/integration/test_models/standard_output_tests.py b/tests/integration/test_models/standard_output_tests.py index 78b641b708..5b8b07803f 100644 --- a/tests/integration/test_models/standard_output_tests.py +++ b/tests/integration/test_models/standard_output_tests.py @@ -258,11 +258,17 @@ def __init__(self, model, param, disc, solution, operating_condition): self.c_s_n_tot = solution["Total lithium in negative electrode [mol.m-2]"] self.c_s_p_tot = solution["Total lithium in positive electrode [mol.m-2]"] - self.c_s_tot = self.c_s_n_tot + self.c_s_p_tot self.N_s_n = solution["Negative particle flux"] self.N_s_p = solution["Positive particle flux"] + self.n_SEI_n_av = solution[ + "X-averaged negative electrode sei concentration [mol.m-3]" + ] + self.n_SEI_p_av = solution[ + "X-averaged positive electrode sei concentration [mol.m-3]" + ] + def test_concentration_increase_decrease(self): """Test all concentrations in negative particles decrease and all concentrations in positive particles increase over a discharge.""" @@ -293,12 +299,18 @@ def test_concentration_limits(self): np.testing.assert_array_less(self.c_s_p(t, x_p, r_p), 1) def test_conservation(self): - "Test amount of lithium stored across all particles is constant." - if isinstance(self.model.submodels["negative sei"], pybamm.sei.NoSEI): - diff = self.c_s_tot(self.solution.t[1:]) - self.c_s_tot( - self.solution.t[:-1] - ) - np.testing.assert_array_almost_equal(diff, 0) + """Test amount of lithium stored across all particles and in SEI layers is + constant.""" + L_n = self.param["Negative electrode thickness [m]"] + L_p = self.param["Positive electrode thickness [m]"] + self.c_s_tot = ( + self.c_s_n_tot(self.solution.t) + + self.c_s_p_tot(self.solution.t) + + self.n_SEI_n_av(self.solution.t) * L_n + + self.n_SEI_p_av(self.solution.t) * L_p + ) + diff = (self.c_s_tot[1:] - self.c_s_tot[:-1]) / self.c_s_tot[:-1] + np.testing.assert_array_almost_equal(diff, 0) def test_concentration_profile(self): """Test that the concentration in the centre of the negative particles is @@ -376,7 +388,9 @@ def test_conservation(self): "Test conservation of species in the electrolyte." # sufficient to check average concentration is constant - diff = self.c_e_tot(self.solution.t[1:]) - self.c_e_tot(self.solution.t[:-1]) + diff = ( + self.c_e_tot(self.solution.t[1:]) - self.c_e_tot(self.solution.t[:-1]) + ) / self.c_e_tot(self.solution.t[:-1]) np.testing.assert_array_almost_equal(diff, 0) def test_concentration_profile(self): From cc9a3856be50490fbb4abd8405449eb6fa3fb999 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Fri, 7 Aug 2020 12:10:18 +0200 Subject: [PATCH 15/22] flake8 --- tests/integration/test_models/standard_output_tests.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/integration/test_models/standard_output_tests.py b/tests/integration/test_models/standard_output_tests.py index 5b8b07803f..05880e3d0c 100644 --- a/tests/integration/test_models/standard_output_tests.py +++ b/tests/integration/test_models/standard_output_tests.py @@ -263,11 +263,11 @@ def __init__(self, model, param, disc, solution, operating_condition): self.N_s_p = solution["Positive particle flux"] self.n_SEI_n_av = solution[ - "X-averaged negative electrode sei concentration [mol.m-3]" - ] + "X-averaged negative electrode sei concentration [mol.m-3]" + ] self.n_SEI_p_av = solution[ - "X-averaged positive electrode sei concentration [mol.m-3]" - ] + "X-averaged positive electrode sei concentration [mol.m-3]" + ] def test_concentration_increase_decrease(self): """Test all concentrations in negative particles decrease and all From 81ea029874f0f0e9b3a413dd458d504c63c9eef7 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Tue, 11 Aug 2020 16:49:06 +0200 Subject: [PATCH 16/22] #1117 fixed added lithium loss variable to ec_reaction_limited --- .../submodels/interface/sei/ec_reaction_limited.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pybamm/models/submodels/interface/sei/ec_reaction_limited.py b/pybamm/models/submodels/interface/sei/ec_reaction_limited.py index a806181bd2..164431fae5 100644 --- a/pybamm/models/submodels/interface/sei/ec_reaction_limited.py +++ b/pybamm/models/submodels/interface/sei/ec_reaction_limited.py @@ -50,6 +50,10 @@ def get_coupled_variables(self, variables): c_ec = pybamm.Scalar(1) + j_sei * L_sei * C_ec c_ec_av = pybamm.x_average(c_ec) + n_SEI = j_sei * L_sei * C_ec + n_SEI_av = pybamm.x_average(n_SEI) + Q_sei = n_SEI_av * self.param.L_n * self.param.L_y * self.param.L_z + variables.update( { self.domain + " electrode EC surface concentration": c_ec, @@ -61,6 +65,13 @@ def get_coupled_variables(self, variables): "X-averaged " + self.domain.lower() + " electrode EC surface concentration": c_ec_av * c_scale, + self.domain + " electrode sei concentration [mol.m-3]": n_SEI * c_scale, + "X-averaged " + + self.domain.lower() + + " electrode sei concentration [mol.m-3]": n_SEI_av * c_scale, + "Loss of lithium to " + + self.domain.lower() + + " electrode sei [mol]": Q_sei * c_scale, } ) # Update whole cell variables, which also updates the "sum of" variables From 372639ff3d4c76e5a62e1c5edbde91590accf2d5 Mon Sep 17 00:00:00 2001 From: Ferran Brosa Planella Date: Thu, 27 Aug 2020 14:30:27 +0200 Subject: [PATCH 17/22] flake8 --- pybamm/models/submodels/particle/base_particle.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 4d14eaa1b0..767280bc5f 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -34,8 +34,6 @@ def _get_standard_concentration_variables( concentration are computed automatically from the particle concentration. """ - param = self.param - # Get surface concentration if not provided as fundamental variable to # solve for c_s_surf = c_s_surf or pybamm.surf(c_s) @@ -49,7 +47,7 @@ def _get_standard_concentration_variables( c_scale = self.param.c_p_max eps_s = self.param.epsilon_s_p L = self.param.L_p - + # Get average concentration(s) if not provided as fundamental variable to # solve for c_s_xav = c_s_xav or pybamm.x_average(c_s) From 7e9b58efdf5fd7cc46a01589682284aba8c0804a Mon Sep 17 00:00:00 2001 From: Robert Timms Date: Tue, 1 Sep 2020 10:40:07 +0100 Subject: [PATCH 18/22] remove pkl files from examples folder --- examples/notebooks/Getting Started/SPMe.pkl | Bin 5423524 -> 0 bytes .../notebooks/Getting Started/SPMe_sol.pkl | Bin 4305117 -> 0 bytes .../notebooks/Getting Started/sol_data.pkl | Bin 1826 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/notebooks/Getting Started/SPMe.pkl delete mode 100644 examples/notebooks/Getting Started/SPMe_sol.pkl delete mode 100644 examples/notebooks/Getting Started/sol_data.pkl diff --git a/examples/notebooks/Getting Started/SPMe.pkl b/examples/notebooks/Getting Started/SPMe.pkl deleted file mode 100644 index 0eedbf32cc2b550f6712d7236e7e842dac6d1b93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5423524 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