{"id":32175655,"url":"https://github.com/pybamm-team/pybamm","last_synced_at":"2026-03-05T02:32:34.012Z","repository":{"id":37821226,"uuid":"155538761","full_name":"pybamm-team/PyBaMM","owner":"pybamm-team","description":"Fast and flexible physics-based battery models in Python","archived":false,"fork":false,"pushed_at":"2025-10-16T16:47:11.000Z","size":198771,"stargazers_count":1383,"open_issues_count":191,"forks_count":689,"subscribers_count":28,"default_branch":"develop","last_synced_at":"2025-10-17T15:02:38.891Z","etag":null,"topics":["batteries","battery-models","hacktoberfest","pybamm","python","simulation","solvers"],"latest_commit_sha":null,"homepage":"https://www.pybamm.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pybamm-team.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"pybamm-team","open_collective":"pybamm"}},"created_at":"2018-10-31T10:26:29.000Z","updated_at":"2025-10-16T16:47:16.000Z","dependencies_parsed_at":"2023-09-22T11:23:59.173Z","dependency_job_id":"d95572fb-a851-4e7f-b3ef-e5a792ca3143","html_url":"https://github.com/pybamm-team/PyBaMM","commit_stats":{"total_commits":11443,"total_committers":127,"mean_commits":90.10236220472441,"dds":0.6675696932622563,"last_synced_commit":"b6fa67a5ca1fcce7a3599c885a11b1479c89aa54"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/pybamm-team/PyBaMM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybamm-team%2FPyBaMM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybamm-team%2FPyBaMM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybamm-team%2FPyBaMM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybamm-team%2FPyBaMM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pybamm-team","download_url":"https://codeload.github.com/pybamm-team/PyBaMM/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybamm-team%2FPyBaMM/sbom","scorecard":{"id":535377,"data":{"date":"2025-08-19T10:59:07Z","repo":{"name":"github.com/pybamm-team/PyBaMM","commit":"e154fec5e4b25db99ce58bdd4ec12140017fb23d"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":7.8,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/benchmark_on_push.yml:21","Info: jobLevel 'contents' permission set to 'read': .github/workflows/discussion_autoresponder.yml:16","Info: jobLevel 'contents' permission set to 'read': .github/workflows/docker.yml:17","Info: jobLevel 'contents' permission set to 'read': .github/workflows/lychee_url_checker.yml:20","Info: jobLevel 'contents' permission set to 'read': .github/workflows/need_reply_remove.yml:18","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/needs_reply.yml:15","Info: jobLevel 'contents' permission set to 'read': .github/workflows/needs_reply.yml:16","Info: jobLevel 'issues' permission set to 'read': .github/workflows/needs_reply.yml:14","Info: jobLevel 'contents' permission set to 'read': .github/workflows/periodic_benchmarks.yml:28","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/periodic_benchmarks.yml:70","Info: jobLevel 'contents' permission set to 'read': .github/workflows/publish_pypi.yml:13","Info: jobLevel 'contents' permission set to 'read': .github/workflows/run_benchmarks_over_history.yml:38","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/run_benchmarks_over_history.yml:132","Info: jobLevel 'contents' permission set to 'read': .github/workflows/run_periodic_tests.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/run_periodic_tests.yml:99","Info: jobLevel 'contents' permission set to 'read': .github/workflows/run_periodic_tests.yml:137","Info: jobLevel 'contents' permission set to 'read': .github/workflows/run_periodic_tests.yml:171","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test_on_push.yml:25","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test_on_push.yml:46","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test_on_push.yml:128","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test_on_push.yml:175","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test_on_push.yml:218","Info: jobLevel 'contents' permission set to 'read': .github/workflows/validation_benchmarks.yml:18","Info: found token with 'none' permissions: .github/workflows/benchmark_on_push.yml:1","Info: found token with 'none' permissions: .github/workflows/discussion_autoresponder.yml:1","Info: found token with 'none' permissions: .github/workflows/docker.yml:1","Info: found token with 'none' permissions: .github/workflows/lychee_url_checker.yml:1","Info: found token with 'none' permissions: .github/workflows/need_reply_remove.yml:1","Info: found token with 'none' permissions: .github/workflows/needs_reply.yml:1","Info: found token with 'none' permissions: .github/workflows/periodic_benchmarks.yml:1","Info: found token with 'none' permissions: .github/workflows/publish_pypi.yml:1","Info: found token with 'none' permissions: .github/workflows/run_benchmarks_over_history.yml:1","Info: found token with 'none' permissions: .github/workflows/run_periodic_tests.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/scorecard.yml:18","Info: found token with 'none' permissions: .github/workflows/test_on_push.yml:1","Info: found token with 'none' permissions: .github/workflows/validation_benchmarks.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#token-permissions"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":6,"reason":"dependency not pinned by hash detected -- score normalized to 6","details":["Warn: containerImage not pinned by hash: scripts/Dockerfile:1: pin your Docker image by updating python:3.12-slim-bullseye to python:3.12-slim-bullseye@sha256:411fa4dcfdce7e7a3057c45662beba9dcd4fa36b2e50a2bfcd6c9333e59bf0db","Warn: pipCommand not pinned by hash: .github/workflows/benchmark_on_push.yml:39","Warn: pipCommand not pinned by hash: .github/workflows/periodic_benchmarks.yml:79","Warn: pipCommand not pinned by hash: .github/workflows/periodic_benchmarks.yml:47","Warn: pipCommand not pinned by hash: .github/workflows/run_benchmarks_over_history.yml:50","Warn: pipCommand not pinned by hash: .github/workflows/run_benchmarks_over_history.yml:141","Warn: pipCommand not pinned by hash: .github/workflows/run_periodic_tests.yml:75","Warn: pipCommand not pinned by hash: .github/workflows/run_periodic_tests.yml:124","Warn: pipCommand not pinned by hash: .github/workflows/run_periodic_tests.yml:161","Warn: pipCommand not pinned by hash: .github/workflows/run_periodic_tests.yml:195","Warn: pipCommand not pinned by hash: .github/workflows/test_on_push.yml:208","Warn: pipCommand not pinned by hash: .github/workflows/test_on_push.yml:251","Warn: pipCommand not pinned by hash: .github/workflows/test_on_push.yml:37","Warn: pipCommand not pinned by hash: .github/workflows/test_on_push.yml:103","Warn: pipCommand not pinned by hash: .github/workflows/test_on_push.yml:162","Info:  45 out of  45 GitHub-owned GitHubAction dependencies pinned","Info:  17 out of  17 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of  14 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker.yml:11"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"name":"CI-Tests","score":10,"reason":"21 out of 21 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}},{"name":"Contributors","score":10,"reason":"project has 55 contributing companies or organizations","details":["Info: found contributions from: AI-View, Chaste, Curio-org, FluxML, Google-Summer-of-Code-Archive, JupyterEverywhere, NVIDIAGameWorks, OpenScienceLabs, Quansight, Quansight-Labs, QuantStack, Scientific-Python-Translations, UCL, UCL-ARC, UCL-ARC-RSEing-with-Python, UCL-ARC-RSEworkshop-summer-25, UCL-COMP0233-24-25, astropy, breathe battery technologies, clusterinnovationcentre, conda-forge, fossasia, geojupyter, glass-dev, heracles-ec, imperial college london, ionworks, ionworks technologies, iris-hep, jupytercad, jupyterlite, lancaster university, myokit, northvolt, numfocus, osl-incubator, oxfordrse, pihex-labs, pints-team, pyOpenSci, pybamm-team, pybop-team, pydelhi, pyodide, pypa, quansight, quantstack, scientific-python, scikit-hep, scipy-india, ucl-arc @ucl, ucl-isd, university of oxford, university of warwick \u0026 @ionworks, warwick-machine-learning-group"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}}]},"last_synced_at":"2025-08-20T06:48:35.125Z","repository_id":37821226,"created_at":"2025-08-20T06:48:35.128Z","updated_at":"2025-08-20T06:48:35.128Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280325292,"owners_count":26311419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["batteries","battery-models","hacktoberfest","pybamm","python","simulation","solvers"],"created_at":"2025-10-21T19:44:45.932Z","updated_at":"2025-10-21T19:44:49.761Z","avatar_url":"https://github.com/pybamm-team.png","language":"Python","funding_links":["https://github.com/sponsors/pybamm-team","https://opencollective.com/pybamm"],"categories":[],"sub_categories":[],"readme":"![PyBaMM_logo](https://user-images.githubusercontent.com/20817509/107091287-8ad46a80-67cf-11eb-86f5-7ebef7c72a1e.png)\n\n#\n\n\u003cdiv align=\"center\"\u003e\n\n[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat\u0026colorA=E1523D\u0026colorB=007D8A)](http://numfocus.org)\n[![Scheduled](https://github.com/pybamm-team/PyBaMM/actions/workflows/run_periodic_tests.yml/badge.svg?branch=develop)](https://github.com/pybamm-team/PyBaMM/actions/workflows/run_periodic_tests.yml)\n[![readthedocs](https://readthedocs.org/projects/pybamm/badge/?version=latest)](https://docs.pybamm.org/en/latest/?badge=latest)\n[![codecov](https://codecov.io/gh/pybamm-team/PyBaMM/branch/main/graph/badge.svg)](https://codecov.io/gh/pybamm-team/PyBaMM)\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/pybamm-team/PyBaMM/blob/main/)\n[![DOI](https://zenodo.org/badge/DOI/10.5334/jors.309.svg)](https://doi.org/10.5334/jors.309)\n[![release](https://img.shields.io/github/v/release/pybamm-team/PyBaMM?color=yellow)](https://github.com/pybamm-team/PyBaMM/releases)\n[![code style](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/pybamm-team/PyBaMM/badge)](https://scorecard.dev/viewer/?uri=github.com/pybamm-team/PyBaMM)\n\n\u003c/div\u003e\n\n# PyBaMM\n\nPyBaMM (Python Battery Mathematical Modelling) is an open-source battery simulation package\nwritten in Python. Our mission is to accelerate battery modelling research by\nproviding open-source tools for multi-institutional, interdisciplinary collaboration.\nBroadly, PyBaMM consists of\n(i) a framework for writing and solving systems\nof differential equations,\n(ii) a library of battery models and parameters, and\n(iii) specialized tools for simulating battery-specific experiments and visualizing the results.\nTogether, these enable flexible model definitions and fast battery simulations, allowing users to\nexplore the effect of different battery designs and modeling assumptions under a variety of operating scenarios.\n\n[//]: # (numfocus-fiscal-sponsor-attribution)\n\nPyBaMM uses an [open governance model](https://pybamm.org/governance/)\nand is fiscally sponsored by [NumFOCUS](https://numfocus.org/). Consider making\na [tax-deductible donation](https://numfocus.org/donate-for-pybamm) to help the project\npay for developer time, professional services, travel, workshops, and a variety of other needs.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://numfocus.org/project/pybamm\"\u003e\n    \u003cimg height=\"60px\"\n         src=\"https://raw.githubusercontent.com/numfocus/templates/master/images/numfocus-logo.png\"\n         align=\"center\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n## 💻 Using PyBaMM\n\nThe easiest way to use PyBaMM is to run a 1C constant-current discharge with a model of your choice with all the default settings:\n\n```python\nimport pybamm\n\nmodel = pybamm.lithium_ion.DFN()  # Doyle-Fuller-Newman model\nsim = pybamm.Simulation(model)\nsim.solve([0, 3600])  # solve for 1 hour\nsim.plot()\n```\n\nor simulate an experiment such as a constant-current discharge followed by a constant-current-constant-voltage charge:\n\n```python\nimport pybamm\n\nexperiment = pybamm.Experiment(\n    [\n        (\n            \"Discharge at C/10 for 10 hours or until 3.3 V\",\n            \"Rest for 1 hour\",\n            \"Charge at 1 A until 4.1 V\",\n            \"Hold at 4.1 V until 50 mA\",\n            \"Rest for 1 hour\",\n        )\n    ]\n    * 3,\n)\nmodel = pybamm.lithium_ion.DFN()\nsim = pybamm.Simulation(model, experiment=experiment)\nsim.solve()\nsim.plot()\n```\n\nHowever, much greater customisation is available. It is possible to change the physics, parameter values, geometry, submesh type, number of submesh points, methods for spatial discretisation and solver for integration (see DFN [script](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/scripts/DFN.py) or [notebook](https://github.com/pybamm-team/PyBaMM/blob/develop/docs/source/examples/notebooks/models/DFN.ipynb)).\n\nFor new users we recommend the [Getting Started](https://github.com/pybamm-team/PyBaMM/tree/develop/docs/source/examples/notebooks/getting_started/) guides. These are intended to be very simple step-by-step guides to show the basic functionality of PyBaMM, and can either be downloaded and used locally, or used online through [Google Colab](https://colab.research.google.com/github/pybamm-team/PyBaMM/blob/main/).\n\nFurther details can be found in a number of [detailed examples](https://github.com/pybamm-team/PyBaMM/tree/develop/examples), hosted here on\ngithub. In addition, there is a [full API documentation](https://docs.pybamm.org/en/latest/source/api/index.html),\nhosted on [Read The Docs](https://readthedocs.org/).\nAdditional supporting material can be found\n[here](https://github.com/pybamm-team/pybamm-supporting-material/).\n\nNote that the examples on the default `develop` branch are tested on the latest `develop` commit. This may sometimes cause errors when running the examples on the pybamm pip package, which is synced to the `main` branch. You can switch to the `main` branch on github to see the version of the examples that is compatible with the latest pip release.\n\n## Versioning\n\nPyBaMM makes releases every four months and we use [CalVer](https://calver.org/), which means that the version number is `YY.MM`. The releases happen, approximately, at the end of January, May and September. There is no difference between releases that increment the year and releases that increment the month; in particular, releases that increment the month may introduce breaking changes. Breaking changes for each release are communicated via the [CHANGELOG](CHANGELOG.md), and come with deprecation warnings or errors that are kept for at least one year (3 releases). If you find a breaking change that is not documented, or think it should be undone, please open an issue on [GitHub](https://github.com/pybamm-team/pybamm).\n\n## 🚀 Installing PyBaMM\n\nPyBaMM is available on GNU/Linux, MacOS and Windows.\nWe strongly recommend to install PyBaMM within a python virtual environment, in order not to alter any distribution python files.\nFor instructions on how to create a virtual environment for PyBaMM, see [the documentation](https://docs.pybamm.org/en/latest/source/user_guide/installation/gnu-linux-mac.html#user-install).\n\n### Using pip\n\n[![pypi](https://img.shields.io/pypi/v/pybamm?color=blue)](https://pypi.org/project/pybamm/)\n[![downloads](https://img.shields.io/pypi/dm/pybamm?color=blue)](https://pypi.org/project/pybamm/)\n\n```bash\npip install pybamm\n```\n\n### Using conda\n\nPyBaMM is available as a conda package through the conda-forge channel.\n\n[![conda_forge](https://img.shields.io/conda/vn/conda-forge/pybamm?color=green)](https://anaconda.org/conda-forge/pybamm)\n[![downloads](https://img.shields.io/conda/dn/conda-forge/pybamm?color=green)](https://anaconda.org/conda-forge/pybamm)\n\n```bash\nconda install -c conda-forge pybamm\n```\n\n### Optional solvers\n\nThe following solvers are optionally available:\n\n- [jax](https://jax.readthedocs.io/en/latest/notebooks/quickstart.html)-based solver, see [the documentation](https://docs.pybamm.org/en/latest/source/user_guide/installation/gnu-linux-mac.html#optional-jaxsolver).\n\n## 📖 Citing PyBaMM\n\nIf you use PyBaMM in your work, please cite our paper\n\n\u003e Sulzer, V., Marquis, S. G., Timms, R., Robinson, M., \u0026 Chapman, S. J. (2021). Python Battery Mathematical Modelling (PyBaMM). _Journal of Open Research Software, 9(1)_.\n\nYou can use the BibTeX\n\n```\n@article{Sulzer2021,\n  title = {{Python Battery Mathematical Modelling (PyBaMM)}},\n  author = {Sulzer, Valentin and Marquis, Scott G. and Timms, Robert and Robinson, Martin and Chapman, S. Jon},\n  doi = {10.5334/jors.309},\n  journal = {Journal of Open Research Software},\n  publisher = {Software Sustainability Institute},\n  volume = {9},\n  number = {1},\n  pages = {14},\n  year = {2021}\n}\n```\n\nWe would be grateful if you could also cite the relevant papers. These will change depending on what models and solvers you use. To find out which papers you should cite, add the line\n\n```python\npybamm.print_citations()\n```\n\nto the end of your script. This will print BibTeX information to the terminal; passing a filename to `print_citations` will print the BibTeX information to the specified file instead. A list of all citations can also be found in the [citations file](https://github.com/pybamm-team/PyBaMM/blob/develop/src/pybamm/CITATIONS.bib). In particular, PyBaMM relies heavily on [CasADi](https://web.casadi.org/publications/).\nSee [CONTRIBUTING.md](https://github.com/pybamm-team/PyBaMM/blob/develop/CONTRIBUTING.md#citations) for information on how to add your own citations when you contribute.\n\n## 🛠️ Contributing to PyBaMM\n\nIf you'd like to help us develop PyBaMM by adding new methods, writing documentation, or fixing embarrassing bugs, please have a look at these [guidelines](https://github.com/pybamm-team/PyBaMM/blob/develop/CONTRIBUTING.md) first.\n\n## 📫 Get in touch\n\nFor any questions, comments, suggestions or bug reports, please visit:\n\n- Our [Contact Page](https://www.pybamm.org/community)\n- Our [Discussion Forum](https://pybamm.discourse.group/)\n\n## 📃 License\n\nPyBaMM is fully open source. For more information about its license, see [LICENSE](https://github.com/pybamm-team/PyBaMM/blob/develop/LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpybamm-team%2Fpybamm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpybamm-team%2Fpybamm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpybamm-team%2Fpybamm/lists"}