diff --git a/.github/workflows/benchmark_on_push.yml b/.github/workflows/benchmark_on_push.yml index 07747af58c..8be4af8741 100644 --- a/.github/workflows/benchmark_on_push.yml +++ b/.github/workflows/benchmark_on_push.yml @@ -13,7 +13,7 @@ jobs: benchmarks: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: @@ -23,8 +23,9 @@ jobs: sudo apt-get update sudo apt install gfortran gcc libopenblas-dev - name: Install python dependencies + # Pin asv==0.5.1 to fix failing benchmarks. Related to https://github.com/airspeed-velocity/asv/issues/1323 run: | - python -m pip install --upgrade pip wheel setuptools virtualenv asv wget cmake casadi numpy + python -m pip install --upgrade pip wheel setuptools virtualenv asv==0.5.1 wget cmake casadi numpy - name: Install SuiteSparse and Sundials run: python scripts/install_KLU_Sundials.py - name: Fetch base branch diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml index 6280387e53..8d029d3bc5 100644 --- a/.github/workflows/create_release.yml +++ b/.github/workflows/create_release.yml @@ -17,7 +17,7 @@ jobs: python-version: [3.8] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Get current date run: | diff --git a/.github/workflows/lychee_url_checker.yml b/.github/workflows/lychee_url_checker.yml index a6735d2806..d727ca0784 100644 --- a/.github/workflows/lychee_url_checker.yml +++ b/.github/workflows/lychee_url_checker.yml @@ -24,7 +24,7 @@ jobs: restore-keys: cache-lychee- # check URLs with Lychee - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # use stable version for now to avoid breaking changes - name: Lychee URL checker diff --git a/.github/workflows/periodic_benchmarks.yml b/.github/workflows/periodic_benchmarks.yml index 239f5fa5bb..ce0ad37cd2 100644 --- a/.github/workflows/periodic_benchmarks.yml +++ b/.github/workflows/periodic_benchmarks.yml @@ -19,7 +19,7 @@ jobs: benchmarks: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: @@ -58,7 +58,7 @@ jobs: - name: Install asv run: pip install asv - name: Checkout pybamm-bench repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: pybamm-team/pybamm-bench token: ${{ secrets.BENCH_PAT }} diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index 6d89da1387..54dd70d5a7 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -19,7 +19,7 @@ jobs: name: Build wheels on windows-latest runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: python-version: 3.8 @@ -74,7 +74,7 @@ jobs: matrix: os: [ubuntu-latest, macos-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: python-version: 3.8 @@ -135,7 +135,7 @@ jobs: python-version: [3.8] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/run_benchmarks_over_history.yml b/.github/workflows/run_benchmarks_over_history.yml index 9cdcc0b2c0..6752e38800 100644 --- a/.github/workflows/run_benchmarks_over_history.yml +++ b/.github/workflows/run_benchmarks_over_history.yml @@ -22,7 +22,7 @@ jobs: benchmarks: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: @@ -59,7 +59,7 @@ jobs: - name: Install asv run: pip install asv - name: Checkout pybamm-bench repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: pybamm-team/pybamm-bench token: ${{ secrets.BENCH_PAT }} diff --git a/.github/workflows/run_periodic_tests.yml b/.github/workflows/run_periodic_tests.yml index f70a748800..663eb5cfca 100644 --- a/.github/workflows/run_periodic_tests.yml +++ b/.github/workflows/run_periodic_tests.yml @@ -32,7 +32,7 @@ jobs: if: ${{ needs.pre_job.outputs.should_skip != 'true' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup python uses: actions/setup-python@v4 with: @@ -53,7 +53,7 @@ jobs: python-version: ["3.8", "3.9", "3.10", "3.11"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: @@ -127,7 +127,7 @@ jobs: python-version: ["3.8", "3.9", "3.10", "3.11"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install python & create virtualenv shell: bash run: | diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index 2fd4c92b2e..839d53306f 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -16,7 +16,7 @@ jobs: style: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v4 with: @@ -43,7 +43,7 @@ jobs: steps: - name: Check out PyBaMM repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Install and cache apt packages - name: Install Linux system dependencies @@ -123,7 +123,7 @@ jobs: steps: - name: Check out PyBaMM repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Install and cache apt packages - name: Install Linux system dependencies @@ -186,7 +186,7 @@ jobs: steps: - name: Check out PyBaMM repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Install and cache apt packages - name: Install Linux system dependencies @@ -266,7 +266,7 @@ jobs: steps: - name: Check out PyBaMM repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Install and cache apt packages - name: Install Linux system dependencies @@ -327,7 +327,7 @@ jobs: steps: - name: Check out PyBaMM repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Install and cache apt packages - name: Install Linux system dependencies diff --git a/.github/workflows/update_license.yml b/.github/workflows/update_license.yml index 718b24e6b7..4712b5dd94 100644 --- a/.github/workflows/update_license.yml +++ b/.github/workflows/update_license.yml @@ -13,7 +13,7 @@ jobs: if: github.repository_owner == 'pybamm-team' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Update year in license @@ -28,7 +28,7 @@ jobs: needs: license runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Update year in docs diff --git a/.github/workflows/update_version.yml b/.github/workflows/update_version.yml index c205603c88..7488c40aa2 100644 --- a/.github/workflows/update_version.yml +++ b/.github/workflows/update_version.yml @@ -13,7 +13,7 @@ jobs: python-version: [3.8] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 diff --git a/.github/workflows/work_precision_sets.yml b/.github/workflows/work_precision_sets.yml index 5be4d079f8..87eb068947 100644 --- a/.github/workflows/work_precision_sets.yml +++ b/.github/workflows/work_precision_sets.yml @@ -9,7 +9,7 @@ jobs: benchmarks_on_release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup python uses: actions/setup-python@v4 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 135458210a..91ee82bcbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ## Bug fixes - Fixed bug causing incorrect activation energies using `create_from_bpx()` ([#3242](https://github.com/pybamm-team/PyBaMM/pull/3242)) +- Fixed a bug that occured in `check_ys_are_not_too_large` when trying to reference `y-slice` where the referenced variable was not a `pybamm.StateVector` ([#3313](https://github.com/pybamm-team/PyBaMM/pull/3313) - Fixed a bug with `_Heaviside._evaluate_for_shape` which meant some expressions involving heaviside function and subtractions did not work ([#3306](https://github.com/pybamm-team/PyBaMM/pull/3306)) - The `OneDimensionalX` thermal model has been updated to account for edge/tab cooling and account for the current collector volumetric heat capacity. It now gives the correct behaviour compared with a lumped model with the correct total heat transfer coefficient and surface area for cooling. ([#3042](https://github.com/pybamm-team/PyBaMM/pull/3042)) - Fixed a bug where the "basic" lithium-ion models gave incorrect results when using nonlinear particle diffusivity ([#3207](https://github.com/pybamm-team/PyBaMM/pull/3207)) diff --git a/docs/source/user_guide/installation/windows-wsl.rst b/docs/source/user_guide/installation/windows-wsl.rst index d08545edc0..6453c92211 100644 --- a/docs/source/user_guide/installation/windows-wsl.rst +++ b/docs/source/user_guide/installation/windows-wsl.rst @@ -22,13 +22,13 @@ Get PyBaMM's Source Code sudo apt install git-core -3. Clone the PyBaMM repository:: +3. Clone the PyBaMM repository: .. code:: bash git clone https://github.com/pybamm-team/PyBaMM.git -4. Enter the PyBaMM Directory by running:: +4. Enter the PyBaMM Directory by running: .. code:: bash diff --git a/pybamm/solvers/solution.py b/pybamm/solvers/solution.py index 411341f887..65c3e0b5a7 100644 --- a/pybamm/solvers/solution.py +++ b/pybamm/solvers/solution.py @@ -308,7 +308,20 @@ def check_ys_are_not_too_large(self): y = y[:, -1] if np.any(y > pybamm.settings.max_y_value): for var in [*model.rhs.keys(), *model.algebraic.keys()]: - y_var = y[model.variables[var.name].y_slices[0]] + var = model.variables[var.name] + # find the statevector corresponding to this variable + statevector = None + for node in var.pre_order(): + if isinstance(node, pybamm.StateVector): + statevector = node + + # there will always be a statevector, but just in case + if statevector is None: # pragma: no cover + raise RuntimeError( + "Cannot find statevector corresponding to variable {}" + .format(var.name) + ) + y_var = y[statevector.y_slices[0]] if np.any(y_var > pybamm.settings.max_y_value): pybamm.logger.error( f"Solution for '{var}' exceeds the maximum allowed value "