Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
cf53ff1
fixed tests
Jun 5, 2023
78001e8
Added graphite half-cell parameter files
Jun 12, 2023
c8d06a9
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Jun 28, 2023
88277d9
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Jun 29, 2023
6be07ad
Revert "Added graphite half-cell parameter files"
Jun 29, 2023
19238b9
Revert "fixed tests"
Jun 29, 2023
a07cd5a
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Jul 11, 2023
db58a6a
First draft complete, still some bugs
Jul 13, 2023
4fb3423
Moved thickness variables into a separate submodel, that seemed to work
Jul 20, 2023
aa12fe2
All tests pass
Jul 20, 2023
61508d5
changelog
Jul 20, 2023
9d3cffe
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Jul 20, 2023
45ebddc
Added an integration test to verify lithium conservation
Jul 24, 2023
42cb8ec
Fixed LLI due to LAM variable
Jul 25, 2023
df0a43e
changelog
Jul 25, 2023
82ee8fa
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Aug 2, 2023
abfe9e5
Added new test for OKane2022_graphite_halfcell parameter set
Aug 2, 2023
c9a32f9
Revert "Added new test for OKane2022_graphite_halfcell parameter set"
Aug 2, 2023
60eb5da
Tried moving LLI variables into sei_thickness.py, didn't work
Aug 10, 2023
d7d116d
style: pre-commit fixes
pre-commit-ci[bot] Aug 10, 2023
67213e9
fixed integration test
Aug 10, 2023
737ae85
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Aug 10, 2023
1093a76
Merge branch 'issue-3006-SEI-LAM' of https://github.com/DrSOKane/PyBa…
Aug 10, 2023
51fdee9
Reduced accuracy requirement of new test
Aug 10, 2023
28263fe
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Aug 17, 2023
d5fa3f7
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Sep 26, 2023
aa3c795
fixed merge conflict in changelog
Oct 2, 2023
8aa17f9
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Oct 27, 2023
bcc1a37
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Nov 22, 2023
90ddf89
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Jan 4, 2024
11d2715
Restored original experiment protocol to coupled degradation example …
Jan 4, 2024
78f13f9
changelog
Jan 4, 2024
14820f0
fixed merge conflict in changelog
Jan 18, 2024
e00902b
fixed merge conflicts with the other big SEI change
Jan 18, 2024
5e1ee21
ruff
Jan 19, 2024
92b1ac4
fixed how options are handled in sei_thickness
Jan 25, 2024
ad222e6
Notebooks should work now
Jan 29, 2024
5f0036c
Removed reaction_loc as an argument to sei_thickness.py and sei_growt…
Jan 30, 2024
4aef9bf
Added exemption to stop sei_thickness.py applying SEI on cracks to li…
Jan 31, 2024
4a80658
Merge branch 'develop' of https://github.com/pybamm-team/PyBaMM into …
Jan 31, 2024
786beb0
empty commit
DrSOKane Nov 25, 2024
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@
- Fix to simulate c_rate steps with drive cycles ([#3186](https://github.com/pybamm-team/PyBaMM/pull/3186))
- Always save last cycle in experiment, to fix issues with `starting_solution` and `last_state` ([#3177](https://github.com/pybamm-team/PyBaMM/pull/3177))
- Fix simulations with `starting_solution` to work with `start_time` experiments ([#3177](https://github.com/pybamm-team/PyBaMM/pull/3177))
- Fixed how `Loss of lithium due to loss of active material` variable is calculated ([#3171](https://github.com/pybamm-team/PyBaMM/pull/3171))
- Rewritten SEI submodel so that concentration, not thickness, is the fundamental variable. This change ensures lithium is always conserved. ([#3171](https://github.com/pybamm-team/PyBaMM/pull/3171))
- Fix SEI Example Notebook ([#3166](https://github.com/pybamm-team/PyBaMM/pull/3166))
- Thevenin() model is now constructed with standard variables: `Time [s]`, `Time [min]`, `Time [h]` ([#3143](https://github.com/pybamm-team/PyBaMM/pull/3143))
- Error generated when invalid parameter values are passed ([#3132](https://github.com/pybamm-team/PyBaMM/pull/3132))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
" \"particle mechanics\": (\"swelling and cracking\", \"swelling only\"),\n",
" \"SEI on cracks\": \"true\",\n",
" \"loss of active material\": \"stress-driven\",\n",
" \"calculate discharge energy\": \"true\", # for compatibility with older PyBaMM versions\n",
" }\n",
")"
]
Expand Down
12 changes: 12 additions & 0 deletions docs/source/examples/notebooks/models/using-submodels.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -515,15 +515,27 @@
"model.submodels[\"Negative sei\"] = pybamm.sei.NoSEI(\n",
" model.param, \"negative\", model.options\n",
")\n",
"model.submodels[\"Negative sei thickness\"] = pybamm.sei.SEIThickness(\n",
" model.param, \"negative\", model.options\n",
")\n",
"model.submodels[\"Positive sei\"] = pybamm.sei.NoSEI(\n",
" model.param, \"positive\", model.options\n",
")\n",
"model.submodels[\"Positive sei thickness\"] = pybamm.sei.SEIThickness(\n",
" model.param, \"positive\", model.options\n",
")\n",
"model.submodels[\"Negative sei on cracks\"] = pybamm.sei.NoSEI(\n",
" model.param, \"negative\", model.options, cracks=True\n",
")\n",
"model.submodels[\"Negative sei on cracks thickness\"] = pybamm.sei.SEIThickness(\n",
" model.param, \"negative\", model.options, cracks=True\n",
")\n",
"model.submodels[\"Positive sei on cracks\"] = pybamm.sei.NoSEI(\n",
" model.param, \"positive\", model.options, cracks=True\n",
")\n",
"model.submodels[\"Positive sei on cracks thickness\"] = pybamm.sei.SEIThickness(\n",
" model.param, \"positive\", model.options, cracks=True\n",
")\n",
"model.submodels[\"Negative lithium plating\"] = pybamm.lithium_plating.NoPlating(\n",
" model.param, \"Negative\"\n",
")\n",
Expand Down
6 changes: 6 additions & 0 deletions examples/scripts/custom_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,15 @@
model.submodels[f"{domain} sei"] = pybamm.sei.NoSEI(
model.param, domain, model.options
)
model.submodels[f"{domain} sei thickness"] = pybamm.sei.SEIThickness(
model.param, domain, model.options
)
model.submodels[f"{domain} sei on cracks"] = pybamm.sei.NoSEI(
model.param, domain, model.options, cracks=True
)
model.submodels[f"{domain} sei on cracks thickness"] = pybamm.sei.SEIThickness(
model.param, domain, model.options, cracks=True
)
model.submodels[f"{domain} lithium plating"] = pybamm.lithium_plating.NoPlating(
model.param, domain
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -256,12 +256,6 @@ def set_open_circuit_potential_submodel(self):

def set_sei_submodel(self):
for domain in ["negative", "positive"]:
if self.options.electrode_types[domain] == "planar":
reaction_loc = "interface"
elif self.options["x-average side reactions"] == "true":
reaction_loc = "x-average"
else:
reaction_loc = "full electrode"
sei_option = getattr(self.options, domain)["SEI"]
phases = self.options.phases[domain]
for phase in phases:
Expand All @@ -275,12 +269,16 @@ def set_sei_submodel(self):
submodel = pybamm.sei.SEIGrowth(
self.param,
domain,
reaction_loc,
self.options,
phase,
cracks=False,
)
self.submodels[f"{domain} {phase} sei"] = submodel
self.submodels[
f"{domain} {phase} sei thickness"
] = pybamm.sei.SEIThickness(
self.param, domain, self.options, phase, cracks=False
)
if len(phases) > 1:
self.submodels[f"{domain} total sei"] = pybamm.sei.TotalSEI(
self.param, domain, self.options
Expand All @@ -304,19 +302,23 @@ def set_sei_on_cracks_submodel(self):
self.param, domain, self.options, phase, cracks=True
)
else:
if self.options["x-average side reactions"] == "true":
reaction_loc = "x-average"
else:
reaction_loc = "full electrode"
submodel = pybamm.sei.SEIGrowth(
self.param,
domain,
reaction_loc,
self.options,
phase,
cracks=True,
)
self.submodels[f"{domain} {phase} sei on cracks"] = submodel
self.submodels[
f"{domain} {phase} sei on cracks thickness"
] = pybamm.sei.SEIThickness(
self.param,
domain,
self.options,
phase,
cracks=True,
)
if len(phases) > 1:
self.submodels[
f"{domain} total sei on cracks"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,12 +153,12 @@ def set_rhs(self, variables):
f"in {domain} electrode [mol]"
]
# Multiply by mol.m-3 * m3 to get mol
c_s_av = variables[f"Average {domain} particle concentration [mol.m-3]"]
c_s_rav = variables[f"R-averaged {domain} particle concentration [mol.m-3]"]
V = self.domain_param.L * self.param.A_cc

self.rhs = {
# minus sign because eps_solid is decreasing and LLI measures positive
lli_due_to_lam: -c_s_av * V * pybamm.x_average(deps_solid_dt),
lli_due_to_lam: -V * pybamm.x_average(c_s_rav * deps_solid_dt),
eps_solid: deps_solid_dt,
}

Expand Down
1 change: 1 addition & 0 deletions pybamm/models/submodels/interface/sei/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
from .no_sei import NoSEI
from .constant_sei import ConstantSEI
from .sei_growth import SEIGrowth
from .sei_thickness import SEIThickness
Loading