Skip to content

Commit 2c4bcea

Browse files
Merge pull request #2821 from pybamm-team/develop
Make release v23.3
2 parents 4a7e409 + 08dc8f7 commit 2c4bcea

File tree

368 files changed

+12516
-13675
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

368 files changed

+12516
-13675
lines changed

.all-contributorsrc

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,9 @@
579579
"avatar_url": "https://avatars.githubusercontent.com/u/83979298?v=4",
580580
"profile": "https://github.com/jeromtom",
581581
"contributions": [
582-
"doc"
582+
"doc",
583+
"code",
584+
"test"
583585
]
584586
},
585587
{
@@ -590,6 +592,25 @@
590592
"contributions": [
591593
"example"
592594
]
595+
},
596+
{
597+
"login": "jsbrittain",
598+
"name": "jsbrittain",
599+
"avatar_url": "https://avatars.githubusercontent.com/u/98161205?v=4",
600+
"profile": "http://www.jsbrittain.com/",
601+
"contributions": [
602+
"code",
603+
"test"
604+
]
605+
},
606+
{
607+
"login": "arjxn-py",
608+
"name": "Arjun",
609+
"avatar_url": "https://avatars.githubusercontent.com/u/104268427?v=4",
610+
"profile": "https://github.com/arjxn-py",
611+
"contributions": [
612+
"infra"
613+
]
593614
}
594615
],
595616
"contributorsPerLine": 7,
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Check URLs with Lychee
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- develop
8+
pull_request:
9+
schedule:
10+
# Run everyday at 3 am UTC
11+
- cron: "0 3 * * *"
12+
13+
jobs:
14+
linkChecker:
15+
runs-on: ubuntu-latest
16+
steps:
17+
18+
# cache Lychee results to avoid hitting rate limits
19+
- name: Restore lychee cache
20+
uses: actions/cache@v3
21+
with:
22+
path: .lycheecache
23+
key: cache-lychee-${{ github.sha }}
24+
restore-keys: cache-lychee-
25+
26+
# check URLs with Lychee
27+
- uses: actions/checkout@v3
28+
29+
# use stable version for now to avoid breaking changes
30+
- name: Lychee URL checker
31+
uses: lycheeverse/[email protected]
32+
with:
33+
# arguments with file types to check
34+
args: >-
35+
--cache
36+
--no-progress
37+
--max-cache-age 2d
38+
--timeout 10
39+
--max-retries 5
40+
--skip-missing
41+
--exclude-loopback
42+
--exclude https://twitter.com/pybamm_
43+
--exclude "https://doi\.org|www.sciencedirect\.com/*"
44+
--accept 200,429
45+
--exclude-path ./CHANGELOG.md
46+
--exclude-path ./scripts/update_version.py
47+
'./**/*.rst'
48+
'./**/*.md'
49+
'./**/*.py'
50+
'./**/*.ipynb'
51+
# fail the action on broken links
52+
fail: true
53+
env:
54+
# to be used in case rate limits are surpassed
55+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

.github/workflows/url_checker.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ dist/
6262
coverage.xml
6363
htmlcov/
6464

65-
# virtual enviroment
65+
# virtual environment
6666
env/
6767
venv/
6868
venv3.5/
@@ -74,6 +74,7 @@ lib64
7474
share/
7575
pyvenv.cfg
7676
.vscode
77+
.ruff_cache/
7778

7879
# sundials
7980
sundials

.lycheeignore

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# a list of links/files to be ignored by lychee link checker (see workflow file)
2+
3+
# Errors in docs/source/user_guide/getting_started.md
4+
file:///home/runner/work/PyBaMM/PyBaMM/docs/source/user_guide/api_docs
5+
6+
# Errors in docs/source/user_guide/fundamentals/index.md
7+
file:///home/runner/work/PyBaMM/PyBaMM/docs/source/user_guide/fundamentals/base_battery_model
8+
file:///home/runner/work/PyBaMM/PyBaMM/docs/source/user_guide/fundamentals/parameter_sets
9+
file:///home/runner/work/PyBaMM/PyBaMM/docs/source/user_guide/fundamentals/quick_plot
10+
file:///home/runner/work/PyBaMM/PyBaMM/docs/source/user_guide/fundamentals/plot_voltage_components
11+
12+
# Errors in docs/source/user_guide/index.md
13+
file:///home/runner/work/PyBaMM/PyBaMM/docs/source/user_guide/api_docs
14+
15+
# Errors in examples/notebooks/README.md
16+
file:///home/runner/work/PyBaMM/PyBaMM/examples/notebooks/using-submodels.ipynb
17+
file:///home/runner/work/PyBaMM/PyBaMM/examples/notebooks/create-model.ipynb

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repos:
99
- id: black
1010

