Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated parameter file and example notebook for lithium plating on composite electrodes #4691

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

207 changes: 207 additions & 0 deletions src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,184 @@
return m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5


def graphite_plating_exchange_current_density_OKane2020(c_e, c_Li, T):
"""
Exchange-current density for Li plating reaction [A.m-2].
References
----------
.. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and
Monica Marinescu. "Physical origin of the differential voltage minimum associated
with lithium plating in Li-ion batteries." Journal of The Electrochemical Society
167, no. 9 (2020): 090540.
Parameters
----------
c_e : :class:`pybamm.Symbol`
Electrolyte concentration [mol.m-3]
c_Li : :class:`pybamm.Symbol`
Plated lithium concentration [mol.m-3]
T : :class:`pybamm.Symbol`
Temperature [K]
Returns
-------
:class:`pybamm.Symbol`
Exchange-current density [A.m-2]
"""

k_plating = pybamm.Parameter(

Check warning on line 263 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L263

Added line #L263 was not covered by tests
"Primary: Lithium plating kinetic rate constant [m.s-1]"
)

return pybamm.constants.F * k_plating * c_e

Check warning on line 267 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L267

Added line #L267 was not covered by tests


def graphite_stripping_exchange_current_density_OKane2020(c_e, c_Li, T):
"""
Exchange-current density for Li stripping reaction [A.m-2].
References
----------
.. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and
Monica Marinescu. "Physical origin of the differential voltage minimum associated
with lithium plating in Li-ion batteries." Journal of The Electrochemical Society
167, no. 9 (2020): 090540.
Parameters
----------
c_e : :class:`pybamm.Symbol`
Electrolyte concentration [mol.m-3]
c_Li : :class:`pybamm.Symbol`
Plated lithium concentration [mol.m-3]
T : :class:`pybamm.Symbol`
Temperature [K]
Returns
-------
:class:`pybamm.Symbol`
Exchange-current density [A.m-2]
"""

k_plating = pybamm.Parameter(

Check warning on line 293 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L293

Added line #L293 was not covered by tests
"Primary: Lithium plating kinetic rate constant [m.s-1]"
)

return pybamm.constants.F * k_plating * c_Li

Check warning on line 297 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L297

Added line #L297 was not covered by tests


def graphite_SEI_limited_dead_lithium_OKane2022(L_sei):
"""
Decay rate for dead lithium formation [s-1].
References
----------
.. [1] Simon E. J. O'Kane, Weilong Ai, Ganesh Madabattula, Diega Alonso-Alvarez,
Robert Timms, Valentin Sulzer, Jaqueline Sophie Edge, Billy Wu, Gregory J. Offer
and Monica Marinescu. "Lithium-ion battery degradation: how to model it."
Physical Chemistry: Chemical Physics 24, no. 13 (2022): 7909-7922.
Parameters
----------
L_sei : :class:`pybamm.Symbol`
Total SEI thickness [m]
Returns
-------
:class:`pybamm.Symbol`
Dead lithium decay rate [s-1]
"""

gamma_0 = pybamm.Parameter("Primary: Dead lithium decay constant [s-1]")
L_inner_0 = pybamm.Parameter("Primary: Initial inner SEI thickness [m]")
L_outer_0 = pybamm.Parameter("Primary: Initial outer SEI thickness [m]")
L_sei_0 = L_inner_0 + L_outer_0

Check warning on line 322 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L319-L322

Added lines #L319 - L322 were not covered by tests

gamma = gamma_0 * L_sei_0 / L_sei

Check warning on line 324 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L324

Added line #L324 was not covered by tests

return gamma

Check warning on line 326 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L326

Added line #L326 was not covered by tests


def silicon_plating_exchange_current_density_OKane2020(c_e, c_Li, T):
"""
Exchange-current density for Li plating reaction [A.m-2].
References
----------
.. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and
Monica Marinescu. "Physical origin of the differential voltage minimum associated
with lithium plating in Li-ion batteries." Journal of The Electrochemical Society
167, no. 9 (2020): 090540.
Parameters
----------
c_e : :class:`pybamm.Symbol`
Electrolyte concentration [mol.m-3]
c_Li : :class:`pybamm.Symbol`
Plated lithium concentration [mol.m-3]
T : :class:`pybamm.Symbol`
Temperature [K]
Returns
-------
:class:`pybamm.Symbol`
Exchange-current density [A.m-2]
"""

k_plating = pybamm.Parameter(

Check warning on line 352 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L352

Added line #L352 was not covered by tests
"Secondary: Lithium plating kinetic rate constant [m.s-1]"
)

return pybamm.constants.F * k_plating * c_e

Check warning on line 356 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L356

Added line #L356 was not covered by tests


def silicon_stripping_exchange_current_density_OKane2020(c_e, c_Li, T):
"""
Exchange-current density for Li stripping reaction [A.m-2].
References
----------
.. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and
Monica Marinescu. "Physical origin of the differential voltage minimum associated
with lithium plating in Li-ion batteries." Journal of The Electrochemical Society
167, no. 9 (2020): 090540.
Parameters
----------
c_e : :class:`pybamm.Symbol`
Electrolyte concentration [mol.m-3]
c_Li : :class:`pybamm.Symbol`
Plated lithium concentration [mol.m-3]
T : :class:`pybamm.Symbol`
Temperature [K]
Returns
-------
:class:`pybamm.Symbol`
Exchange-current density [A.m-2]
"""

k_plating = pybamm.Parameter(

Check warning on line 382 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L382

Added line #L382 was not covered by tests
"Secondary: Lithium plating kinetic rate constant [m.s-1]"
)

