PyBaMM | Fast and flexible physics-based battery models in Python

 by   pybamm-team Python Version: 24.1rc2 License: BSD-3-Clause

kandi X-RAY | PyBaMM Summary

kandi X-RAY | PyBaMM Summary

PyBaMM is a Python library typically used in Simulation applications. PyBaMM has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has low support. You can install using 'pip install PyBaMM' or download it from GitHub, PyPI.

PyBaMM (Python Battery Mathematical Modelling) solves physics-based electrochemical DAE models by using state-of-the-art automatic differentiation and numerical solvers. The Doyle-Fuller-Newman model can be solved in under 0.1 seconds, while the reduced-order Single Particle Model and Single Particle Model with electrolyte can be solved in just a few milliseconds. Additional physics can easily be included such as thermal effects, fast particle diffusion, 3D effects, and more. All models are implemented in a flexible manner, and a wide range of models and parameter sets (NCA, NMC, LiCoO2, ...) are available. There is also functionality to simulate any set of experimental instructions, such as CCCV or GITT, or specify drive cycles.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              PyBaMM has a low active ecosystem.
              It has 638 star(s) with 332 fork(s). There are 24 watchers for this library.
              There were 6 major release(s) in the last 6 months.
              There are 84 open issues and 1030 have been closed. On average issues are closed in 136 days. There are 22 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of PyBaMM is 24.1rc2

            kandi-Quality Quality

              PyBaMM has 0 bugs and 0 code smells.

            kandi-Security Security

              PyBaMM has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              PyBaMM code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              PyBaMM is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              PyBaMM releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              PyBaMM saves you 24847 person hours of effort in developing the same functionality from scratch.
              It has 58622 lines of code, 3525 functions and 657 files.
              It has medium code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed PyBaMM and discovered the below as its top functions. This is intended to give you an instant insight into PyBaMM implemented functionality, and help decide if they suit your requirements.
            • Solve the model
            • Return the maximum of child elements
            • Builds the model
            • Return the value of key
            • Generate a JVM model from a model
            • Convert symbol id to julia variable name
            • Convert a symbol to a Julian formula
            • Converts a variable to a string
            • Return LaTeX representation of the model
            • R Calculate the dimensional parameters
            • Returns a dictionary of variables
            • Calculate a dictionary of variables
            • Integrate model
            • Set up the experiment
            • Processes the given unprocessed model
            • Simple division function
            • Calculate the variables for the given variables
            • Simplify multiplication
            • Discretise a model
            • Integrate a model
            • Get a julia function from a symbol
            • Solve a model
            • Integrate a differential equation
            • Set dimensionless parameters
            • Integrate the model with the given parameters
            • Performs a step on the model
            Get all kandi verified functions for this library.

            PyBaMM Key Features

            No Key Features are available at this moment for PyBaMM.

            PyBaMM Examples and Code Snippets

            No Code Snippets are available at this moment for PyBaMM.

            Community Discussions

            QUESTION

            Use Dask to run PyBaMM battery simulations in parallel
            Asked 2021-Oct-14 at 18:06

            I'm using the PyBaMM package to model battery cells and I would like to use Dask to run several simulations in parallel. The example below is my attempt to use dask.delayed. The Dask approach is slower than the non-Dask approach. Is there a better way to use Dask for this example? Should I setup a Dask Client() to run the simulations in parallel? I'm running this example on my local machine but I would eventually like to run a similar example on a cluster.

            Elapsed times from running the example on an 8-core MacBook Pro are given below. Comment out the appropriate section in main() to run with or without Dask.

            Example Elapsed time No Dask 8.02 seconds Dask 8.74 seconds ...

            ANSWER

            Answered 2021-Oct-14 at 18:06

            Based on the suggestions from @rrpelgrim, I implemented a Client() object which appears to improve the parallel execution of my example code by using the distributed scheduler. The modified example is shown below. You can compare the elapsed time with and without Dask by commenting out the appropriate section in main(). Elapsed times using an 8-core CPU are given in the table.

            Example Elapsed time No Dask 8.57 seconds Dask 3.83 seconds

            Source https://stackoverflow.com/questions/69562400

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install PyBaMM

            You can install using 'pip install PyBaMM' or download it from GitHub, PyPI.
            You can use PyBaMM like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            Support

            If 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 first.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • PyPI

            pip install pybamm

          • CLONE
          • HTTPS

            https://github.com/pybamm-team/PyBaMM.git

          • CLI

            gh repo clone pybamm-team/PyBaMM

          • sshUrl

            git@github.com:pybamm-team/PyBaMM.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link