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.