# pymatgen.apps.battery.analyzer module

Analysis classes for batteries

class BatteryAnalyzer(struc_oxid, cation='Li')

  Bases: `object`

  A suite of methods for starting with an oxidized structure and determining its potential as a battery

  Pass in a structure for analysis

  Parameters

    - struc_oxid – a Structure object; oxidation states must be assigned for this structure; disordered structures should be OK

    - cation – a String symbol or Element for the cation. It must be positively charged, but can be 1+/2+/3+ etc.

  get_max_capgrav(remove=True, insert=True)

    Give max capacity in mAh/g for inserting and removing a charged cation Note that the weight is normalized to the most lithiated state, thus removal of 1 Li from LiFePO4 gives the same capacity as insertion of 1 Li into FePO4.

    Parameters

      - remove – (bool) whether to allow cation removal

      - insert – (bool) whether to allow cation insertion

    Returns

      max grav capacity in mAh/g

  get_max_capvol(remove=True, insert=True, volume=None)

    Give max capacity in mAh/cc for inserting and removing a charged cation into base structure.

    Parameters

      - remove – (bool) whether to allow cation removal

      - insert – (bool) whether to allow cation insertion

      - volume – (float) volume to use for normalization (default=volume of initial structure)

    Returns

      max vol capacity in mAh/cc

  get_removals_int_oxid()

    Returns a set of delithiation steps, e.g. set([1.0 2.0 4.0]) etc. in order to produce integer oxidation states of the redox metals. If multiple redox metals are present, all combinations of reduction/oxidation are tested. Note that having more than 3 redox metals will likely slow down the algorithm.

    Examples

    LiFePO4 will return [1.0] Li4Fe3Mn1(PO4)4 will return [1.0, 2.0, 3.0, 4.0]) Li6V4(PO4)6 will return [4.0, 6.0]) note that this example is not normalized

    Returns

      array of integer cation removals. If you double the unit cell, your answers will be twice as large!

  property max_cation_insertion

    Maximum number of cation A that can be inserted while maintaining charge-balance. No consideration is given to whether there (geometrically speaking) are Li sites to actually accommodate the extra Li.

    Returns

      integer amount of cation. Depends on cell size (this is an ‘extrinsic’ function!)

  property max_cation_removal

    Maximum number of cation A that can be removed while maintaining charge-balance.

    Returns

      integer amount of cation. Depends on cell size (this is an ‘extrinsic’ function!)

is_redox_active_intercalation(element)

  True if element is redox active and interesting for intercalation materials

  Parameters

    element – Element object