return pybamm.constants.F * k_plating * c_Li

Check warning on line 386 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L386

Added line #L386 was not covered by tests


def silicon_SEI_limited_dead_lithium_OKane2022(L_sei):
"""
Decay rate for dead lithium formation [s-1].
References
----------
.. [1] Simon E. J. O'Kane, Weilong Ai, Ganesh Madabattula, Diega Alonso-Alvarez,
Robert Timms, Valentin Sulzer, Jaqueline Sophie Edge, Billy Wu, Gregory J. Offer
and Monica Marinescu. "Lithium-ion battery degradation: how to model it."
Physical Chemistry: Chemical Physics 24, no. 13 (2022): 7909-7922.
Parameters
----------
L_sei : :class:`pybamm.Symbol`
Total SEI thickness [m]
Returns
-------
:class:`pybamm.Symbol`
Dead lithium decay rate [s-1]
"""

gamma_0 = pybamm.Parameter("Secondary: Dead lithium decay constant [s-1]")
L_inner_0 = pybamm.Parameter("Secondary: Initial inner SEI thickness [m]")
L_outer_0 = pybamm.Parameter("Secondary: Initial outer SEI thickness [m]")
L_sei_0 = L_inner_0 + L_outer_0

Check warning on line 411 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L408-L411

Added lines #L408 - L411 were not covered by tests

gamma = gamma_0 * L_sei_0 / L_sei

Check warning on line 413 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L413

Added line #L413 was not covered by tests

return gamma

Check warning on line 415 in src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py

View check run for this annotation

Codecov / codecov/patch

src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py#L415

Added line #L415 was not covered by tests


def electrolyte_diffusivity_Nyman2008(c_e, T):
"""
Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data
Expand Down Expand Up @@ -326,6 +504,31 @@

return {
"chemistry": "lithium_ion",
# lithium plating
# Plating parameters referred from OKane2022
"Lithium metal partial molar volume [m3.mol-1]": 1.3e-05,
"Primary: Lithium plating kinetic rate constant [m.s-1]": 1e-09,
"Primary: Exchange-current density for plating [A.m-2]"
"": graphite_plating_exchange_current_density_OKane2020,
"Primary: Exchange-current density for stripping [A.m-2]"
"": graphite_stripping_exchange_current_density_OKane2020,
"Primary: Initial plated lithium concentration [mol.m-3]": 0.0,
"Primary: Typical plated lithium concentration [mol.m-3]": 1000.0,
"Primary: Lithium plating transfer coefficient": 0.65,
"Primary: Dead lithium decay constant [s-1]": 1e-06,
"Primary: Dead lithium decay rate [s-1]"
"": graphite_SEI_limited_dead_lithium_OKane2022,
"Secondary: Lithium plating kinetic rate constant [m.s-1]": 1e-09,
"Secondary: Exchange-current density for plating [A.m-2]"
"": silicon_plating_exchange_current_density_OKane2020,
"Secondary: Exchange-current density for stripping [A.m-2]"
"": silicon_stripping_exchange_current_density_OKane2020,
"Secondary: Initial plated lithium concentration [mol.m-3]": 0.0,
"Secondary: Typical plated lithium concentration [mol.m-3]": 1000.0,
"Secondary: Lithium plating transfer coefficient": 0.65,
"Secondary: Dead lithium decay constant [s-1]": 1e-06,
"Secondary: Dead lithium decay rate [s-1]"
Comment on lines +507 to +530
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these parameters from the same paper as before?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These parameters are not from Chen2020. Currently, no definitive research papers are providing these parameters for composite electrodes. As a placeholder, we use parameters from OKane2022 assuming that the parameters for both phases are identical.

Please note that these values are provisional and should be updated as and when new research becomes available. While this is not ideal, these parameters are essential to enable simulation and further development of degradation mechanisms in composite electrodes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We prefer to keep named parameter sets true to what is in the paper (I know this isn't true in all cases, but we should aim for this). It would be better to add the extra parameters directly in the example notebook rather than modify the Chen 2020 set.

"": silicon_SEI_limited_dead_lithium_OKane2022,
# sei
"Primary: Ratio of lithium moles to SEI moles": 2.0,
"Primary: SEI partial molar volume [m3.mol-1]": 9.585e-05,
Expand All @@ -338,6 +541,8 @@
"Primary: SEI lithium interstitial diffusivity [m2.s-1]": 1e-20,
"Primary: Lithium interstitial reference concentration [mol.m-3]": 15.0,
"Primary: Initial SEI thickness [m]": 5e-09,
"Primary: Initial inner SEI thickness [m]": 5e-09,
"Primary: Initial outer SEI thickness [m]": 5e-09,
"Primary: EC initial concentration in electrolyte [mol.m-3]": 4541.0,
"Primary: EC diffusivity [m2.s-1]": 2e-18,
"Primary: SEI kinetic rate constant [m.s-1]": 1e-12,
Expand All @@ -353,6 +558,8 @@
"Secondary: SEI lithium interstitial diffusivity [m2.s-1]": 1e-20,
"Secondary: Lithium interstitial reference concentration [mol.m-3]": 15.0,
"Secondary: Initial SEI thickness [m]": 5e-09,
"Secondary: Initial inner SEI thickness [m]": 5e-09,
"Secondary: Initial outer SEI thickness [m]": 5e-09,
"Secondary: EC initial concentration in electrolyte [mol.m-3]": 4541.0,
"Secondary: EC diffusivity [m2.s-1]": 2e-18,
"Secondary: SEI kinetic rate constant [m.s-1]": 1e-12,
Expand Down
Loading