This package contains all battery-related application classes, including representations of InsertionElectrodes and ConversionElectrodes.
This module defines the abstract base classes for battery-related classes. Regardless of the kind of electrode, conversion or insertion, there are many common definitions and properties, e.g., average voltage, capacity, etc. which can be defined in a general way. The Abc for battery classes implements some of these common definitions to allow sharing of common logic between them.
Bases: _abcoll.Sequence, pymatgen.serializers.json_coders.MSONable
An Abstract Base Class representing an Electrode. It is essentially a sequence of VoltagePairs. Generally, subclasses only need to implement three abstract properties: voltage_pairs, working_ion and working_ion_entry.
The general concept is that all other battery properties such as capacity, etc. are derived from voltage pairs.
One of the major challenges with representing battery materials is keeping track of the normalization between different entries. For example, one entry might be TiO2 with one unit cell whereas another is LiTi2O4 with two unit cells. When computing battery properties, it is needed to always use a universal reference state otherwise you have normalization errors (e.g., the energy of LiTi2O4 must be divided by two to be compared with TiO2).
For properties such as volume, mass, or mAh transferred within the voltage pair, a universal convention is necessary. AbstractElectrode can query for extrinsic properties of several different AbstractVoltagePairs belonging to a single charge/discharge path and be confident that the normalization is being carried out properly throughout, even if more AbstractVoltagePairs are added later.
The universal normalization is defined by the reduced structural framework of the entries, which is common along the entire charge/discharge path. For example, LiTi2O4 has a reduced structural framework of TiO2. Another example is Li9V6P16O58 which would have a reduced structural framework of V3P8O29. Note that reduced structural frameworks need not be charge-balanced or physical, e.g. V3P8O29 is not charge-balanced, they are just a tool for normalization.
Example: for a LiTi2O4 -> TiO2 AbstractVoltagePair, extrinsic quantities like mAh or cell volumes are given per TiO2 formula unit.
Developers implementing a new battery (other than the two general ones already implemented) need to implement a VoltagePair and an Electrode.
Average voltage for path satisfying between a min and max voltage.
Get the gravimetric capacity of the electrode.
Get the volumetric capacity of the electrode.
Returns the specific energy of the battery in mAh/g.
This module contains the classes to build a ConversionElectrode.
Bases: pymatgen.apps.battery.battery_abc.AbstractElectrode
Class representing a ConversionElectrode.
General constructor for ConversionElectrode. However, it is usually easier to construct a ConversionElectrode using one of the static constructors provided.
Convenience constructor to make a ConversionElectrode from a composition and all entries in a chemical system.
Convenience constructor to make a ConversionElectrode from a composition and a phase diagram.
If this electrode contains multiple voltage steps, then it is possible to use only a subset of the voltage steps to define other electrodes. For example, an LiTiO2 electrode might contain three subelectrodes: [LiTiO2 –> TiO2, LiTiO2 –> Li0.5TiO2, Li0.5TiO2 –> TiO2] This method can be used to return all the subelectrodes with some options
Checks if a particular conversion electrode is a sub electrode of the current electrode. Starting from a more lithiated state may result in a subelectrode that is essentially on the same path. For example, a ConversionElectrode formed by starting from an FePO4 composition would be a super_electrode of a ConversionElectrode formed from an LiFePO4 composition.
Bases: pymatgen.apps.battery.battery_abc.AbstractVoltagePair
A VoltagePair representing a Conversion Reaction with a defined voltage. Typically not initialized directly but rather used by ConversionElectrode.
This module is used for analysis of materials with potential application as intercalation batteries.
Bases: pymatgen.apps.battery.battery_abc.AbstractElectrode
A set of topotactically related compounds, with different amounts of a single element, e.g. TiO2 and LiTiO2, that can be used to define an insertion battery electrode.
Create a new InsertionElectrode.
Return all entries input for the electrode.
The maximum instability along a path for a specific voltage range.
Maximum critical oxygen chemical potential along path.
The minimum instability along a path for a specific voltage range.
Minimum critical oxygen chemical potential along path.
If this electrode contains multiple voltage steps, then it is possible to use only a subset of the voltage steps to define other electrodes. For example, an LiTiO2 electrode might contain three subelectrodes: [LiTiO2 –> TiO2, LiTiO2 –> Li0.5TiO2, Li0.5TiO2 –> TiO2] This method can be used to return all the subelectrodes with some options
Returns the unstable entries for the electrode.
Bases: pymatgen.apps.battery.battery_abc.AbstractVoltagePair
Defines an Insertion Voltage Pair.
This module provides plotting capabilities for battery related applications.
Bases: object
A plotter to make voltage profile plots for batteries.
Add an electrode to the plot.
Returns a plot object.