pymatgen.apps.battery.analyzer module

Analysis classes for batteries

class BatteryAnalyzer(struc_oxid, working_ion='Li', oxi_override=None)[source]

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

  • working_ion – a String symbol or Element for the working ion.

  • oxi_override – a dict of String element symbol, Integer oxidation state pairs. by default, H, C, N, O, F, S, Cl, Se, Br, Te, I are considered anions.

get_max_capgrav(remove=True, insert=True)[source]

Give max capacity in mAh/g for inserting and removing a charged ion Note that the weight is normalized to the most ion-packed 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 ion removal

  • insert – (bool) whether to allow ion insertion

Returns:

max grav capacity in mAh/g

get_max_capvol(remove=True, insert=True, volume=None)[source]

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

Parameters:
  • remove – (bool) whether to allow ion removal

  • insert – (bool) whether to allow ion insertion

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

Returns:

max vol capacity in mAh/cc

get_removals_int_oxid()[source]

Returns a set of ion removal 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 ion removals. If you double the unit cell, your answers will be twice as large!

property max_ion_insertion[source]

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

Returns:

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

property max_ion_removal[source]

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

Returns:

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

is_redox_active_intercalation(element) bool[source]

True if element is redox active and interesting for intercalation materials

Parameters:

element – Element object