1111
- repo: https://github.com/charliermarsh/ruff-pre-commit
12-
rev: "v0.0.253"
12+
rev: "v0.0.259"
1313
hooks:
1414
- id: ruff
1515
args: [--ignore=E741, --exclude=__init__.py]

.readthedocs.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# .readthedocs.yml
2+
# Read the Docs configuration file
3+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4+
5+
# Required
6+
version: 2
7+
8+
# Build documentation in the docs/ directory with Sphinx
9+
sphinx:
10+
builder: html
11+
configuration: docs/conf.py
12+
fail_on_warning: false
13+
14+
# Set the version of Python and other tools you might need
15+
build:
16+
os: ubuntu-22.04
17+
tools:
18+
python: "3.8"
19+
# You can also specify other tool versions:
20+
# nodejs: "19"
21+
# rust: "1.64"
22+
# golang: "1.19"
23+
24+
# Optionally declare the Python requirements required to build your docs
25+
python:
26+
install:
27+
- requirements: docs/requirements.txt
28+
- method: pip
29+
path: .

.readthedocs.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,47 @@
11
# [Unreleased](https://github.com/pybamm-team/PyBaMM/)
22

3+
# [v23.3](https://github.com/pybamm-team/PyBaMM/tree/v23.3) - 2023-03-31
4+
5+
## Features
6+
7+
- Added option to limit the number of integrators stored in CasadiSolver, which is particularly relevant when running simulations back-to-back [#2823](https://github.com/pybamm-team/PyBaMM/pull/2823)
8+
- Added new variables, related to electrode balance, for the `ElectrodeSOH` model ([#2807](https://github.com/pybamm-team/PyBaMM/pull/2807))
9+
- Added method to calculate maximum theoretical energy. ([#2777](https://github.com/pybamm-team/PyBaMM/pull/2777)) and add to summary variables ([#2781](https://github.com/pybamm-team/PyBaMM/pull/2781))
10+
- Renamed "Terminal voltage [V]" to just "Voltage [V]". "Terminal voltage [V]" can still be used and will return the same value as "Voltage [V]". ([#2740](https://github.com/pybamm-team/PyBaMM/pull/2740))
11+
- Added "Negative electrode surface potential difference at separator interface [V]", which is the value of the surface potential difference (`phi_s - phi_e`) at the anode/separator interface, commonly controlled in fast-charging algorithms to avoid plating. Also added "Positive electrode surface potential difference at separator interface [V]". ([#2740](https://github.com/pybamm-team/PyBaMM/pull/2740))
12+
- Added "Bulk open-circuit voltage [V]", which is the open-circuit voltage as calculated from the bulk particle concentrations. The old variable "Measured open circuit voltage [V]", which referred to the open-circuit potential as calculated from the surface particle concentrations, has been renamed to "Surface open-circuit voltage [V]". ([#2740](https://github.com/pybamm-team/PyBaMM/pull/2740)) "Bulk open-circuit voltage [V]" was briefly named "Open-circuit voltage [V]", but this was changed in ([#2845](https://github.com/pybamm-team/PyBaMM/pull/2845))
13+
- Added an example for `plot_voltage_components`, explaining what the different voltage components are. ([#2740](https://github.com/pybamm-team/PyBaMM/pull/2740))
14+
15+
## Bug fixes
16+
17+
- Fixed excessive RAM consumption when running multiple simulations ([#2823](https://github.com/pybamm-team/PyBaMM/pull/2823))
18+
- Fixed a bug where variable bounds could not contain `InputParameters` ([#2795](https://github.com/pybamm-team/PyBaMM/pull/2795))
19+
- Improved `model.latexify()` to have a cleaner and more readable output ([#2764](https://github.com/pybamm-team/PyBaMM/pull/2764))
20+
- Fixed electrolyte conservation in the case of concentration-dependent transference number ([#2758](https://github.com/pybamm-team/PyBaMM/pull/2758))
21+
- Fixed `plot_voltage_components` so that the sum of overpotentials is now equal to the voltage ([#2740](https://github.com/pybamm-team/PyBaMM/pull/2740))
22+
- Fixed use of last_state as starting_solution in Simulation.solve() ([#2822](https://github.com/pybamm-team/PyBaMM/pull/2822))
23+
24+
## Optimizations
25+
26+
- Migrated to [Lychee](https://github.com/lycheeverse/lychee-action) workflow for checking URLs ([#2734](https://github.com/pybamm-team/PyBaMM/pull/2734))
27+
28+
## Breaking changes
29+
30+
- `ElectrodeSOH.solve` now returns a `{str: float}` dict instead of a `pybamm.Solution` object (to avoid having to do `.data[0]` every time). In any code that uses `sol = ElectrodeSOH.solve()`, `sol[key].data[0]` should be replaced with `sol[key]`. ([#2779](https://github.com/pybamm-team/PyBaMM/pull/2779))
31+
- Removed "... cation signed stoichiometry" and "... electrons in reaction" parameters, they are now hardcoded. ([#2778](https://github.com/pybamm-team/PyBaMM/pull/2778))
32+
- When using `solver.step()`, the first time point in the step is shifted by `pybamm.settings.step_start_offset` (default 1 ns) to avoid having duplicate times in the solution steps from the end of one step and the start of the next. ([#2773](https://github.com/pybamm-team/PyBaMM/pull/2773))
33+
- Renamed "Measured open circuit voltage [V]" to "Surface open-circuit voltage [V]". This variable was calculated from surface particle concentrations, and hence "hid" the overpotential from particle gradients. The new variable "Bulk open-circuit voltage [V]" is calculated from bulk particle concentrations instead. ([#2740](https://github.com/pybamm-team/PyBaMM/pull/2740))
34+
- Renamed all references to "open circuit" to be "open-circuit" instead. ([#2740](https://github.com/pybamm-team/PyBaMM/pull/2740))
35+
- Renamed parameter "1 + dlnf/dlnc" to "Thermodynamic factor". ([#2727](https://github.com/pybamm-team/PyBaMM/pull/2727))
36+
- All PyBaMM models are now dimensional. This has been benchmarked against dimensionless models and found to give around the same solve time. Implementing dimensional models greatly reduces the barrier to entry for adding new models. However, this comes with several breaking changes: (i) the `timescale` and `length_scales` attributes of a model have been removed (they are no longer needed) (ii) several dimensionless variables are no longer defined, but the corresponding dimensional variables can still be accessed by adding the units to the name (iii) some parameters used only for non-dimensionalization, such as "Typical current [A]", have been removed ([#2419](https://github.com/pybamm-team/PyBaMM/pull/2419))
37+
338
# [v23.2](https://github.com/pybamm-team/PyBaMM/tree/v23.2) - 2023-02-28
439

540
## Features
641

7-
- Added an option for using a banded jacobian and sundials banded solvers for the IDAKLU solve [#2677](https://github.com/pybamm-team/PyBaMM/pull/2677)
8-
- The "particle size" option can now be a tuple to allow different behaviour in each electrode([#2672](https://github.com/pybamm-team/PyBaMM/pull/2672)).
9-
- Added temperature control to experiment class. [#2518](https://github.com/pybamm-team/PyBaMM/pull/2518)
42+
- Added an option for using a banded jacobian and sundials banded solvers for the IDAKLU solve ([#2677](https://github.com/pybamm-team/PyBaMM/pull/2677))
43+
- The "particle size" option can now be a tuple to allow different behaviour in each electrode ([#2672](https://github.com/pybamm-team/PyBaMM/pull/2672)).
44+
- Added temperature control to experiment class. ([#2518](https://github.com/pybamm-team/PyBaMM/pull/2518))
1045

1146
## Bug fixes
1247

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ keywords:
2424
- "expression tree"
2525
- "python"
2626
- "symbolic differentiation"
27-
version: "23.2"
27+
version: "23.3"
2828
repository-code: "https://github.com/pybamm-team/PyBaMM"
2929
title: "Python Battery Mathematical Modelling (PyBaMM)"

0 commit comments

Comments
 (0)