Skip to content

Commit

Permalink
Issue 3339 dead lithium (pybamm-team#3485)
Browse files Browse the repository at this point in the history
* fixed tests

* Added graphite half-cell parameter files

* Revert "Added graphite half-cell parameter files"

This reverts commit 78001e8.

* Revert "fixed tests"

This reverts commit cf53ff1.

* ruff

* changelog

* coverage

* Fixed minor error in example notebook

* Removed duplicate entry from changelog
  • Loading branch information
DrSOKane authored and js1tr3 committed Aug 12, 2024
1 parent b8033a2 commit 751892b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
4 changes: 2 additions & 2 deletions docs/source/examples/notebooks/models/lithium-plating.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,8 @@
" axs[0,0].set_ylabel(\"Voltage [V]\")\n",
" axs[0,1].set_ylabel(\"Volumetric interfacial current density [A.m-3]\")\n",
" axs[0,1].legend(('Deintercalation current','Stripping current','Total current'))\n",
" axs[1,0].set_ylabel(\"Plated lithium capacity [Ah]\")\n",
" axs[1,1].set_ylabel(\"Intercalated lithium capacity [Ah]\")\n",
" axs[1,0].set_ylabel(\"Plated lithium capacity [A.h]\")\n",
" axs[1,1].set_ylabel(\"Intercalated lithium capacity [A.h]\")\n",
"\n",
" for ax in axs.flat:\n",
" ax.set_xlabel(\"Time [minutes]\")\n",
Expand Down
22 changes: 15 additions & 7 deletions pybamm/models/submodels/interface/lithium_plating/plating.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,18 +115,26 @@ def set_rhs(self, variables):
]
L_sei = variables[f"{Domain} total SEI thickness [m]"]

# In the partially reversible plating model, coupling term turns reversible
# lithium into dead lithium. In other plating models, it is zero.
lithium_plating_option = getattr(self.options, domain)["lithium plating"]
if lithium_plating_option == "partially reversible":
if lithium_plating_option == "reversible":
# In the reversible plating model, there is no dead lithium
dc_plated_Li = -a_j_stripping / self.param.F
dc_dead_Li = pybamm.Scalar(0)
elif lithium_plating_option == "irreversible":
# In the irreversible plating model, all plated lithium is dead lithium
dc_plated_Li = pybamm.Scalar(0)
dc_dead_Li = -a_j_stripping / self.param.F
elif lithium_plating_option == "partially reversible":
# In the partially reversible plating model, the coupling term turns
# reversible lithium into dead lithium over time.
dead_lithium_decay_rate = self.param.dead_lithium_decay_rate(L_sei)
coupling_term = dead_lithium_decay_rate * c_plated_Li
else:
coupling_term = pybamm.Scalar(0)
dc_plated_Li = -a_j_stripping / self.param.F - coupling_term
dc_dead_Li = coupling_term

self.rhs = {
c_plated_Li: -a_j_stripping / self.param.F - coupling_term,
c_dead_Li: coupling_term,
c_plated_Li: dc_plated_Li,
c_dead_Li: dc_dead_Li,
}

def set_initial_conditions(self, variables):
Expand Down

0 comments on commit 751892b

Please sign in to comment.