Microstructure Calculations

class ionworkspipeline.calculations.SurfaceAreaToVolumeRatio(electrode)

Calculate the surface area to volume ratio for the electrodes from the active material volume fraction and particle radius, assuming spherical particles.

Parameters

electrodestr

The electrode to calculate the surface area to volume ratio for, either “positive”, “negative” or “both”.

Examples

>>> import ionworkspipeline as iwp
>>> calc = iwp.calculations.SurfaceAreaToVolumeRatio("positive")
>>> params = iwp.ParameterValues({
...     "Positive electrode active material volume fraction": 0.65,
...     "Positive particle radius [m]": 5e-6,
... })
>>> result = calc.run(params)
>>> result["Positive electrode surface area to volume ratio [m-1]"]
390000.0

Extends: ionworkspipeline.calculations.calculation.Calculation

run(parameter_values: ParameterValues) ParameterValues

Execute the calculation to derive new parameters from inputs.

Parameters

parameter_valuesiwp.ParameterValues

Input parameters providing the values needed for this calculation.

Returns

iwp.ParameterValues

Newly calculated parameters to add to the pipeline.

class ionworkspipeline.calculations.ElectrodeVolumeFractionFromLoading(electrode, method)

Calculate active material volume fraction from loading or coating mass.

Two methods are available:

From loading (method="loading"): Calculate from capacity-based areal loading and maximum concentration:

\[\varepsilon_{AM} = \frac{Q_{load}}{L \cdot c_{max} \cdot F / 3600}\]

where \(\varepsilon_{AM}\) is the active material volume fraction [-], \(Q_{load}\) is the areal loading [A.h.m-2], \(L\) is electrode thickness [m], \(c_{max}\) is the maximum lithium concentration in the active material [mol.m-3], and \(F\) is Faraday’s constant [C.mol-1].

From coating mass (method="coating mass"): Calculate from mass-based loading and crystal density:

\[\varepsilon_{AM} = \frac{M}{L \cdot \rho}\]

where \(M\) is the coating mass per unit area [g.cm-2], \(L\) is the electrode thickness [cm], and \(\rho\) is the crystal density of the active material [g.cm-3].

Parameters

electrodestr

The electrode: “positive”, “negative”, or “both”.

methodstr

The calculation method: “loading” or “coating mass”.

Notes

The active material volume fraction directly affects capacity:

\[Q = c_{max} \cdot \varepsilon_{AM} \cdot L \cdot A \cdot \Delta\theta \cdot \frac{F}{3600}\]

Examples

>>> import ionworkspipeline as iwp
>>> calc = iwp.calculations.ElectrodeVolumeFractionFromLoading(
...     electrode="positive", method="loading"
... )
>>> params = iwp.ParameterValues({
...     "Positive electrode thickness [m]": 80e-6,
...     "Maximum concentration in positive electrode [mol.m-3]": 51385,
...     "Positive electrode loading [A.h.cm-2]": 2.5,
... })
>>> result = calc.run(params)
>>> "Positive electrode active material volume fraction" in result
True

Extends: ionworkspipeline.calculations.calculation.Calculation

run(parameter_values: ParameterValues) ParameterValues

Execute the calculation to derive new parameters from inputs.

Parameters

parameter_valuesiwp.ParameterValues

Input parameters providing the values needed for this calculation.

Returns

iwp.ParameterValues

Newly calculated parameters to add to the pipeline.

class ionworkspipeline.calculations.ElectrodeVolumeFractionFromPorosity(electrode)

Calculate the volume fraction of active material in the electrodes from the porosity and the active volume fraction of solid.

Parameters

electrodestr

The electrode to calculate the volume fraction for. Must be either “negative” or “positive”.

Examples

>>> import ionworkspipeline as iwp
>>> calc = iwp.calculations.ElectrodeVolumeFractionFromPorosity("positive")
>>> params = iwp.ParameterValues({
...     "Positive electrode porosity": 0.3,
...     "Positive electrode active volume fraction of solid": 0.9,
... })
>>> result = calc.run(params)
>>> result["Positive electrode active material volume fraction"]
0.63

Extends: ionworkspipeline.calculations.calculation.Calculation

run(parameter_values: ParameterValues) ParameterValues

Execute the calculation to derive new parameters from inputs.

Parameters

parameter_valuesiwp.ParameterValues

Input parameters providing the values needed for this calculation.

Returns

iwp.ParameterValues

Newly calculated parameters to add to the pipeline.

class ionworkspipeline.calculations.PorosityFromElectrodeVolumeFraction(electrode)

Calculate the porosity from the active material volume fraction.

Parameters

electrodestr

The electrode to calculate the porosity for. Must be either “negative” or “positive”.

Examples

>>> import ionworkspipeline as iwp
>>> calc = iwp.calculations.PorosityFromElectrodeVolumeFraction("positive")
>>> params = iwp.ParameterValues({
...     "Positive electrode active material volume fraction": 0.65,
...     "Positive electrode active volume fraction of solid": 0.9,
... })
>>> result = calc.run(params)
>>> result["Positive electrode porosity"]
0.277...

Extends: ionworkspipeline.calculations.calculation.Calculation

run(parameter_values: ParameterValues) ParameterValues

Execute the calculation to derive new parameters from inputs.

Parameters

parameter_valuesiwp.ParameterValues

Input parameters providing the values needed for this calculation.

Returns

iwp.ParameterValues

Newly calculated parameters to add to the pipeline.