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

Issue 984 butler volmer resistance #994

Merged
merged 19 commits into from
May 19, 2020
Merged
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@

## Features

- Added SEI film resistance as an option ([#994](https://github.com/pybamm-team/PyBaMM/pull/994))
- Added tab, edge, and surface cooling ([#965](https://github.com/pybamm-team/PyBaMM/pull/965))
- Added functionality to solver to automatically discretise a 0D model ([#947](https://github.com/pybamm-team/PyBaMM/pull/947))
- Added sensitivity to `CasadiAlgebraicSolver` ([#940](https://github.com/pybamm-team/PyBaMM/pull/940))
1 change: 0 additions & 1 deletion docs/source/models/submodels/index.rst
Original file line number Diff line number Diff line change
@@ -17,4 +17,3 @@ Submodels
porosity/index
thermal/index
tortuosity/index
sei/index
Original file line number Diff line number Diff line change
@@ -3,3 +3,6 @@ First-order Kinetics

.. autoclass:: pybamm.interface.FirstOrderKinetics
:members:

.. autoclass:: pybamm.interface.InverseFirstOrderKinetics
:members:

This file was deleted.

This file was deleted.

7 changes: 4 additions & 3 deletions docs/source/models/submodels/interface/index.rst
Original file line number Diff line number Diff line change
@@ -5,7 +5,8 @@ Interface
:maxdepth: 1

base_interface
kinetics/index
inverse_kinetics/index
first_order_kinetics/index
kinetics
inverse_kinetics
first_order_kinetics
diffusion_limited
sei
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Inverse Butler-Volmer
=====================
Inverse Kinetics
================

.. autoclass:: pybamm.interface.inverse_kinetics.InverseButlerVolmer
:members:

This file was deleted.

17 changes: 17 additions & 0 deletions docs/source/models/submodels/interface/kinetics.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Kinetics
========

.. autoclass:: pybamm.interface.BaseKinetics
:members:

.. autoclass:: pybamm.interface.ButlerVolmer
:members:

.. autoclass:: pybamm.interface.NoReaction
:members:

.. autoclass:: pybamm.interface.ForwardTafel
:members:

.. autoclass:: pybamm.interface.BackwardTafel
:members:

This file was deleted.

This file was deleted.

10 changes: 0 additions & 10 deletions docs/source/models/submodels/interface/kinetics/index.rst

This file was deleted.

This file was deleted.

8 changes: 0 additions & 8 deletions docs/source/models/submodels/interface/kinetics/tafel.rst

This file was deleted.

23 changes: 23 additions & 0 deletions docs/source/models/submodels/interface/sei.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
SEI models
==========

.. autoclass:: pybamm.sei.BaseModel
:members:

.. autoclass:: pybamm.sei.ConstantSEI
:members:

.. autoclass:: pybamm.sei.ElectronMigrationLimited
:members:

.. autoclass:: pybamm.sei.InterstitialDiffusionLimited
:members:

.. autoclass:: pybamm.sei.NoSEI
:members:

.. autoclass:: pybamm.sei.ReactionLimited
:members:

.. autoclass:: pybamm.sei.SolventDiffusionLimited
:members:
6 changes: 0 additions & 6 deletions docs/source/models/submodels/sei/base_sei.rst

This file was deleted.

This file was deleted.

12 changes: 0 additions & 12 deletions docs/source/models/submodels/sei/index.rst

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/models/submodels/sei/no_sei.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/models/submodels/sei/reaction_limited.rst

This file was deleted.

This file was deleted.

173 changes: 103 additions & 70 deletions examples/notebooks/using-submodels.ipynb

Large diffs are not rendered by default.

57 changes: 57 additions & 0 deletions examples/scripts/calendar_ageing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import pybamm as pb
import numpy as np

pb.set_logging_level("INFO")

models = [
pb.lithium_ion.SPM({"sei": "reaction limited"}),
pb.lithium_ion.SPM(
{"sei": "reaction limited", "surface form": "algebraic"}, name="Algebraic SPM",
),
pb.lithium_ion.DFN({"sei": "reaction limited"}),
]

sims = []
for model in models:
parameter_values = model.default_parameter_values

parameter_values["Current function [A]"] = 0

sim = pb.Simulation(model, parameter_values=parameter_values)

solver = pb.CasadiSolver(mode="fast")

years = 30
days = years * 365
hours = days * 24
minutes = hours * 60
seconds = minutes * 60

t_eval = np.linspace(0, seconds, 100)

sim.solve(t_eval=t_eval, solver=solver)
sims.append(sim)
pb.dynamic_plot(
sims,
[
"Terminal voltage [V]",
"Negative particle surface concentration",
"X-averaged negative particle surface concentration",
"Electrolyte concentration [mol.m-3]",
"Total negative electrode sei thickness [m]",
"X-averaged total negative electrode sei thickness [m]",
"X-averaged total negative electrode sei thickness",
"X-averaged negative electrode sei concentration [mol.m-3]",
"Loss of lithium to negative electrode sei [mol]",
[
"Negative electrode sei interfacial current density [A.m-2]",
"Negative electrode interfacial current density [A.m-2]",
],
[
"X-averaged negative electrode sei interfacial current density [A.m-2]",
"X-averaged negative electrode interfacial current density [A.m-2]",
],
"Sum of x-averaged negative electrode interfacial current densities",
"X-averaged electrolyte concentration",
],
)
4 changes: 4 additions & 0 deletions examples/scripts/compare_lead_acid.py
Original file line number Diff line number Diff line change
@@ -54,6 +54,10 @@
"Porosity",
"Electrolyte potential [V]",
"Terminal voltage [V]",
"Negative electrode reaction overpotential",
"Positive electrode reaction overpotential",
"Sum of interfacial current densities",
"Sum of electrolyte reaction source terms",
]
plot = pybamm.QuickPlot(solutions, output_variables, linestyles=[":", "--", "-"])
plot.dynamic_plot()
4 changes: 2 additions & 2 deletions examples/scripts/create-model.py
Original file line number Diff line number Diff line change
@@ -67,8 +67,8 @@ def D(cc):
"SEI growth rate": dLdt,
"Solvent concentration": c,
"SEI thickness [m]": L_0_dim * L,
"SEI growth rate [m/s]": (D_dim(c_inf_dim) / L_0_dim) * dLdt,
"Solvent concentration [mols/m^3]": c_inf_dim * c,
"SEI growth rate [m.s-1]": (D_dim(c_inf_dim) / L_0_dim) * dLdt,
"Solvent concentration [mol.m-3]": c_inf_dim * c,
}

"--------------------------------------------------------------------------------------"
12 changes: 12 additions & 0 deletions examples/scripts/custom_model.py
Original file line number Diff line number Diff line change
@@ -34,12 +34,24 @@
model.submodels["positive interface"] = pybamm.interface.InverseButlerVolmer(
model.param, "Positive", "lithium-ion main"
)
model.submodels[
"negative interface current"
] = pybamm.interface.CurrentForInverseButlerVolmer(
model.param, "Negative", "lithium-ion main"
)
model.submodels[
"positive interface current"
] = pybamm.interface.CurrentForInverseButlerVolmer(
model.param, "Positive", "lithium-ion main"
)
model.submodels[
"electrolyte diffusion"
] = pybamm.electrolyte_diffusion.ConstantConcentration(model.param)
model.submodels[
"electrolyte conductivity"
] = pybamm.electrolyte_conductivity.LeadingOrder(model.param)
model.submodels["negative sei"] = pybamm.sei.NoSEI(model.param, "Negative")
model.submodels["positive sei"] = pybamm.sei.NoSEI(model.param, "Positive")

# build model
model.build_model()
46 changes: 0 additions & 46 deletions examples/scripts/sei_growth.py

This file was deleted.

2 changes: 1 addition & 1 deletion pybamm/__init__.py
Original file line number Diff line number Diff line change
@@ -134,8 +134,8 @@ def version(formatted=False):
porosity,
thermal,
tortuosity,
sei,
)
from .models.submodels.interface import sei

#
# Geometry
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ Inner SEI reaction proportion,0.5,,
Inner SEI partial molar volume [m3.mol-1],3e-6, Guess,
Outer SEI partial molar volume [m3.mol-1],3e-6, Guess,
SEI reaction exchange current density [A.m-2],1.5E-7, Guess,
SEI resistance per unit thickness [Ohm.m-1],1, Ramadass,
SEI resistivity [Ohm.m],1e6,Guess,check Ramadass
Outer SEI solvent diffusivity [m2.s-1],2.5E-22, Single paper,
Bulk solvent concentration [mol.m-3],2.636E3, Ploehn paper,
Ratio of inner and outer SEI exchange current densities,1, Assume same,
Loading