bmlite.materials#
The materials package contains kinetic and transport properties for common
battery materials, including both electrode active materials and electrolytes.
Classes#
Gen 2 Electrolyte transport and material properties. |
|
Computationally fast Graphite kinetic and transport properties. |
|
Computationally fast GraphiteSiOx kinetic and transport properties. |
|
Computationally slow GraphiteSiOx kinetic and transport properties. |
|
Computationally slow Graphite kinetic and transport properties. |
|
Computationally slow Graphite kinetic and transport properties. |
|
LFP kinetic and transport properties, interpolated from data. |
|
Computationally fast NMC532 kinetic and transport properties. |
|
Computationally slow NMC532 kinetic and transport properties. |
|
Computationally slow NMC532 kinetic and transport properties. |
|
Computationally fast NMC811 kinetic and transport properties. |
|
Computationally slow NMC811 kinetic and transport properties. |
Package Contents#
- class bmlite.materials.Gen2Electrolyte[source]#
Gen 2 Electrolyte transport and material properties.
References
TODO: cite publication with Gen2 properties.
- get_D(C_Li, T)[source]#
Calculate the lithium ion diffusivity in the electrolyte solution at concentration
C_Liand temperatureT.- Parameters:
C_Li (float | 1D array) – Lithium ion concentration in the electrolyte [kmol/m3].
T (float) – Battery temperature [K].
- Returns:
D (float | 1D array) – Lithium ion diffusivity in the electrolyte [m2/s].
- get_gamma(C_Li, T)[source]#
Calculate the electrolyte thermodynamic factor at concentration
C_Liand temperatureT.- Parameters:
C_Li (float | 1D array) – Lithium ion concentration in the electrolyte [kmol/m3].
T (float) – Battery temperature [K].
- Returns:
gamma (float | 1D array) – Thermodynamic factor [-].
- get_kappa(C_Li, T)[source]#
Calculate the electrolyte conductivity at concentration
C_Liand temperatureT.- Parameters:
C_Li (float | 1D array) – Lithium ion concentration in the electrolyte [kmol/m3].
T (float) – Battery temperature [K].
- Returns:
kappa (float | 1D array) – Electrolyte conductivity [S/m].
- get_t0(C_Li, T)[source]#
Calculate the lithium ion transference number at concentration
C_Liand temperatureT.- Parameters:
C_Li (float | 1D array) – Lithium ion concentration in the electrolyte [kmol/m3].
T (float) – Battery temperature [K].
- Returns:
t0 (float | 1D array) – Lithium ion transference number [-].
- class bmlite.materials.GraphiteFast(alpha_a, alpha_c, Li_max)[source]#
Computationally fast Graphite kinetic and transport properties.
Differs from
GraphiteSlowbecause the equilibrium potential is not piecewise here, making it less accurate, but faster to evaluate.- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- get_Ds(x, T, fluxdir)[source]#
Calculate the lithium diffusivity in the solid phase given the local intercalation fraction
xand temperatureT.- Parameters:
x (float | 1D array) – Lithium intercalation fraction [-].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
Ds (float | 1D array) – Lithium diffusivity in the solid phase [m2/s].
- get_Eeq(x)[source]#
Calculate the equilibrium potential given the surface intercalation fraction
xat the particle surface.- Parameters:
x (float) – Lithium intercalation fraction at
r = R_s[-].- Returns:
Eeq (float) – Equilibrium potential [V].
- get_Mhyst(x)[source]#
Calculate the hysteresis magnitude given the surface intercalation fraction
xat the particle surface.- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].- Returns:
M_hyst (float | 1D array) – Hysteresis magnitude [V].
- get_i0(x, C_Li, T, fluxdir)[source]#
Calculate the exchange current density given the intercalation fraction
xat the particle surface, the local lithium ion concentrationC_Li, and temperatureT. The input types forxandC_Lishould both be the same (i.e., both float or both 1D arrays).- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].C_Li (float | 1D array) – Lithium ion concentration in the local electrolyte [kmol/m3].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
i0 (float | 1D array) – Exchange current density [A/m2].
- class bmlite.materials.GraphiteSiOx(alpha_a, alpha_c, Li_max)[source]#
Computationally fast GraphiteSiOx kinetic and transport properties.
- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- get_Ds(x, T, fluxdir)[source]#
Calculate the lithium diffusivity in the solid phase given the local intercalation fraction
xand temperatureT.From Table V in “Development of Experimental Techniques for Parameterization “of Multi-scale Lithium-ion Battery Models”, Chen et al., J. of the Electrochemical Society, 2020 Vol. 167 The functional form is the same as Graphite but is scaled so the average over x matches the paper above at 30C
- Parameters:
x (float | 1D array) – Lithium intercalation fraction [-].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
Ds (float | 1D array) – Lithium diffusivity in the solid phase [m2/s].
- get_Eeq(x)[source]#
Calculate the equilibrium potential given the surface intercalation fraction
xat the particle surface.From Eq 9 in “Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models”, Chen et al., J. of the Electrochemical Society, 2020 Vol. 167
- Parameters:
x (float) – Lithium intercalation fraction at
r = R_s[-].- Returns:
Eeq (float) – Equilibrium potential [V].
- get_Mhyst(x)[source]#
Calculate the hysteresis magnitude given the surface intercalation fraction
xat the particle surface.- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].- Returns:
M_hyst (float | 1D array) – Hysteresis magnitude [V].
- get_i0(x, C_Li, T, fluxdir)[source]#
Calculate the exchange current density given the intercalation fraction
xat the particle surface, the local lithium ion concentrationC_Li, and temperatureT. The input types forxandC_Lishould both be the same (i.e., both float or both 1D arrays).From Table VI in “Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models”, Chen et al., J. of the Electrochemical Society, 2020 Vol. 167 The functional form is the same as Graphite but is scaled so the average over x matches the paper above at 30C
- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].C_Li (float | 1D array) – Lithium ion concentration in the local electrolyte [kmol/m3].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
i0 (float | 1D array) – Exchange current density [A/m2].
- class bmlite.materials.GraphiteSiOxSlow(alpha_a, alpha_c, Li_max, csvfile=None)[source]#
Computationally slow GraphiteSiOx kinetic and transport properties.
Differs from
GraphiteSiOxbecause the equilibrium potential is piecewise here, making it more accurate, but slower to evaluate.- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
csv_file (str | None) – Path to open circuit potential data containing 2 columns: x and V. If None, reads an internal
data/graphite_SiOx_ocv.csv.
- class bmlite.materials.GraphiteSlow(alpha_a, alpha_c, Li_max)[source]#
Computationally slow Graphite kinetic and transport properties.
Differs from
GraphiteFastbecause the equilibrium potential is piecewise here, making it more accurate, but slower to evaluate.- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- class bmlite.materials.GraphiteSlowExtrap(alpha_a, alpha_c, Li_max)[source]#
Computationally slow Graphite kinetic and transport properties.
Differs from
GraphiteSlowbecause the piecewise equilibrium potential is extrapolated to be valid on the full [0, 1] range.- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- class bmlite.materials.LFPInterp(alpha_a, alpha_c, Li_max)[source]#
LFP kinetic and transport properties, interpolated from data.
- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- get_Ds(x, T, fluxdir)[source]#
Calculate the lithium diffusivity in the solid phase given the local intercalation fraction
xand temperatureT.- Parameters:
x (float | 1D array) – Lithium intercalation fraction [-].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
Ds (float | 1D array) – Lithium diffusivity in the solid phase [m2/s].
- get_Eeq(x)[source]#
Calculate the equilibrium potential given the surface intercalation fraction
xat the particle surface.- Parameters:
x (float) – Lithium intercalation fraction at
r = R_s[-].- Returns:
Eeq (float) – Equilibrium potential [V].
- get_Mhyst(x)[source]#
Calculate the hysteresis magnitude given the surface intercalation fraction
xat the particle surface.- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].- Returns:
M_hyst (float | 1D array) – Hysteresis magnitude [V].
- get_i0(x, C_Li, T, fluxdir)[source]#
Calculate the exchange current density given the intercalation fraction
xat the particle surface, the local lithium ion concentrationC_Li, and temperatureT. The input types forxandC_Lishould both be the same (i.e., both float or both 1D arrays).- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].C_Li (float | 1D array) – Lithium ion concentration in the local electrolyte [kmol/m3].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
i0 (float | 1D array) – Exchange current density [A/m2].
- class bmlite.materials.NMC532Fast(alpha_a, alpha_c, Li_max)[source]#
Computationally fast NMC532 kinetic and transport properties.
Differs from
NMC532Slowbecause the equilibrium potential is not piecewise here, making it less accurate, but faster to evaluate.- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- get_Ds(x, T, fluxdir)[source]#
Calculate the lithium diffusivity in the solid phase given the local intercalation fraction
xand temperatureT.- Parameters:
x (float | 1D array) – Lithium intercalation fraction [-].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
Ds (float | 1D array) – Lithium diffusivity in the solid phase [m2/s].
- get_Eeq(x)[source]#
Calculate the equilibrium potential given the surface intercalation fraction
xat the particle surface.- Parameters:
x (float) – Lithium intercalation fraction at
r = R_s[-].- Returns:
Eeq (float) – Equilibrium potential [V].
- get_Mhyst(x)[source]#
Calculate the hysteresis magnitude given the surface intercalation fraction
xat the particle surface.- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].- Returns:
M_hyst (float | 1D array) – Hysteresis magnitude [V].
- get_i0(x, C_Li, T, fluxdir)[source]#
Calculate the exchange current density given the intercalation fraction
xat the particle surface, the local lithium ion concentrationC_Li, and temperatureT. The input types forxandC_Lishould both be the same (i.e., both float or both 1D arrays).- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].C_Li (float | 1D array) – Lithium ion concentration in the local electrolyte [kmol/m3].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
i0 (float | 1D array) – Exchange current density [A/m2].
- class bmlite.materials.NMC532Slow(alpha_a, alpha_c, Li_max)[source]#
Computationally slow NMC532 kinetic and transport properties.
Differs from
NMC532Fastbecause the equilibrium potential is piecewise here, making it more accurate, but slower to evaluate.- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- class bmlite.materials.NMC532SlowExtrap(alpha_a, alpha_c, Li_max)[source]#
Computationally slow NMC532 kinetic and transport properties.
Differs from
NMC532Slowbecause the piecewise equilibrium potential is extrapolated to be valid on the full [0, 1] range.- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- class bmlite.materials.NMC811(alpha_a, alpha_c, Li_max)[source]#
Computationally fast NMC811 kinetic and transport properties.
- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
- get_Ds(x, T, fluxdir)[source]#
Calculate the lithium diffusivity in the solid phase, given the local intercalation fraction
xand temperatureT.From Table V in “Development of Experimental Techniques for Parameterization “of Multi-scale Lithium-ion Battery Models”, Chen et al., J. of the Electrochemical Society, 2020 Vol. 167 The functional form is the same as NMC532 but is scaled so the average over x matches the paper above at 30C.
- Parameters:
x (float | 1D array) – Lithium intercalation fraction [-].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
Ds (float | 1D array) – Lithium diffusivity in the solid phase [m2/s].
- get_Eeq(x)[source]#
Calculate the equilibrium potential given the surface intercalation fraction
xat the particle surface.From Eq 8 in “Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models”, Chen et al., J. of the Electrochemical Society, 2020 Vol. 167
- Parameters:
x (float) – Lithium intercalation fraction at
r = R_s[-].- Returns:
Eeq (float) – Equilibrium potential [V].
- get_Mhyst(x)[source]#
Calculate the hysteresis magnitude given the surface intercalation fraction
xat the particle surface.- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].- Returns:
M_hyst (float | 1D array) – Hysteresis magnitude [V].
- get_i0(x, C_Li, T, fluxdir)[source]#
Calculate the exchange current density given the intercalation fraction
xat the particle surface, the local lithium ion concentrationC_Li, and temperatureT. The input types forxandC_Lishould both be the same (i.e., both float or both 1D arrays).From Table VI in “Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models”, Chen et al., J. of the Electrochemical Society, 2020 Vol. 167 The functional form is the same as NMC532 but is scaled so the average over x matches the paper above at 30C.
- Parameters:
x (float | 1D array) – Lithium intercalation fraction at
r = R_s[-].C_Li (float | 1D array) – Lithium ion concentration in the local electrolyte [kmol/m3].
T (float) – Battery temperature [K].
fluxdir (float | 1D array) – Lithiation direction: +1 for lithiation, -1 for delithiation, 0 for rest. Used for direction-dependent parameters. Ensure the zero case is handled explicitly or via a default (lithiating or delithiating).
- Returns:
i0 (float | 1D array) – Exchange current density [A/m2].
- class bmlite.materials.NMC811Slow(alpha_a, alpha_c, Li_max, csvfile=None)[source]#
Computationally slow NMC811 kinetic and transport properties.
Differs from
NMC811because the equilibrium potential is piecewise here, making it more accurate, but slower to evaluate.- Parameters:
alpha_a (float) – Anodic symmetry factor in Butler-Volmer expression [-].
alpha_c (float) – Cathodic symmetry factor in Butler-Volmer expression [-].
Li_max (float) – Maximum lithium concentration in solid phase [kmol/m3].
csv_file (str | None) – Path to open circuit potential data containing 2 columns: x and V. If None, reads an internal
data/nmc811_ocv.csv.